搭建 Elasticsearch 集群

操作系统:centos 7.2
Elasticsearch版本:Elasticsearch-6.2.4
JDK:Oracle-jdk 1.8

配置JDK

vi /etc/profile
#添加
export JAVA_HOME=/opt/jdk/
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

#执行source 使配置生效
source  /etc/profile

安装Elasticsearch

解压

tar -zxvf elasticsearch-6.2.4.tar.gz

创建es目录

mkdir /usr/local/elk

将es挪到新目录下

mv elasticsearch-6.2.4 /usr/local/elk/elasticsearch

创建数据存放路径

mkdir /usr/local/elk/elasticsearch/data

建立用户并授权(es不能用root运行)

#添加用户
useradd es
#赋予文件夹权限
chown -R es:es /usr/local/elk/elasticsearch

修改elasticsearch配置文件

#集群的名称
cluster.name: es6
#节点名称,其余两个节点分别为node-2 和node-3
node.name: node-1
#指定该节点是否有资格被选举成为master节点,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master
node.master: true
#允许该节点存储数据(默认开启)
node.data: true
#索引数据的存储路径
path.data: /usr/local/elk/elasticsearch/data
#日志文件的存储路径
path.logs: /usr/local/elk/elasticsearch/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.3.101:9300", "192.168.3.102:9300", "192.168.3.103:9300"]
#如果没有这种设置,遭受网络故障的集群就有可能将集群分成两个独立的集群 - 分裂的大脑 - 这将导致数据丢失
discovery.zen.minimum_master_nodes: 2

修改完之后使用命令查看具体修改了哪些值

grep '^[a-z]' /usr/local/elk/elasticsearch/config/elasticsearch.yml

调整jvm内存

vim /usr/local/elk/elasticsearch/config/jvm.options 
#默认是1g官方建议对jvm进行一些修改,不然很容易出现OOM,参考官网改参数配置最好不要超过内存的50% 
-Xms1g
-Xmx1g

-Djava.io.tmpdir=/usr/local/elk/elasticsearch
-Djna.tmpdir=/usr/local/elk/elasticsearch

修改系统相关配置

vim /etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536
* soft nproc 2048
* hard nproc 4096
#我选择锁住swapping因此需要在这个配置文件下再增加两行代码
es soft memlock unlimited
es hard memlock unlimited

vim /etc/sysctl.conf
vm.max_map_count=655360
fs.file-max=655360

之后需要执行一句命令sysctl -p使系统配置生效(使用root用户)

你可能感兴趣的:(搭建 Elasticsearch 集群)