这里将搭建拥有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)
- Elasticsearch是什么
- 全文搜索引擎
- Elasticsearch与Solr
- 数据结构
- 安装Elasticsearch
- Linux单机安装
- Windows单机安装
- 安装Kibana
- Linux安装
- Windows安装
- es基本语句
- 索引操作
- 文档操作
- 映射操作
- 高级查询
- es-JavaAPI
- maven依赖
- 索引操作
- 文档操作
- 高级查询
- es集群搭建
- Linux集群搭建
- Windows集群搭建
- 核心概念
- 索引(Index)
- 类型(Type)
- 文档(Document)
- 字段(Field)
- 映射(Mapping)
- 分片(Shards)
- 副本(Replicas)
- 分配(Allocation)
- 系统架构
- 分布式集群
- 单节点集群
- 故障转移
- 水平扩容
- 应对故障
- 路由计算
- 分片控制
- 写流程
- 读流程
- 更新流程
- 多文档操作流程
- 分片原理
- 倒排索引
- 文档搜索
- 动态更新索引
- 近实时搜索
- 持久化变更
- 段合并
- 文档分析
- 内置分析器
- 分析器使用场景
- 测试分析器
- 指定分析器
- 自定义分析器
- 文档处理
- 文档冲突
- 乐观并发控制
- 外部系统版本控制
- es优化
- 硬件选择
- 分片策略
- 合理设置分片数
- 推迟分片分配
- 路由选择
- 写入速度优化
- 批量数据提交
- 优化存储设备
- 合理使用合并
- 减少Refresh的次数
- 加大Flush设置
- 减少副本的数量
- 内存设置
- 重要配置
- es常见问题
- 为什么要使用Elasticsearch
- master选举流程
- 集群脑裂问题
- 索引文档流程
- 更新和删除文档流程
- 搜索流程
- ES部署在Linux时的优化方法
- GC方面ES需要注意的点
- ES对大数据量的聚合实现
- 并发时保证读写一致性
- 字典树
- ES的倒排索引
- Spring Data Elasticsearch
- 环境搭建
- 索引操作
- 文档操作