Centos 7 安装部署 Elasticsearch 集群「版本 7.6.0」

为什么Elasticsearch需要修改可加载的文件描述符和max_map_count?

官方回答:

https://www.elastic.co/guide/cn/elasticsearch/guide/current/_file_descriptors_and_mmap.html

环境配置

三台节点

Name

角色

kerberos01

esNode01

kerberos02

esNode02

kerberos03

esNode03

安装版本 7.6.0

image.png

由于网络问题,从官网下载安装包的速度非常慢,但是有可爱的同学将安装包放在了其他地方可供下载

链接地址:https://blog.csdn.net/weixin_37281289/article/details/101483434

 

安装步骤

为了后面一次成功,需要先做一些准备工作;

0.准备工作

0.1 创建es用户

elasticsearch 为了保护用户系统,在Linux系统下,是不允许用户以root用户去启动elasticsearch,所以需要用户额外创建用户

## 添加用户
useradd es
## 增加密码
passwd es
## 给es用户赋予elastcsearch文件权限
chown -R es:es elasticsearch-7.6.0

有个习惯,会将自定义安装组件的日志统一放在一个路径下,方便查询日志信息。我在服务器上创建了一个/data/tiezhu/elasticsearch的目录,存放相关日志和信息,需要将这个目录给es用户赋予相应的读写权限,不然会出现启动失败,日志提示不能以root用户启动

image.png

这个目录下的内容是与elasticsearch配置文件中匹配;

0.2 配置系统参数

首先,如果不配置以下参数,会出现

image.png

[2020-09-25T11:34:19,292][INFO ][o.e.b.BootstrapChecks    ] [esNode01] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /data/tiezhu/elasticsearch/log/kerberos-elasticsearch.log

其实这个两个问题,首先解决第一个问题,意思是elasticsearch可加载使用的文件描述符(文件描述符是内核为了高效管理已被打开的文件所创建的索引,用于指向被打开的文件,所有执行I/O操作的系统调用都通过文件描述符)太少,至少要[65535]这么多个,所以修改系统参数,让它能加载那么多个

## 首先切换为 root用户,修改配置文件
 vim /etc/security/limits.conf 
 
 ## 在配置文件中添加
root soft nofile 65535
root hard nofile 65535
* soft nofile 65536
* hard nofile 65536

## 之后退出账户重新登陆
## 查看限制
ulimit -S -n
ulimit -H -n

然后解决第二个问题,修改max_map_count(max_map_count 文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量。虚拟内存区域是一个连续的虚拟地址空间区域

## 首先切换root用户,修改配置文件
vim /etc/sysctl.conf

## 增加一行配置内容
vm.max_map_count=655360

## 重新加载系统参数
sysctl -p

## 然后切换回用户重启elasticsearch

1. 修改配置文件

image.png

配置文件描述的很详细,基本上就是根据自己的需求来配置

http.cors.enabled: true         // 是否开启跨域访问,默认是false

http.cors.allow-origin: "*"     // 可以访问的域名,* 代表任意都可以访问

详细的参数说明:https://blog.csdn.net/u013928062/article/details/84778667

2. 启动参数

./elasticsearch -E path.data=/opt/elasticsearch-7.6.0 -d  // 这里的path.data可以使用配置文件里配置的

3. 验证集群

通过访问 kerberos01:9200/_cluster/state 查看集群状态(kerberos01是主节点mater的hostname)

image.png

可以利用postman访问API获取相应的信息

image.png

posted @ 2020-09-25 19:31  铁柱大兄dei  阅读(437)  评论(0)    收藏  举报