环境:centos7
(一).给user添加sudo权限
vi /etc/sudoers
添加
user ALL=(ALL) ALL
(二).关闭防火墙
1、关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
(三).配置部分设置
1.配置limits.conf
vi /etc/security/limits.conf
* soft memlock unlimited
* hard memlock unlimited
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
2.配置sysctl.conf
vi /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p
(四).创建4个数据路径,分别分配磁盘
1.创建数据路径
mkdir /data0
mkdir /data1
mkdir /data2
mkdir /data3
2.挂载4个硬盘
fdisk -l
mkfs.ext3 /dev/sdb
mount /dev/sdb /data0
mkfs.ext3 /dev/sdc
mount /dev/sdc /data1
mkfs.ext3 /dev/sdd
mount /dev/sdd /data2
mkfs.ext3 /dev/sde
mount /dev/sde /data3
修改配置使启动时生效
sudo vi /etc/fstab
/dev/sdb /data0 ext4 defaults 0 0
/dev/sdc /data1 ext4 defaults 0 0
/dev/sdd /data2 ext4 defaults 0 0
/dev/sde /data3 ext4 defaults 0 0
(五).安装java
1.解压jdk-8u151-linux-x64.tar.gz
tar -zxvf jdk-8u151-linux-x64.tar.gz
2.配置java环境变量
vi /etc/profile
输入:
export JAVA_HOME=/home/user/jdk1.8.0_151
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
3.使修改生效
source /etc/profile
4.查看是否安装成功
java -version
(六).解压elasticsearch,安装x-pack,安装ik
1.tar -zxvf elasticsearch-5.6.1.tar.gz
2.cd elasticsearch-5.6.1
3.安装x-pack
bin/elasticsearch-plugin install file:///home/user/x-pack-5.6.1.zip
4.安装ik
bin/elasticsearch-plugin install file:///home/user/elasticsearch-analysis-ik-5.6.1.zip
5.查看插件是否安装成功
bin/elasticsearch-plugin list
6.修改es配置
vi config/elasticsearch.yml
配置如下:
cluster.name: es5_test
node.name: node-12-00
network.host: 10.200.110.12
bootstrap.memory_lock: true
cluster.routing.allocation.same_shard.host: true
path.data: /data0
path.logs: /data0/log
node.max_local_storage_nodes: 4
http.port: 9200
transport.tcp.port: 9300
#x-pack无需密码
xpack.security.enabled: false
#单播域名列表,可以只写部分hosts
discovery.zen.ping.unicast.hosts: ["10.200.110.16:9301","10.200.110.16:9302"]
discovery.zen.minimum_master_nodes: 9
gateway.recover_after_nodes: 14
gateway.expected_nodes: 16
gateway.recover_after_time: 5m
#/******** 目前未加的参数 **********/
#适当增大写入buffer和bulk队列长度,提高写入性能和稳定性
indices.memory.index_buffer_size: 15%
thread_pool.bulk.queue_size: 1024
#计算disk使用量时,不考虑正在搬迁的shard
cluster.routing.allocation.disk.include_relocations: false
#设置内存熔断参数,防止写入或查询压力过高导致OOM,具体数值可根据使用场景调整。
indices.breaker.total.limit: 30%
indices.breaker.request.limit: 6%
indices.breaker.fielddata.limit: 3%
#调小查询使用的cache,避免cache占用过多的jvm内存,具体数值可根据使用场景调整。
indices.queries.cache.count: 500
indices.queries.cache.size: 5%
#单机多节点时,主从shard分配以ip为依据,分配到不同的机器上,避免单机挂掉导致数据丢失。
cluster.routing.allocation.awareness.attributes: ip
node.attr.ip: 1.1.1.1
#指定节点的类型
node.attr.boxtype: strong
node.attr.group: 10
7.修改jvm
jvm.option
vi config/jvm.options
将
-Xms2g
-Xmx2g
改为
-Xms31g
-Xmx31g
(七).给user授权
sudo chown -R user elasticsearch-5.6.1
sudo chown -R user /data*
(八).复制安装好的es
1.复制三份,修改config
cp -rf elasticsearch-5.6.1 elasticsearch-5.6.1-node1
cp -rf elasticsearch-5.6.1 elasticsearch-5.6.1-node2
cp -rf elasticsearch-5.6.1 elasticsearch-5.6.1-node3
2.修改es配置(数据路径,日志路径,节点名,集群名,端口)
vi elasticsearch-5.6.1-node1/conf/elasticsearch.yml
path.data: /data1
path.logs: /data1/log
node.name: node-12-01
cluster.name: es_cluster
http.port: 9201
transport.tcp.port: 9301
2.发送到其他机器上
scp /home/user/elasticsearch-5.6.1 [email protected]:/home/user
(九).安装守护进程工具supervisor管理es集群