elasticsearch集群部署,及采坑问题
Posted daxiangfei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch集群部署,及采坑问题相关的知识,希望对你有一定的参考价值。
1,官网下载安装包
2,解压安装包到指定的目录
tar -zxvf elasticsearch-6.5.4.tar.gz
3,重命名
mv elasticsearch-6.2.1 elasticsearch
4,创建数据存放路径(应将设置配置为在Elasticsearch主目录之外定位数据目录,以便在不删除数据的情况下删除主目录!)
mkdir -p /home/data/es
5,建立用户并授权(es不能用root运行)
groupadd es
useradd es -g es
passwd es
chown -R es.es /home/elasticsearch /home/data/es
6,修改elasticsearch配置文件
vi /home/elasticsearch/config/elasticsearch.yml 将配置文件以下内容进行修改:
#集群的名称
cluster.name: es6.2
#节点名称,其余两个节点分别为node-2 和node-3
node.name: node-1
#指定该节点是否有资格被选举成为master节点,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master
node.master: true
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
#允许该节点存储数据(默认开启)
node.data: true
#索引数据的存储路径
path.data: /home/data/es
#日志文件的存储路径
path.logs: /home/data/es/logs
#设置为true来锁住内存。因为内存交换到磁盘对服务器性能来说是致命的,当jvm开始swapping时es的效率会降低,所以要保证它不swap
bootstrap.memory_lock: true
#绑定的ip地址
network.host: 0.0.0.0
#设置对外服务的http端口,默认为9200
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
#Elasticsearch将绑定到可用的环回地址,并将扫描端口9300到9305以尝试连接到运行在同一台服务器上的其他节点。
#这提供了自动集群体验,而无需进行任何配置。数组设置或逗号分隔的设置。每个值的形式应该是host:port或host
#(如果没有设置,port默认设置会transport.profiles.default.port 回落到transport.tcp.port)。
#请注意,IPv6主机必须放在括号内。默认为127.0.0.1, [::1]
discovery.zen.ping.unicast.hosts: ["192.168.8.101:9300", "192.168.8.103:9300", "192.168.8.104:9300"]
#如果没有这种设置,遭受网络故障的集群就有可能将集群分成两个独立的集群 - 分裂的大脑 - 这将导致数据丢失
discovery.zen.minimum_master_nodes: 3
#配置此项为外网可以连接
http.cors.enabled: true
http.cors.allow-origin: "*"
7,启动
su es
/home/elasticsearch/bin/elasticsearch -d
8,坑问题
启动发现报错:
解决方法:
su root
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 2048
* hard nproc 4096
vi /etc/sysctl.conf
vm.max_map_count=655360
改完之后需要推出终端,重新连接,然后再次启动es
以上是关于elasticsearch集群部署,及采坑问题的主要内容,如果未能解决你的问题,请参考以下文章