企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
这里将搭建拥有3个节点的集群。 <br/> 步骤如下: **1. 准备好三台Linux机器,其中一台已完成【Linux单机安装】** 我这里已经准备好三台Linux机器,其中hadoop101已经完成【Linux单机安装】。 ![](https://img.kancloud.cn/a4/60/a46086e867f2dbf1cd557fe802f57f2e_1506x377.png) **2. 在每个节点上配置hostname和域名映射** ```shell --节点1 # vim /etc/hostname hadoop101 --节点2 # vim /etc/hostname hadoop102 --节点3 # vim /etc/hostname hadoop103 --3个节点都做如下域名映射 # vim /etc/hosts 192.168.1.18 hadoop101 192.168.1.19 hadoop102 192.168.1.20 hadoop103 --3个节点都执行下面命名重启网络 # service network restart ``` **2. 将hadoop101安装好的es环境分发到其他机器上** ```shell # scp -r /opt/install/es/ root@hadoop102:/opt/install/ # scp /etc/security/limits.conf root@hadoop102:/etc/security/limits.conf # scp /etc/security/limits.d/20-nproc.conf root@hadoop102:/etc/security/limits.d/20-nproc.conf # scp /etc/sysctl.conf root@hadoop102:/etc/sysctl.conf # scp -r /opt/install/es/ root@hadoop103:/opt/install/ # scp /etc/security/limits.conf root@hadoop103:/etc/security/limits.conf # scp /etc/security/limits.d/20-nproc.conf root@hadoop103:/etc/security/limits.d/20-nproc.conf # scp /etc/sysctl.conf root@hadoop103:/etc/sysctl.conf ``` **3. 在每个节点上都创建一个非root用户** 因为安全性问题,Elasticsearch不允许在root用户下运行,需要创建一个非root用户。 ```shell --新增es用户 # useradd es --为es用户设置密码 # passwd es --将es文件夹所有者设置为es用户 # chown -R es:es /opt/install/es/ ``` **4. 修改每个节点的`${ES}/config/elasticsearch.yml`配置文件** ```shell -------------下面的配置每个节点不能相同------------- --当前节点的ip network.host: hadoop101 --当前节点的名称,我定义hadoop101节点为node-1、hadoop102节点为node-2、hadoop103节点为node-3 node.name: node-1 -------------下面的配置每个节点都相同------------- --集群名称 cluster.name: es-cluster --是否给予选择主节点的权利 node.master: true node.data: true --head 插件需要这打开这两个配置 http.cors.allow-origin: "*" http.cors.enabled: true http.max_content_length: 200mb --es数据存储位置 path.data: /opt/install/es/data --日志存储位置 path.logs: /opt/install/es/logs http.port: 9200 --es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 master cluster.initial_master_nodes: ["node-1"] --es7.x 之后新增的配置,节点发现 discovery.seed_hosts: ["hadoop101:9300","hadoop102:9300","hadoop103:9300"] gateway.recover_after_nodes: 2 network.tcp.keep_alive: true network.tcp.no_delay: true transport.tcp.compress: true --集群内同时启动的数据任务个数,默认是 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 ``` **5. 删除每个节点 %ES_HOME%/data/ 目录下的所有文件** ```shell # rm -rf data/* ``` **6. 测试集群是否搭建成功** ```shell --分别启动3个节点的es # su es $ bin/elasticsearch ``` 访问 http://192.168.1.18:9200/_cat/nodes ,看到如下3个节点信息则集群搭建成功! ![](https://img.kancloud.cn/ac/1e/ac1e30801bf8e56d01ed94d9bc514df7_1423x229.png)