欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

ES-03-CentOS下ElasticSearch集群搭建

时间:2023-04-18
说明

CentOS下ElasticSearch集群搭建集群搭建的一些准备工作是基于单节点安装,具体参照我的上一篇文章“CentOS下安装ElasticSearch”本案例以单服务器多端口模拟集群环境(由node-9201、node-9202、node-9203三个节点共同组成)ES集群正常工作至少需要3台服务节点。如果只有两台节点,当主节点挂掉后会导致另一台是无法被选举为主节点,最终导致整个集群停止服务。如果3台中两台宕机也会导致集群停止服务。

具体影响因素参考本文“其他配置”中的discovery.zen.minimum_master_nodes参数 官方文档:https://www.elastic.co/cn/ 操作步骤 》解压缩

安装包列表

[root@192 ES]# lltotal 311360-rw-r--r--、1 501 games 306436527 Jan 17 12:03 elasticsearch-7.9.3-linux-x86_64.tar.gz

解压缩到一个目录,比如:/usr/local/es/cluster/node-9201

确定已经添加了es用户

确定目录所属用户为es,如果不是,root身份执行以下命令

[root@192 ES]# chown -R es:es /usr/local/es/cluster/

接下来的操作切换为es用户

[root@192 ES]# su es

切换到该目录

[es@192 node-9201]$ pwd/usr/local/es/cluster/node-9201[es@192 node-9201]$ lltotal 568drwxr-xr-x、 2 es es 4096 Jan 20 22:44 bindrwxr-xr-x、 3 es es 169 Jan 20 22:44 configdrwxr-xr-x、 8 es es 96 Jan 20 22:44 jdkdrwxr-xr-x、 3 es es 4096 Jan 20 22:44 lib-rw-r--r--、 1 es es 13675 Jan 20 22:44 LICENSE.txtdrwxr-xr-x、 2 es es 6 Jan 20 22:44 logsdrwxr-xr-x、51 es es 4096 Jan 20 22:44 modules-rw-r--r--、 1 es es 544318 Jan 20 22:44 NOTICE.txtdrwxr-xr-x、 2 es es 6 Jan 20 22:44 plugins-rw-r--r--、 1 es es 7007 Jan 20 22:44 README.asciidoc

》修改配置

config/jvm.options

-Xms128m-Xmx128m

config/elasticsearch.yml

# 集群名称cluster.name: my-app# 节点名称node.name: node-9201# 节点是否可作为masternode.master: true# 节点是否数据节点node.data: true# host名称(可以是IP,也可以是hostname)network.host: 192.168.3.201# http端口http.port: 9201# 集群节点间通信端口transport.port: 9301# 集群初始化时可被选举master的节点cluster.initial_master_nodes: ["node-9201", "node-9202", "node-9203"]# 节点发现(可以是IP,也可以是hostname)discovery.seed_hosts: ["192.168.3.201:9301", "192.168.3.201:9302", "192.168.3.201:9303"]

注意:此时修改好先不要启动,如果启动了,下一步复制文件夹时,新的文件夹中需要清空data文件夹和logs文件夹否则启动报错。

》克隆配置好的ES环境并更改端口等配置

将上一步配置好的文件夹“node-9201”整个复制两份,分别命名为“node-9202”、“node-9203”

[es@192 cluster]$ pwd/usr/local/es/cluster[es@192 cluster]$ lltotal 0drwxr-xr-x、10 es es 167 Jan 21 17:29 node-9201drwxr-xr-x、10 es es 167 Jan 21 17:30 node-9202drwxr-xr-x、10 es es 167 Jan 21 17:30 node-9203

修改配置:node-9202/config/elasticsearch.yml

# 集群名称cluster.name: my-app# 节点名称node.name: node-9202# 节点是否可作为masternode.master: true# 节点是否数据节点node.data: true# host名称(可以是IP,也可以是hostname)network.host: 192.168.3.201# http端口http.port: 9202# 集群节点间通信端口transport.port: 9302# 集群初始化时可被选举master的节点cluster.initial_master_nodes: ["node-9201", "node-9202", "node-9203"]# 节点发现(可以是IP,也可以是hostname)discovery.seed_hosts: ["192.168.3.201:9301", "192.168.3.201:9302", "192.168.3.201:9303"]

修改配置:node-9203/config/elasticsearch.yml

# 集群名称cluster.name: my-app# 节点名称node.name: node-9203# 节点是否可作为masternode.master: true# 节点是否数据节点node.data: true# host名称(可以是IP,也可以是hostname)network.host: 192.168.3.201# http端口http.port: 9203# 集群节点间通信端口transport.port: 9303# 集群初始化时可被选举master的节点cluster.initial_master_nodes: ["node-9201", "node-9202", "node-9203"]# 节点发现(可以是IP,也可以是hostname)discovery.seed_hosts: ["192.168.3.201:9301", "192.168.3.201:9302", "192.168.3.201:9303"]

》分别启动三个ES服务

便于查看日志,首次先前台启动

# 启动第一个节点:node-9201[es@192 node-9201]$ bin/elasticsearch# 启动第二个节点:node-9202[es@192 node-9202]$ bin/elasticsearch# 启动第三个节点:node-9203[es@192 node-9203]$ bin/elasticsearch

如果没有问题,以后可以后台启动

# 启动第一个节点:node-9201[es@192 node-9201]$ bin/elasticsearch -d# 启动第二个节点:node-9202[es@192 node-9202]$ bin/elasticsearch -d# 启动第三个节点:node-9203[es@192 node-9203]$ bin/elasticsearch -d

后续可以考虑做成系统服务,start|stop|restart就方便了,然后加入开启自启动。具体可以参考我的Linux开机自启动相关文章,改吧改吧就行了,标特否~

》查看集群状态

请求方式:GET

发送请求:

curl -X GET http://192.168.3.201:9201/_cat/nodes?v

响应结果:

ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name192.168.3.201 57 93 31 5.45 1.97 0.92 dilmrt * node-9201192.168.3.201 68 93 28 5.45 1.97 0.92 dilmrt - node-9203192.168.3.201 60 93 23 5.45 1.97 0.92 dilmrt - node-9202

》其他配置

以下配置可能你会用到

# 选取master时需要参与的最少候选主节点数,默认1。如果使用默认值,网络不好时可能出现脑裂问题。discovery.zen.minimum_master_nodes: 1# 跨域相关配置(head插件需要开启)http.cors.allow-origin: "*"http.cors.enabled: truehttp.max_content_length: 100mb# 网络其他配置gateway.recover_after_nodes: 2network.tcp.keep_alive: truenetwork.tcp.no_delay: truetransport.tcp.compress: true# 集群内同时启动的数据任务个数,默认是2个cluster.routing.allocation.cluster_concurrent_rebalance: 4# 添加或删除节点及负载均衡时并发恢复的线程个数,默认4个cluster.routing.allocation.node_concurrent_recoveries: 8# 初始化数据恢复时,并发恢复线程的个数,默认4个cluster.routing.allocation.node_initial_primaries_recoveries: 8

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。