准备软件
elasticsearch-6.3.1.tar.gz
解压
tar -zxvf elasticsearch-6.3.1.tar.gz -C /opt/elasticsearch
修改配置文件
#集群的名称
cluster.name: elasticSearch
#节点名称,其余两个节点分别为node-2 和node-3
node.name: node-1
#指定该节点是否有资格被选举成为master节点,默认是true,es是默认集群中的第一台机器为master,如果这台机挂 了就会重新选举master
node.master: true
#允许该节点存储数据(默认开启)
node.data: true
#索引数据的存储路径
path.data: /opt/elasticsearch/elasticsearch-6.3.1/datas
#日志文件的存储路径
path.logs: /opt/elasticsearch/elasticsearch-6.3.1/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: ["10.2.14.107", "10.2.14.121", "10.2.14.128"]
#如果没有这种设置,遭受网络故障的集群就有可能将集群分成两个独立的集群 - 分裂的大脑 - 这将导致数据丢失
discovery.zen.minimum_master_nodes: 2
创建用户,es不可以使用root用户运行
[root@localhost ~]# groupadd es
[root@localhost ~]# useradd es -g es -p elasticsearch
[root@localhost ~]# passwd es # 设置密码
[root@localhost /usr/local]# chown -R es:es elasticsearch-6.3.1/
执行bin/elasticsearch
启动前的检查,报了三个错
[1]: memory locking requested for elasticsearch process but memory is not locked
[2]: Java version [1.8.0_202-ea] is an early-access build, only use release builds
[3]: failed to send join request to master
第一个错解决,修改/etc/security/limits.conf文件,加上
es soft memlock unlimited
es hard memlock unlimited
第二个错,es要求使用jdk1.8以上,我这个也是1.8,不知道原因,然后又找了一个jdk-8u241-linux-x64.tar.gz,然后解压,再/etc/profile中设置
#ES_JAVA_HOME
export ES_JAVA_HOME=/opt/elasticsearch/jdk1.8.0_241
然后将bin/elasticsearch.env 中的JAVA_HOME 修改为ES_JAVA_HOME
启动后没有报错,详细原因还需要探究。
第三个错将之前单机启动的数据删掉。
此外还有可能会报错打开文件的错误
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
解决办法:修改/etc/security/limits.conf,做以下配置
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
*为通配符,可以换成运行es的用户名
max number of threads [1024] for user [es] is too low, increase to at least [4096]
解决办法:修改/etc/security/limits.d/90-nproc.conf
* soft nproc 1024
改为
* soft nproc 4096
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决办法:修改/etc/sysctl.conf,增加一行 vm.max_map_count = 262144。然后执行sysctl -p使其生效