ElasticSearch 构建ES集群

引言


操作手册


  1. 在集群的每个节点上,将ElasticSearch的单节点安装好
  2. 修改配置文件elasticsearch.ymlcluster.name(集群名称)配置,要求所有节点配置一致。
  3. 修改配置文件的http.port9200,所有节点配置统一

配置文件elasticsearch.yml修改内容如下:

#如果某台机器里面有数据,需要清空,否则三节点无法同步,目录没有则需要先创建。
path.data: /home/ozan/elasticsearch-6.4.2/data
path.logs: /home/ozan/elasticsearch-6.4.2/logs
# 不同节点修改不同的编号
node.name: node-1  
discovery.zen.ping.unicast.hosts: ["192.168.23.141", "192.168.23.142","192.168.23.143", "192.168.23.144", "192.168.23.145"]

cluster.name: elasticsearch
node.master: true
# 因为ES默认配置,外部机器是访问不了的,只能闭环访问。可以通过修改配置文件network.host
network.host: 0.0.0.0
http.port: 9200
discovery.zen.minimum_master_nodes: 3
http.cors.enabled: true
http.cors.allow-origin:"*"
bootstrap.memory_lock: true

如果修改了network.host: 0.0.0.0ES会认为你现在是生产环境,然后启动的时候就会对环境做出各种各样的检查:bootstrap checks,确保你的环境不会出现问题。

如果为单节点启动,添加如下配置:

#如果某台机器里面有数据,需要清空,否则三节点无法同步,目录没有则需要先创建。
path.data: /home/ozan/elasticsearch-6.4.2/data
path.logs: /home/ozan/elasticsearch-6.4.2/logs
# 不同节点修改不同的编号
node.name: node-1  
cluster.name: elasticsearch
# 因为ES默认配置,外部机器是访问不了的,只能闭环访问。可以通过修改配置文件network.host
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin:"*"
bootstrap.memory_lock: true
discovery.type: single-node

启动ES服务,出现异常:

ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [3802] for user [es] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方案(切换到root用户):

[root@localhost elasticsearch-6.4.0]# vim /etc/security/limits.conf
# 添加以下内容
*   soft    nofile  65536
*   hard    nofile  131072
*   soft    nproc   2048
*   hard    nproc   4096

[root@localhost elasticsearch-6.4.0]# vim /etc/sysctl.conf
# 添加以下内容
vm.max_map_count=655360
[root@localhost elasticsearch-6.4.0]# sysctl -p
vm.max_map_count = 655360

测试访问!

你可能感兴趣的:(ElasticSearch 构建ES集群)