Elasticsearch集群搭建

安装包准备

1. jdk(必须1.8版本以上)
下载地址:https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html
点击选择自己需要的版本:在这里插入图片描述
2. es安装包
下载地址:https://www.elastic.co/guide/en/elasticsearch/reference/7.8/index.html
在这里插入图片描述
在这里插入图片描述

配置

1.解压jdk安装jdk,配置jdk环境变量,具体教程自行百度
2.解压es,复制两份,分别命名node1、node2、node3
在这里插入图片描述
3.在每个es节点目录下配置jvm堆大小,他默认是1G,如果你电脑配置不行,请按需要调整参数大小(非必须)
在这里插入图片描述
在这里插入图片描述
4.对每个节点的es配置:config下的elasticsearch.yml
注意:这里涉及到的目录(data、logs)需要在es启动之前创建

node1:

cluster.name: my-application
node.name: node-1
network.host: 127.0.0.1
http.port: 9201
transport.port: 9301
path.data: xxx\elasticsearch-7.8.1-node1\data
path.logs: xxx\elasticsearch-7.8.1-node1\logs
discovery.seed_hosts: ["127.0.0.1:9301", "127.0.0.1:9302","127.0.0.1:9303"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
node.master: true
node.data: true
bootstrap.memory_lock: true
http.cors.enabled: true
http.cors.allow-origin: "*"

node2:

cluster.name: my-application
node.name: node-2
network.host: 127.0.0.1
http.port: 9202
transport.port: 9302
path.data: xxx\elasticsearch-7.8.1-node2\data
path.logs: xxx\elasticsearch-7.8.1-node2\logs
discovery.seed_hosts: ["127.0.0.1:9301", "127.0.0.1:9302","127.0.0.1:9303"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
node.master: true
node.data: true
bootstrap.memory_lock: true
http.cors.enabled: true
http.cors.allow-origin: "*"

node3:

cluster.name: my-application
node.name: node-3
network.host: 127.0.0.1
http.port: 9203
transport.port: 9303
path.data: xxx\elasticsearch-7.8.1-node3\data
path.logs: xxx\elasticsearch-7.8.1-node3\logs
discovery.seed_hosts: ["127.0.0.1:9301", "127.0.0.1:9302","127.0.0.1:9303"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
node.master: true
node.data: true
bootstrap.memory_lock: true
http.cors.enabled: true
http.cors.allow-origin: "*"

5.配置讲解
更多详细配置请参考官网:https://www.elastic.co/guide/en/elasticsearch/reference/7.8/settings.html

Cluster:
	cluster.name:集群名称,集群唯一,其他节点通过cluster.name发现集群。
Node:
	node.name:节点名称,其他节点可通过node.name发现节点,默认是机器名。
Memory:
	bootstrap.memory_lock: true:禁用swap,生产环境必须设置为true。
Network:
	1.	network.host:当前节点绑定的Ip地址,通常为当前服务器的ip地址。
	2.	http.port:当前节点的服务端口号[9200,9300)
	3.	transport.port:当前节点的通讯端口号[9300,9400)
Discovery:
	1.	discovery.seed_hosts:集群中master的候选节点地址数组,可以配置ip+端口或者节点名称,
	比如:discovery.seed_hosts: ["172.16.10.184:9300", "172.16.10.185:9300"]
	2.	cluster.initial_master_nodes:集群初始master节点。
	如:cluster.initial_master_nodes: ["node-4"],集群启动首先会选举node-4为master节点
跨域:
	http.cors.enabled: true
	http.cors.allow-origin: "*"
角色:
	node.master: true		当前节点是master的候选节点
	node.data: false		当前节点不是数据节点
单节点发现:开发模式,会绕过引导检查,生产环境能设置单节点发现。
	discovery.type=single-node
Paths:切忌使用默认位置,当ES升级时会造成数据丢失。当多个节点共享同一台服务器时,不能使用相同的路径。
	path.data:数据储存路径,多个位置用逗号隔开
	path.logs:日志储存路径

docker配置

请参考官网
https://www.elastic.co/guide/en/elastic-stack-get-started/7.8/get-started-docker.html

启动集群查看

1.使用elasticsearch-head,按照官方教程进行安装(需要nodejs环境)
https://github.com/mobz/elasticsearch-head
2.如果能翻墙,谷歌浏览器可以下载插件,地址:https://chrome.google.com/webstore/detail/elasticsearch-head/ffmkiejjmecolpfloofpjologoblkegm
在这里插入图片描述

安装中可能遇到的问题

这里一般是针对linux环境下:

问题1:error='Cannot allocate memory’
原因:ES 5.x+堆内存大小默认配置为2G ES 7.x+默认4G
解决:-e “ES_JAVA_OPTS=-Xms512m -Xmx512m” (docker环境)、修改jvm.options(非docker)

问题2:WARNING: IPv4 forwarding is disabled. Networking will not work.
解决:
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
restart network && systemctl restart docker
sysctl net.ipv4.ip_forward

问题3: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
解释: 5.0以后,ES使用mmapfs作为默认的文件系统存储类型。可以通过配置index.store.type来设置ES默认的文件系统存储类型。
Niofs(非阻塞文件系统) mmapfs(内存映射文件系统)
配置:index.store.type: niofs
解决:
vi /etc/sysctl.conf
vm.max_map_count=262144
验证:
grep vm.max_map_count /etc/sysctl.conf

问题4:max number of threads [1024] for user [elasticsearch] is too low, increase to at least [2048]
解决:
vi /etc/security/limits.d/90-nproc.conf
修改如下内容(注意星号):
* soft nproc 1024 => * soft nproc 4096

问题5:memory locking requested for elasticsearch process but memory is not locked
解决:https://blog.csdn.net/cbuy888/article/details/103166008

  1. vi /etc/security/limits.conf,最后添加以下内容。
    * soft nofile 65536
    * hard nofile 65536
    * soft nproc 32000
    * hard nproc 32000
    * hard memlock unlimited
    * soft memlock unlimited
  2. vi /etc/systemd/system.conf ,分别修改以下内容。
    DefaultLimitNOFILE=65536
    DefaultLimitNPROC=32000
    DefaultLimitMEMLOCK=infinity
    注意 修改操作系统配置需要重启系统才能生效,如果宿主机内存过小,可能导致容器无法启动。开发模式内存建议4G以上,生产建议32G以上.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值