前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS下ElasticSearch集群部署及调优

CentOS下ElasticSearch集群部署及调优

作者头像
星哥玩云
发布2022-07-19 16:25:51
4860
发布2022-07-19 16:25:51
举报
文章被收录于专栏:开源部署

系统: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

ES主机2

ES主机3

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档