Linux搭建Elasticsearch集群

本文详细介绍了如何在Linux环境下搭建Elasticsearch集群,包括复制安装包、设置防火墙规则、修改主节点配置、启动集群及Head插件,并讲解了创建索引和分配分片的过程,强调了副本分片和性能的关系以及节点数量对副本分配的重要性。

1.复制已安装解压好的 Elasticsearch

安装教程具体参考我发布的 Centos8安装Elasticsearch、Head、IK、Kibana (ELK)
在这里插入图片描述

2.放行集群端口

防火墙:

firewall-cmd --zone=public --add-port=9201/tcp --permanent  #开放9201端口

firewall-cmd --zone=public --add-port=9202/tcp --permanent  #开放9202端口

firewall-cmd --zone=public --add-port=9301/tcp --permanent  #开放9301端口

firewall-cmd --zone=public --add-port=9302/tcp --permanent  #开放9302端口

firewall-cmd --reload  #刷新防火墙

阿里云:
在这里插入图片描述
宝塔:
在这里插入图片描述

3.修改主节点配置文件

vim /usr/local/elk/elasticsearch-7.6.1/config/elasticsearch.yml 

将原来的配置全部删除,以下内容全部复制

#http.host: 0.0.0.0
#节点 1 的配置信息:
#集群名称,集群模式下每个节点名称唯一
cluster.name: es-cluster

#节点名称
node.name: node1

#锁定物理内存地址,防止es内存被交换出去,也就是避免es使用swap交换分区,频繁的交换,会导致IOPS变高
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

#外网访问9200端口访问
network.host: 0.0.0.0

#设置对外服务的http端口,默认为9200
http.port: 9200

#设置节点之间的tcp端口
transport.tcp.port: 9300

#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]

# 指定 master 节点
cluster.initial_master_nodes: ["node1"]

#设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
# 节点数/2+1   3/2+1=2
discovery.zen.minimum_master_nodes: 2

#指定该节点是否有资格被选举成为node,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。
node.master: true

#指定该节点是否存储索引数据,默认为true。
node.data: true

#是否允许跨域REST请求
http.cors.enabled: true

#允许REST请求来自何处
http.cors.allow-origin: "*"

另外两个节点 不同就是 node.namehttp.porttransport.tcp.port
在这里插入图片描述
另外一个节点 node.name: node3,http.port: 9202,transport.tcp.port: 9302

4.启动集群、启动head插件

分别启动elasticsearch,浏览器访问 ip:9200/_cluster/health?pretty
在这里插入图片描述

谷歌JSON美化插件:
链接:https://pan.baidu.com/s/1WrEbcE_6dlTkAfXs8kSzJQ
提取码:xz29

浏览器访问 ip:9100
在这里插入图片描述
哪个节点启动就是哪个就是主节点,我这里是node2节点先启动

5.创建索引分配分片

启动kibaan,浏览器访问 ip:5601
在这里插入图片描述

PUT /test_index
{
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 2
  }
}

在这里插入图片描述
在这里插入图片描述
primary shard 后期不可修改,replica shard 可以随时修改

如果只是在相同节点数目的集群上增加更多的副本分片并不能提高性能,因为每个分片从节点上获得的资源会变少。 你需要增加更多的硬件资源来提升吞吐量。但是更多的副本分片数提高了数据冗余量,我们在实际开发中应当有所舍取
需要注意的是:ES 的单个节点不会存储相同的 shard 的,这是为了容错的考虑,如果 replica 的数量设置为 2,那么 node 的数量必须最少是 3,才可以完全分配replica,因此 node = replica + 1

<think>嗯,用户问的是如何在Linux系统上构建Elasticsearch集群。首先,我需要回忆一下之前关于Elasticsearch集群搭建的步骤。根据提供的引用内容,有三个引用涉及到安装步骤,比如引用1提到搭建步骤和注意事项,引用2提到了分发文件夹的命令xsync,引用3提到了二进制安装和keystore的创建。 首先,我应该整理搭建集群的基本流程。通常安装Elasticsearch需要先准备环境,比如Java环境,然后下载并解压安装包。接着是配置文件,特别是elasticsearch.yml里的集群名称、节点名称、网络主机、初始主节点列表等。然后可能需要处理系统配置,比如内存限制和文件描述符数量。之后是分发安装文件到其他节点,每个节点都要调整各自的配置。最后启动服务并验证集群状态。 用户提供的引用中提到使用xsync分发文件夹,这应该是在集群中的其他机器上同步安装目录。另外,引用3提到了二进制安装,所以可能用户需要的是通过二进制包安装的方式,而不是使用包管理器。需要注意版本的一致性,确保所有节点使用相同的Elasticsearch版本。 还要考虑安全配置,比如生成keystore,不过引用3中的命令是创建keystore,可能在8.x版本中安全功能更严格,需要SSL/TLS配置。但用户提供的引用中,引用2用的是7.6.2版本,引用3是8.14.2,所以可能需要分情况说明,或者统一推荐一个版本?但用户的问题没有指定版本,可能需要给出通用步骤,同时提到版本差异。 另外,系统配置部分,比如修改/etc/security/limits.conf和/etc/sysctl.conf,这些是Linux系统优化的一部分,确保Elasticsearch有足够的资源运行。需要提醒用户根据实际环境调整参数,比如内存大小。 在启动服务时,可能需要使用systemd管理,或者直接运行bin/elasticsearch。但生产环境建议用守护进程方式运行,所以创建systemd服务单元是有必要的。 验证集群状态可以通过curl或者Kibana,但用户可能没有安装Kibana,所以用curl检查节点加入情况即可。最后,注意事项里要提到版本一致、防火墙设置、资源监控,这些引用1也提到了合理配置和监控的重要性。 生成的问题部分需要围绕搭建集群的后续步骤,比如增加节点、安全加固、配置文件参数、监控方法、版本升级等。这些都是用户在搭建集群后可能遇到的问题,需要提前考虑。</think>### 在Linux系统上构建Elasticsearch集群的步骤 #### 一、环境准备 1. **操作系统要求** - 支持Linux发行版(如CentOS、Ubuntu等) - 确保所有节点时间同步(使用NTP服务) - 关闭防火墙或开放端口:9200(HTTP API)、9300(节点通信) 2. **依赖安装** - 安装Java环境(Elasticsearch 7.x需要JDK 11+,8.x需要JDK 17+) ```bash sudo apt install openjdk-17-jdk # Ubuntu示例 ``` --- #### 二、安装Elasticsearch 1. **下载和解压二进制包** ```bash wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.14.2-linux-x86_64.tar.gz tar -zxvf elasticsearch-8.14.2-linux-x86_64.tar.gz -C /opt/ ``` 2. **配置系统参数** - 修改`/etc/security/limits.conf`,添加: ```bash * soft nofile 65535 * hard nofile 65535 elasticsearch soft memlock unlimited # 用户名为elasticsearch时 ``` - 修改`/etc/sysctl.conf`,添加: ```bash vm.max_map_count=262144 ``` 执行`sysctl -p`生效[^3]。 --- #### 三、集群配置 1. **修改`elasticsearch.yml`** 配置文件路径:`/opt/elasticsearch-8.14.2/config/elasticsearch.yml` ```yaml cluster.name: my-cluster # 集群名称需一致 node.name: node-1 # 节点唯一标识 network.host: 0.0.0.0 # 绑定IP discovery.seed_hosts: ["192.168.1.101", "192.168.1.102"] # 集群节点IP列表 cluster.initial_master_nodes: ["node-1", "node-2"] # 初始主节点 ``` 2. **分发配置到其他节点** 使用工具(如`scp`或`xsync`)同步安装目录: ```bash xsync /opt/elasticsearch-8.14.2 # 需提前配置SSH免密登录[^2] ``` --- #### 四、启动与验证 1. **启动服务** 在每个节点执行: ```bash cd /opt/elasticsearch-8.14.2/bin ./elasticsearch -d # 后台运行 ``` 2. **验证集群状态** ```bash curl -XGET http://localhost:9200/_cluster/health?pretty ``` 输出应包含`"status" : "green"`和正确的节点数[^1]。 --- #### 五、注意事项 1. **安全加固**(针对Elasticsearch 8.x) - 生成keystore: ```bash ./elasticsearch-keystore create # 在bin目录下执行[^3] ``` - 配置TLS证书以实现节点间加密通信。 2. **性能优化** - 分配内存:修改`jvm.options`中的`-Xms`和`-Xmx`(不超过物理内存的50%) - 使用SSD硬盘提升I/O性能。 ---
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linrp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值