linux搭建elasticsearch7.10集群及问题解决
1.压缩包下载
下载地址:
curl下载
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz tar -xzvf elasticsearch-7.10.2-linux-x86_64.tar.gz cd elasticsearch-7.10.2 ./bin/elasticsearch
2.解压,配置
tar -xzvf elasticsearch-7.10.0
cd -7.10.0
修改config目录下elasticsearch.yml文件:
集群核心核心配置:
-
cluster.name: 集群名称,唯一确定一个集群。 node.name:节点名称,一个集群中的节点名称是唯一固定的,不同节点不能同名。 node.master: 主节点属性值 node.data: 数据节点属性值 network.host: 本节点的绑定ip,及提供服务的ip地址 http.port: 本节点的http端口 transport.port:9300——集群之间通信的端口,若不指定默认:9300 discovery.seed_hosts: 节点发现需要配置一些种子节点,与7.X之前老版本:disvoery.zen.ping.unicast.hosts类似,一般配置集群中的全部节点 cluster.initial_master_nodes:指定集群初次选举中用到的具有主节点资格的节点,称为集群引导,只在第一次形成集群时需要。
cluster.name: my-cluster node.name: node-1 node.master: true node.data: true network.host: 0.0.0.0 # 所有ip可以访问 http.port: 9200 # 访问端口 transport.tcp.port: 9300 discovery.seed_hosts: ["169.254.195.129:9300","169.254.195.130:9300","169.254.195.128:9300"] cluster.initial_master_nodes: ["node-1","node-2"] http.cors.enabled: true http.cors.allow-origin: "*" //跨域访问
3.启动
cd到bin目录下,执行启动脚本
./elasticsearch ./elasticsearch -d # 后台运行
4.我遇到的问题以及解决方法
开发模式和生产模式
开发模式:开发模式是默认配置(未配置集群发现), 配置discovery.type=single-node,此项配置是指定该节点为单节点,绕过集群启动的引导检查。
生产模式:用户修改了集群的相关配置会触发生产模式,在生产模式下,服务启动会进行引导检查(bootstrap check),引导检查就是在启动时对一些重要的配置项检查它的合理性。如果其中配置项不合理,ES会拒绝启动服务,并将错误信息输出。引导检查很严格,目的是避免用户因为不熟悉ES的基本使用而启动服务,导致后期性能问题无法解决或者很难解决。
引导检查—Bootstrap Checks
在启用生产模式(集群模式配置)时,节点启动之前ES会自动对节点的相关配置逐项检查,目的是避免开发者在对其配置项不了解的前提下做出不合理的配置。如果配置不符合性能或者兼容性要求,ES会阻止服务启动以保证服务的性能和可用性。
检查项:
-
堆大小检查 文件描述符检查 内存锁检查 最大线程数检查 最大文件大小检查 虚拟内存检查 文件系统映射数检查 客户端JVM检查 串行收集器检查 系统调用过滤器检查 OnError和OnOOMError检查 早期访问检查 所有权限检查 发现配置检查
控制台输出 bootstrap Checks failed错误,基本都是检查未通过
5.启动成功
正常访问:
注:如果你是在虚拟机启动的es,宿主机访问不到时,关闭防火墙就好了,或者开放端口
systemctl stop firewalld.service
查看已经开放的端口:
firewall-cmd --list-ports
开放端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent
