ES集群部署(保姆级,一篇足够)

1.ElasticSearch

1.1ES集群搭建

1.环境准备

本文已三个节点(服务器)为例,准备三台服务器

  • 192.168.142.104
  • 192.168.142.105
  • 192.168.142.106

1.2.搭建过程

1).三台服务器分别搭建ES

参考文章:https://blog.csdn.net/csdn570566705/article/details/134947197

上传安装包和解压

tar -zxvf elasticsearch-7.6.1-linux-x86_64.tar.gz

新建一个用户,安全考虑,elasticsearch默认不允许以root账号运行

创建用户:useradd ES
设置密码:passwd ES              #输入密码

修改目录权限

chown -R ES.ES  /opt/elasticsearch-7.6.1	 # chown是改改文件的属主与属组  
chmod -R  777 /opt/ elasticsearch-7.6.1	 # chmod是更改文件的权限,777为u、g、o均有rxw权限   # chgrp只是更改文件的属组。

在/etc/security/limits.conf文件内容最后添加后面两行(切记*不能省略)

vim /etc/security/limits.conf

* soft nofile 65536
* hard nofile 65536

修改虚拟内存空间,默认太小

在配置文件中改配置 最后一行上加上,执行 sysctl -p(立即生效)
vim /etc/sysctl.conf

vm.max_map_count=262144

修改elasticsearch的JVM内存,机器内存不足,常规线上推荐16到24G内存

vim config/jvm.options

-Xms1g
-Xmx1g                #这两个必须保持一致,否则会报错,生产环境中默认2g不用修改
2).搭建集群
vim /opt/elsticsearch-7.6.1/config/elasticsearch.yml

配置如下:其他两台机器需要修改5、7row,可以用scp命令

配置参考:https://blog.csdn.net/hhq850741642/article/details/130222497

# 加入如下配置
#集群名称
cluster.name: ES
#节点名称, 每个节点的名称不能重复 ,三台机器保持不一样
node.name: node-1
#ip 地址,填入每个节点的ip,填写三台机器的ip
network.host: 192.168.142.104  
#是不是有资格主节点
node.master: true
node.data: true
# 设置对外服务的http端口,默认为9200
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# head 插件需要这打开这两个配置
http.cors.allow-origin: "*"
http.cors.enabled: true
http.max_content_length: 200mb
#ES7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 master
cluster.initial_master_nodES: ["node-1", "node-2", "node-3"]
#ES7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["192.168.142.104:9300","192.168.142.105:9301","192.168.142.106:9300"]
#集群内同时启动的数据任务个数,默认是 2 个
cluster.routing.allocation.cluster_concurrent_rebalance: 16
#添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个
cluster.routing.allocation.node_concurrent_recoveriES: 16
#初始化数据恢复时,并发恢复线程的个数,默认 4 个
cluster.routing.allocation.node_initial_primariES_recoveriES: 16
g.csdn.net/hhq850741642/article/details/130222497
3).3台机器均进行1)、2)操作

1.3.启动ElasticSearch

切换到ES用户启动, 进入bin目录下启动, &为后台启动,再次提示ES消息时 Ctrl + c 跳出 ./elasticsearch &

./elasticsearch &             #三台机器均进行启动操作
ss -ntl               #复制一台新机器,查看9200和9300端口是否起来
报错

在之前已经安装了jdk时,会报错,需要修改bin下的elasticsearch-env文件

ES启动时候报错:future versions of Elasticsearch will require Java 11; your Java version from [/data/jdk1.8.0_111/jre] doES not meet this requirement

ES启动时候会使用环境变量的jdk,在不改变现有环境变量的情况下使用自带的openjdk,需要执行以下步骤:
参考文章:https://blog.csdn.net/wangyf1129/article/details/128814473

1.4.验证

#查看集群健康情况
http://112.74.167.42:9200/_cluster/health
#集群状态说明
#green:所有的主分片和副本分片都正常运行。
#yellow:所有的主分片都正常运行,但有部分副本分片运行不正常。
#red:主分片没能正常运行

#查看分片情况
http://112.74.167.42:9200/_cat/shards?v=true&pretty

#查看节点分布情况
http://112.74.167.42:9200/_cat/nodES?v=true&pretty

#查看索引列表
http://112.74.167.42:9200/_cat/indicES?v=true&pretty

1.5.其他

  • ES教程(全,推荐):http://t.csdnimg.cn/25vRE
  • ES常见命令:https://www.cnblogs.com/wangcuican/p/13896973.html(结合JSON在线:https://www.sojson.com/)
  • ES与MySQL的比较(熟记):https://www.cnblogs.com/hahaha111122222/p/12876227.html

ww.cnblogs.com/wangcuican/p/13896973.html(结合JSON在线:https://www.sojson.com/)

  • ES与MySQL的比较(熟记):https://www.cnblogs.com/hahaha111122222/p/12876227.html
  • 35
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值