CentOS7下Elasticsearch集群部署记录
时间:2022-04-23
本文章向大家介绍CentOS7下Elasticsearch集群部署记录,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Elasticsearch是一个分布式搜索服务,提供Restful API,底层基于Lucene,采用多shard的方式保证数据安全,并且提供自动resharding的功能,github等大型的站点也都采用Elasticsearch作为其搜索服务。废话在此就不多赘述了,下面记录下CentOS7下Elasticsearch集群部署过程:
之前在三台服务器部署Elasticsearch集群:
qd-vpc-op-es01 101.119.92.247
qd-vpc-op-es02 101.119.92.249
qd-vpc-op-es03 101.119.92.254
下面再追加一台es04机器到集群中,操作如下:
qd-vpc-op-es04 101.119.92.16
1)安装jdk和elasticsearch
jdk-8u5-linux-x64.rpm下载地址:
https://pan.baidu.com/s/1bpxtX5X (提取密码:df6s)
elasticsearch-5.5.0.rpm下载地址:
https://pan.baidu.com/s/1mibwWeG (提取密码:vtm2)
[root@qd-vpc-op-es04 ~]# cd tools/
[root@qd-vpc-op-es04 tools]# ls
elasticsearch-5.5.0.rpm jdk-8u5-linux-x64.rpm
[root@qd-vpc-op-es04 tools]# rpm -ivh elasticsearch-5.5.0.rpm
[root@qd-vpc-op-es04 tools]# rpm -ivh jdk-8u5-linux-x64.rpm
[root@qd-vpc-op-es04 tools]# java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
2)配置elasticsearch
[root@qd-vpc-op-es04 ~]# cd /etc/elasticsearch/
[root@qd-vpc-op-es04 elasticsearch]# ls
elasticsearch.yml elasticsearch.yml.bak jvm.options log4j2.properties nohup.out scripts
[root@qd-vpc-op-es04 elasticsearch]# cat elasticsearch.yml|grep -v "#" //集群中每个节点的配置内容都基本一致
cluster.name: image_search //集群名称
node.name: image_search_node_4 //集群中本节点的节点名称,这里定义即可
path.data: /data/es/data //服务目录路径
path.logs: /data/es/logs //服务日志路径
discovery.zen.ping.unicast.hosts: ["101.119.92.247","101.119.92.249","101.119.92.254","10.111.233.16"] //这里是各节点的ip地址
network.host: 0.0.0.0 //服务绑定的网络地址
默认elasticsearch服务端口时9200
[root@qd-vpc-op-es04 elasticsearch]# cat elasticsearch.yml|grep 9200
#http.port: 9200
[root@qd-vpc-op-es04 elasticsearch]# systemctl start elasticsearch.service
[root@qd-vpc-op-es04 elasticsearch]# systemctl restart elasticsearch.service
[root@qd-vpc-op-es04 elasticsearch]# systemctl status elasticsearch.service
[root@qd-vpc-op-es04 elasticsearch]# ps -ef|grep elasticsearch
[root@qd-vpc-op-es04 elasticsearch]# lsof -i:9200
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 10998 elasticsearch 320u IPv4 39255 0t0 TCP *:wap-wsp (LISTEN)
检查elasticsearch的健康状态
[root@qd-vpc-op-es04 elasticsearch]# curl 'localhost:9200/_cat/indices?v'
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open video_filter Bx7He6ZtTEWuRBqXYC6gRw 5 1 458013 0 4.1gb 2gb
green open recommend_history_image svYo_Do4SM6wUiv6taUWug 5 1 2865902 0 24.9gb 12.4gb
green open recommend_history_gif rhN3MDN2TbuYILqEDksQSg 5 1 265731 0 2.4gb 1.2gb
green open post_images TMsMsMEoR5Sdb7UEQJsR5Q 5 1 48724932 0 407.3gb 203.9gb
green open review_images_v2 qzqnknpgTniU4rCsvXzs0w 5 1 50375955 0 61.6gb 30.9gb
green open review_images rWC4WlfMS8aGe-GOkTauZg 5 1 51810877 0 439.3gb 219.7gb
green open sensitive_images KxSrjvXdSz-y8YcqwBMsZA 5 1 13393 0 128.1mb 64mb
green open post_images_v2 FDphBV4-QuKVoD4_G3vRtA 5 1 49340491 0 55.8gb 27.8gb
从上面的命令结果中可以看出,本节点已经成功加入到名为image_search的elasticsearch集群中了,green表示节点状态很健康,数据也已经在同步中了。
3)在代码中更新elasticsearch的配置
通知开发同事,在代码中增加新增elasticsearch节点的配置,上线更新后,到新节点上查看elasticsearch日志是否有信息写入:
[root@qd-vpc-op-es04 ~]# cd /data/es/logs/
[root@qd-vpc-op-es04 ~]# chown -R elasticsearch.elasticsearch /data/es
[root@qd-vpc-op-es04 logs]# ls
image_search_deprecation.log image_search_index_indexing_slowlog.log image_search_index_search_slowlog.log image_search.log
----------------------------------------------------------------------------------------------------------------
注意:
如果往elasticsearch集群中新增一个节点,做法如下:
1)在新节点上安装jdk和elasticsearch服务,配置elasticsearch.yml文件了,启动elasticsearch服务
2)在集群中其他节点上配置elasticsearch.yml文件,不需要启动elasticsearch服务
3)在新节点上执行curl 'localhost:9200/_cat/indices?v'命令,查看健康状态以及数据同步情况
4)在代码中增加新增elasticsearch节点的配置,上线更新后,查看新增节点的elasticsearch日志是否有信息写入
----------------------------------------------------------------------------------------------------------------
最后顺便贴一下其他三个节点的elasticsearch.yml文件配置:
[root@qd-vpc-op-es01 ~]# cat /etc/elasticsearch/elasticsearch.yml |grep -v "#"
cluster.name: image_search
node.name: image_search_node_1
path.data: /data/es/data
path.logs: /data/es/logs
discovery.zen.ping.unicast.hosts: ["10.111.233.16","101.119.92.247","101.119.92.249","101.119.92.254"]
network.host: 0.0.0.0
[root@qd-vpc-op-es02 ~]# cat /etc/elasticsearch/elasticsearch.yml |grep -v "#"
cluster.name: image_search
node.name: image_search_node_2
path.data: /data/es/data
path.logs: /data/es/logs
discovery.zen.ping.unicast.hosts: ["10.111.233.16","101.119.92.247","101.119.92.249","101.119.92.254"]
network.host: 0.0.0.0
[root@qd-vpc-op-es03 ~]# cat /etc/elasticsearch/elasticsearch.yml|grep -v "#"
cluster.name: image_search
node.name: image_search_node_3
path.data: /data/es/data
path.logs: /data/es/logs
discovery.zen.ping.unicast.hosts: ["101.119.92.247","101.119.92.249","101.119.92.254","10.111.233.16"]
network.host: 0.0.0.0
----------------------------------------------------------------------------------------------------------------
如果关闭某个节点或将其从集群中提出来,需要提前通知该节点停止同步数据(迁移的时候会用到):
# curl -XPUT 'localhost:9200/_cluster/settings' -d '{"transient" : {"cluster.routing.allocation.enable" : "none”}}’
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android仿抖音右滑清屏左滑列表功能的实现代码
- 利用织梦CMS0day注入漏洞渗透测试
- nodejs中追加内容到文件
- android实现滚动文本效果
- Android实现View的拖拽
- 诊断日志知多少 | DiagnosticSource 在.NET上的应用
- Android Studio 4.0新特性及升级异常问题的解决方案
- Android Studio 4.0 正式发布在Ubuntu 20.04中安装的方法
- Android Studio 4.0 新功能中的Live Layout Inspector详解
- Android实现滑动刻度尺效果
- Android 仿微信发动态九宫格拖拽、删除功能
- android自定义等级评分圆形进度条
- Android Fragment实现底部通知栏
- Flutter实现局部刷新
- Android自定义条形对比统计图