阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS下ElasticSearch集群部署及调优

222次阅读
没有评论

共计 3243 个字符,预计需要花费 9 分钟才能阅读完成。

系统:CentOS 6
ES 版本:6.4.0
服务器三台
172.16.0.8
172.16.0.6
172.16.0.22

部署 jdk
解压 jdk 放在 /data 目录,/data/jdk
配置环境变量,/etc/proifle 里面加入如下

export Java_HOME=/data/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

source /etc/profile 生效,查看版本 java -version

部署 ES 集群,三台机器同样的操作
1、添加普通用户启动 es
useradd elasticsearch

2、安装 ES

tar xf elasticsearch-6.4.0.tar.gz -C /data/
mv /data/elasticsearch-6.4.0/ /data/elasticsearch
mkdir /data/elasticsearch/startlogs

3、配置 elasticsearch.yml 文件内容

cp /data/elasticsearch/config/elasticsearch.yml /data/elasticsearch/config/elasticsearch.yml.bak
cat elasticsearch.yml
cluster.name: escluster
node.name: es3
node.master: true
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
bootstrap.memory_lock: true
http.port: 9200
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 3000s
discovery.zen.ping.unicast.hosts: [“172.16.0.8:9300″,”172.16.0.6:9300″,”172.16.0.22:9300”]
bootstrap.system_call_filter: false
network.host: 0.0.0.0

4、配置文件重点参数解析
(1)cluster.name
集群名字,三台集群的集群名字都必须一致

(2)node.name
节点名字,三台 ES 节点字都必须不一样

(3)node.master
该节点是否有资格选举为 master,默认第一台启动的为 master 角色,如果这台服务器宕机会选举新的 master,三台都可以设置为 master

(4)node.data
存储索引数据,三台都设为 true 即可

(5)bootstrap.memory_lock: true
锁住物理内存,不使用 swap 内存,有 swap 内存的可以开启此项

(6)discovery.zen.minimum_master_nodes:2
表示集群最少的 master 数,如果集群的最少 master 数据少于指定的数,将无法启动

(7)discovery.zen.ping_timeout: 3000s
自动发现拼其他节点超时时间

(8)discovery.zen.ping.unicast.hosts: [“172.16.0.8:9300″,”172.16.0.6:9300″,”172.16.0.22:9300”]
设置集群的初始节点列表,集群互通端口为 9300

5、jvm 调优
vim /data/elasticsearch/config/jvm.options

-Xms1g  修改为 ===>  -Xms2g
-Xmx1g  修改为 ===>  -Xmx2g

设置为物理内存一半最佳,可根据服务器内存去选择调,这里我 Master 设为 2G
其他两台 ES 设为 3G

6、设置权限
chown -R elasticsearch: /data/elasticsearch

7、操作系统调优(必须配置,否则 ES 起不来)
【1】内存优化
在 /etc/sysctl.conf 添加如下内容

fs.file-max=655360
vm.max_map_count=655360

sysctl - p 生效

解释:
(1)vm.max_map_count=655360
系统最大打开文件描述符数

(2)vm.max_map_count=655360
限制一个进程拥有虚拟内存区域的大小

【2】修改 vim /etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
* soft memlock unlimited
* hard memlock unlimited

解释:
(nofile)最大开打开文件描述符
(nproc) 最大用户进程数
(memlock) 最大锁定内存地址空间

【3】修改 /etc/security/limits.d/90-nproc.conf
将 1024 修改为 65536

*          soft    nproc    1024    修改前
*          soft    nproc    65536  修改后

ctrl + d 从进终端
ulimit - a 查看

8、编写 es 启动脚本

#!/bin/bash
ROOT=/data

USER=elasticsearch

NAME=elasticsearch

DIR=${ROOT}/${NAME}
BIN=”${DIR}/bin/${NAME}”
PID=${DIR}/.${NAME}.pid
LOG=${DIR}/startlogs/${NAME}.log

start(){
  ps -ef |grep ${DIR}|grep -v grep
  PROC_STAT=$?
  if [${PROC_STAT} != 0 ]
        then
        su – ${USER} -c “${BIN} > ${LOG} 2>&1 &”
        sleep 1
        PROC_PID=`ps -ef|grep ${DIR}|grep -v grep|awk ‘{print $2}’`
        su – ${USER} -c “echo ${PROC_PID} > ${PID}”
  else
        echo “${NAME} start fail,please check it!”
  fi
}

stop(){
  if [-f $PID]
        then
        kill $(cat $PID)
        rm -rf ${PID}
  else
        PROC_PID=`ps -ef |grep ${DIR}|grep -v grep|awk ‘{print $2}’`
        if [-n ${PROC_PID} ]
                then
                kill ${PROC_PID}
                echo “${NAME} had close.”
        else
                echo “${NAME} maybe not run ,please check it!”
        fi
  fi
}
status(){
  ps -ef |grep ${DIR}|grep -v grep
}

case “$1” in
  start)
        start
  ;;
  stop)
        stop
  ;;
  status)
        status
  ;;
  restart)
        stop
        sleep 5
        start
  ;;
  *)
  echo “Usage: /etc/init.d/${NAME} {start|stop|restart}”
  exit 1
esac

exit 0

查看启动

netstat -tlnp | egrep ‘9200|9300’
service elasticsearch status

9、集群验证
curl http://172.16.0.8:9200
curl http://172.16.0.6:9200
curl http://172.16.0.22:9200

ES 主机 1

CentOS 下 ElasticSearch 集群部署及调优

ES 主机 2

CentOS 下 ElasticSearch 集群部署及调优

ES 主机 3

CentOS 下 ElasticSearch 集群部署及调优

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3243字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中