搭建一个elasticsearch集群

本文详细介绍如何使用三台服务器搭建Elasticsearch集群,包括清除旧数据、配置elasticsearch.yml文件、设置集群名称、节点名称、IP地址及端口,确保集群自动发现机制正常工作,最后启动各服务器并验证集群状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何搭建一个elasticsearch集群呢?

一般服务器有两个以上就可以搭建一个集群了,比如现在我们以三个为例,首先需要将服务器里面的data进行删除,data里面存的是数据,然后在config里面对elasticsearch.yml进行配置

http.cors.enabled: true
http.cors.allow-origin: "*"
#节点3的配置信息:
#集群名称,保证唯一
cluster.name: my-elasticsearch
#节点名称,必须不一样
node.name: node-3
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9203
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9303
#设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"]

对三个服务器分别进行配置,保证cluster.name是相同的,是唯一的,然后节点名称不一样,然后配置ip,端口号等信息

然后就是对三个服务器进行启动,

新建一个索引库,连接上随便一个服务器的端口号,然后查看

这样服务器都搭建好了

<think>好的,用户需要关于在三服务器上部署和配置Elasticsearch集群的详细步骤,包括命令、配置文件和启动流程。首先,我得回忆一下之前处理类似问题的经验。根据提供的引用内容,用户可能已经看过一些资料,但需要更具体的操作指南。 首先,用户提到了三CentOS 7.8服务器,不联网的情况下部署ES 6.8.23集群。需要配置path.data和path.logs。所以,我得确保步骤涵盖这些方面。同时,用户需要具体的命令和配置文件修改,说明他们可能希望一步步照着做,不需要自己再查找其他资料。 第一步,准备工作。用户需要安装Java环境,因为Elasticsearch是基于Java的。根据引用3,必须确保Java运行环境正确安装。需要检查Java版本是否符合ES 6.8.23的要求。ES 6.8通常需要Java 11,所以可能需要安装对应的JDK版本。另外,三服务器可能都需要配置相同的环境,所以要确保每机器都完成同样的步骤。 接下来,下载和分发ES安装包。由于服务器不联网,用户可能需要先在一机器上下载好,然后通过scp或者其他方式分发到其他服务器。这里需要给出具体的命令,比如使用wget或者curl获取安装包,然后解压到指定目录。 然后是配置elasticsearch.yml文件。每个节点需要不同的配置,比如节点名称、网络主机、集群名称、发现种子主机等。根据引用2和3,需要明确每个节点的配置参数。例如,cluster.name必须一致,node.name要唯一,network.host设置为服务器的IP,discovery.zen.ping.unicast.hosts列出所有节点的主机地址和端口。同时,path.data和path.logs需要指定正确的路径,用户可能需要根据实际情况修改这些路径。 另外,系统配置也是关键。比如,需要调整内存映射限制,这涉及到修改/etc/sysctl.conf中的vm.max_map_count,然后应用配置。还有文件描述符限制,需要修改/etc/security/limits.conf。这些步骤在之前的引用中提到过,所以必须包含进去,否则集群可能启动失败。 启动流程部分,需要给出在每个节点上启动ES的命令,并检查服务状态。使用curl命令验证节点是否正常加入集群。可能还需要检查日志文件,确认没有错误信息。 安全配置方面,如果是在生产环境,可能需要禁用swap、配置防火墙规则等,但用户的问题中没有特别提到安全要求,所以可能这部分作为可选步骤。 最后,生成相关问题需要考虑用户可能的后续疑问,比如性能优化、故障排查、添加节点等,这样能帮助他们进一步深入使用ES集群。 在整理这些步骤时,需要确保命令和配置文件的示例准确,特别是路径和IP地址需要替换成用户实际使用的值。同时,注意使用中文,避免专业术语错误,保持步骤清晰,方便用户跟随操作。</think>以下是在三CentOS 7.8服务器上部署Elasticsearch 6.8.23集群的完整操作指南: ### 一、基础环境准备 1. **安装JDK** ```bash # 检查Java版本(要求JDK11) sudo yum install -y java-11-openjdk java -version ``` 2. **创建专用用户** ```bash useradd elastic -p elastic mkdir -p /opt/elasticsearch/{data,logs} chown -R elastic:elastic /opt/elasticsearch ``` ### 二、安装包分发 ```bash # 在三服务器执行相同操作(假设安装包已上传至/opt) tar -zxvf elasticsearch-6.8.23.tar.gz -C /opt/ mv /opt/elasticsearch-6.8.23 /opt/elasticsearch ``` ### 三、配置文件修改 修改`/opt/elasticsearch/config/elasticsearch.yml`: ```yaml # 公共配置(三服务器相同) cluster.name: my-es-cluster path.data: /opt/elasticsearch/data path.logs: /opt/elasticsearch/logs network.host: [_local_, _site_] http.port: 9200 discovery.zen.ping.unicast.hosts: ["10.0.0.1", "10.0.0.2", "10.0.0.3"] discovery.zen.minimum_master_nodes: 2 # 节点特有配置(按服务器修改) node.name: node-1 # 分别修改为node-1/node-2/node-3 node.master: true node.data: true ``` ### 四、系统参数配置 1. **内存映射限制** ```bash echo "vm.max_map_count=262144" >> /etc/sysctl.conf sysctl -p ``` 2. **文件描述符限制** ```bash echo "elastic - nofile 65535" >> /etc/security/limits.conf echo "elastic - memlock unlimited" >> /etc/security/limits.conf ``` ### 五、服务启动 ```bash su - elastic cd /opt/elasticsearch # 后启动命令(三服务器分别执行) ./bin/elasticsearch -d # 验证节点状态 curl -XGET 'http://localhost:9200/_cat/nodes?v' ``` ### 六、集群验证 执行以下命令应显示3个节点: ```bash curl http://10.0.0.1:9200/_cluster/health?pretty ``` 预期输出包含: ```json { "cluster_name" : "my-es-cluster", "status" : "green", "number_of_nodes" : 3, ... } ``` ### 七、安全配置(可选) ```bash # 禁用swap sudo swapoff -a echo "vm.swappiness=1" >> /etc/sysctl.conf # 防火墙配置 firewall-cmd --permanent --add-port=9200/tcp firewall-cmd --permanent --add-port=9300/tcp firewall-cmd --reload ``` [^1]: 引用[1] [^2]: 引用[2] [^3]: 引用[3] [^4]: 引用[4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值