当前位置: 首页 > news >正文

【elastic】elastic高可用集群部署

文章目录

  • 前言
  • 一、资源分享
    • 1、包含源码包、配置文件
  • 二、部署过程
  • 三、报错锦集
  • 四、es的部分相关命令


前言

本博客内容仅为记录博主思路,仅供参考,一切以自己实践结果为准。


一、资源分享

1、包含源码包、配置文件

链接:https://pan.baidu.com/s/1NognuX7vhWaf6r5yLPMP0A?pwd=hcx7
提取码:hcx7


二、部署过程

#准备工作:关闭防火墙、selinux、创建服务目录、上传源码包到服务器
systemctl disable --now firewalld
setenforce 0 && sed -i "s/SELINUX=enforcing/SELINUX=disable/" /etc/selinux/config
mkdir -p /data/elastic/{logs,data}#安装jdk环境,注环境变量这种东西配置到profile的子目录,防止出问题,且jdk1.5后不需要配置CLASSPATH
tar -zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
cat >/etc/profile.d/jdk.sh<<EOF
JAVA_HOME=/usr/local/jdk1.8.0_91
PATH=\$PATH:\$JAVA_HOME/bin
EOF
source /etc/profile.d/jdk.sh
#验证Java环境,若是显示为对应Java版本则安装成功
java -version#添加es普通用户并设置密码作为es服务器启动者(-G补充组,-g所属组
useradd es && echo abc123 | passwd --stdin es#修改Linux系统内核参数:最大打开文件数、文件描述符数、一个进程可用线程数
vim /etc/sysctl.conffs.file-max = 655350			#最大打开文件描述符数量,建议修改为655350vm.max_map_count = 655350		#一个进程可用最大VM数量(虚拟内存大小)
sysctl -p 							#配置立即生效vim /etc/security/limits.conf		#注:root的权限只会被root覆盖,不会被*覆盖* soft nproc 65535				#* 			代表任何用户* hard nproc 65535				#soft 		软限制(警告:超出数量警告)* soft nofile 65535				#hard 		硬限制(阈值:最多使用多少)* hard nofile 65535				#nproc		最大打开的进程数* soft memlock unlimited		#nofile		最大打开的文件数* hard memlock unlimited		#memlock	最大锁定物理内存
vim  /etc/security/limits.d/20-nproc.conf*          soft    nproc     65535root       soft    nproc     unlimited
#配置完成后和切换es用户查看
su es
ulimit -a
exit#配置es配置文件
tar -zxvf elasticsearch-6.7.1.tar.gz -C /usr/local/
vim /usr/local/elasticsearch-6.7.1/config/jvm.options#配置JVM参数,对es服务进行调优,建议设置服务器物理内存的半数(若开启物理内存锁定,有可能锁定失败)-Xms1g-Xmx1g
vim /usr/local/elasticsearch-6.7.1/config/elasticsearch.ymlcluster.name: pms30-cluster				#设置elastic集群名称node.name: master-1						#当前节点在es集群中的名称node.master: true						#true为备选主节点、拥有选取leader投票权node.data: true							#true数据存储节点path.data: /data/elastic/data/			#数据存储目录path.logs: /data/elastic/logs/			#日志存储目录bootstrap.memory_lock: true				#true锁定物理内存(若报错锁定内存失败,false关闭即可)network.host: 192.168.13.10				#当前节点的IP通讯地址,也可以设置为0.0.0.0http.port: 19200						#集群对外暴露端口号transport.tcp.port: 19300				#集群内部通讯端口号#集群IP地址及内部通讯端口号discovery.zen.ping.unicast.hosts: ["192.168.13.10:19300","192.168.13.20:19300","192.168.13.30:19300"]discovery.zen.minimum_master_nodes: 2	#leader选票机制,一般设置为集群投票的半数以上,防止脑裂http.cors.enabled: true					#开启跨域访问支持,默认为falsehttp.cors.allow-origin: "*"				#允许跨域访问的IP地址,*代表任意地址#将所有相关文件的属主/组改会es,否则权限不够无法运行
chown -R es:es /usr/local/elasticsearch-6.7.1/ /data/elastic/#配置完成,切换es用户和后台运行,如果用root运行会失败,且会把文件属主/组改会root,此时需再修改一次属主/组
su es
/usr/local/elasticsearch-6.7.1/bin/elasticsearch -d
#可通过本文下方命令验证es集群是否部署完成

三、报错锦集

#报错锦集

  • 1、not enough master nodes discovered during pinging
    节点启动较少,没有选举出来leader导致,依次启动节点即可解决
  • 2、连接不上XXX节点
    检查防火墙是否没有关闭,大概率是这个问题,生产环境更有可能(不止是firewalld这个墙)
  • 3、warning: Falling back to java on path. This behavior is deprecated. Specify JAVA_HOME
    基本上Java1.5版本之后就不会再配置CLASSPATH环境变量了,这个错误不影响服务运行
  • 4、could not find java; set JAVA_HOME
    Java环境没有安装好,服务没有找到jdk的命令,安装jdk即可
  • 5、INFO: os::commit_memory(0x00000005d4cc0000, 8241020928, 0) failed;error=‘Cannot allocate memory’ (errno=12)
    物理内存锁定失败,首先free -h查看自己有多少内存,是否是之前部署失败的es还在运行(kill -9 PID)
    然后尝试还是不行,尝试缩小要锁定的物理内存,或者关闭锁定物理内存选项即可
  • 6、max file descriptors [4096] for elasticsearch process is too low
    最大打开文件数、文件描述符数、一个进程可用线程数开小了,去配置大一些即可

四、es的部分相关命令

  • 地址可以是负载均衡地址(必须所有节点都在线,否则可能失败),也可以是节点IP地址
#查看es集群状态
curl http://192.168.13.10:19200/_cat/health?v
#好看es节点信息
curl http://192.168.13.10:19200/_cat/nodes?v
#查看es分片信息
curl http://192.168.13.10:19200/_cat/shards?v
#查看es所有命令
curl http://192.168.13.10:19200/_cat

http://www.lryc.cn/news/28329.html

相关文章:

  • 初识Liunx下的进程状态和环境变量以及进程优先级
  • JavaEE——何为线程及创建线程
  • linux配置核查MySQL 配置规范 (Linux)_S3A3G3
  • Protobuf简介
  • 【Kubernetes】第十七篇 - ECS 服务停机和环境修复
  • Vue2的生命周期(详解)
  • Potions (Hard Version) and (Easy Version)(背包DP + 反悔贪心)
  • 剑指 Offer II 017. 含有所有字符的最短字符串
  • Modbus协议初探(C#实现)
  • 【华为OD机试2023】静态扫描 C++ Java Python
  • 函数栈帧的创建和销毁(详解)
  • 【100个 Unity实用技能】 | 脚本无需挂载到游戏对象上也可执行的方法
  • 条件期望5
  • RecyclerView ViewType二级
  • 将对象或数组存在 dom元素的属性上,最后取不到完整数据,只取到 [{
  • Flask源码篇:Flask路由规则与请求匹配过程(超详细,易懂)
  • Jmeter接口测试教程之【参数化技巧总结】,总有一个是你不知道的
  • 缓存与数据库的双写一致性
  • 力扣-213打家劫舍II(dp)
  • 关于【网格结构】岛屿类问题的通用解法DFS(深度遍历)遍历框架+回溯+剪枝总结
  • 【LeetCode】982. 按位与为零的三元组
  • Linux内核源码进程原理分析
  • 电子技术——CMOS反相器
  • gazebo仿真轨迹规划+跟踪(不在move_base框架下)
  • C. Good Subarrays(前缀和)
  • 关于Facebook Messenger CRM,这里有你想要知道的一切
  • ChIP-seq 分析:数据与Peak 基因注释(10)
  • 《C++ Primer Plus》第18章:探讨 C++ 新标准(8)
  • YOLO-V5 系列算法和代码解析(八)—— 模型移植
  • js实现复制拷贝的兼容方法