一、需要
最近在看 es
相干的常识,此处简略记录一下 es 集群的搭建步骤。因为本地机器无限,此处模仿一下在同一台机器上搭建三个节点的集群。
二、前置条件
1、es
不能应用 root
用户启动,因而须要创立一个用户。
2、本地的多个 es 节点之间不能应用雷同的 data
和log
目录。
3、集群之间的脑裂问题,集群本人保护。
三、搭建步骤
1、下载 es
# 下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-linux-x86_64.tar.gz
# 解压
tar -zxvf elasticsearch-7.12.0-linux-x86_64.tar.gz
# 重命名
mv elasticsearch-7.12.0 es01
# 复制 2 份
cp -r es01/ es02
cp -r es01/ es03
2、创立 es
用户并给 es 目录受权
# 创立 es 用户
useradd es
# 设置 es 用户的明码
passwd es
# 扭转上一步下载的 es01、es02 和 es03 目录的所有者为刚创立的 es 用户
chown -R es es01
chown -R es es02
chown -R es es03
# 创立数据目录和日志目录
mkdir data && mkdir log
cd data
mkdir es01
mkdir es02
mkdir es03
cd log
mkdir es01
mkdir es02
mkdir es03
⚠️ 因为 es 用 root 用户启动会报错,所以此处须要新建一个用户,而后用新建的用户启动 es。
3、批改 es 的配置文件
配置文件 | 属性 | 节点 01 | 节点 02 | 节点 03 | 解释 |
---|---|---|---|---|---|
es0[1,2,3]/config/<br/>elasticsearch.yml | es01 | es02 | es03 | es01、es02、es03 示意同一台机器上的 3 个目录 | |
cluster.name |
es-cluster | es-cluster | es-cluster | 集群的名称,组成集群的集群名称必须统一。 | |
node.name |
es01 | es01 | es01 | 节点名称,集群中的每个节点的名字必须要惟一。 | |
path.data |
/home/es/<br/>es/data/es01 | /home/es/<br/>es/data/es02 | /home/es/<br/>es/data/es03 | 数据目录 | |
path.logs |
/home/es/<br/>es/log/es01 | /home/es/<br/>es/log/es02 | /home/es/<br/>es/log/es03 | 日志目录 | |
network.host |
localhost | localhost | localhost | 监听地址,能够写本地 ip,通过此地址能够拜访到 es | |
http.port |
9200 | 9201 | 9202 | 监听端口 | |
transport.port |
9205 | 9206 | 9207 | 集群之间通信接口,比方集群选举 | |
discovery. <br/>seed_hosts: |
[“localhost:9095”, “localhost:9096”, “localhost:9097”] | [“localhost:9095”, “localhost:9096”, “localhost:9097”] | [“localhost:9095”, “localhost:9096”, “localhost:9097”] | 有资格成为主节点的地址列表 | |
cluster. <br/>initial_master_nodes |
[“es01”, “es02”, “es03”] | [“es01”, “es02”, “es03”] | [“es01”, “es02”, “es03”] | 初始的候选 master 节点列表。必须和 node.name 的值统一。 | |
node.master |
true | true | true | true: 示意能够被选举成为 master 节点. | |
node.data |
true | true | true | true: 示意能够存储数据。 | |
http.cors.enabled |
true | true | true | true: 示意容许跨域。 | |
http.cors.allow-origin |
* | * | * | 示意反对所有域名 | |
es0[1,2,3]/config/<br/>jvm.options | |||||
-Xms512m | -Xms512m | -Xms512m | 依据本人的状况设置,不要超过本机物理内存的一半,最大不要超过 30g | ||
-Xmx512m | -Xmx512m | -Xmx512m | … |
重要的属性:
-
cluster.initial_master_nodes
链接:https://www.elastic.co/guide/en/elasticsearch/reference/7.12/modules-discovery-bootstrap-cluster.html
链接:https://www.elastic.co/guide/en/elasticsearch/reference/7.12/important-settings.html#initial_master_nodes
4、es01 目录下 elasticsearch.yml 的一个残缺的配置
cluster.name: es-cluster
node.name: es01
path.data: /home/es/es/data/es01
path.logs: /home/es/es/log/es01
network.host: localhost
http.port: 9200
transport.port: 9205
discovery.seed_hosts: ["localhost:9205", "localhost:9206", "localhost:9207"]
cluster.initial_master_nodes: ["es01", "es02", "es03"]
node.master: true
node.data: true
http.cors.enabled: true
http.cors.allow-origin: "*"
5、启动 es 集群
#!/bin/bash
# -d 后盾启动 -p 指定 pid 保留在那个文件中 /home/es/es/es01/pid01
/home/es/es/es01/bin/elasticsearch -d -p pid01
/home/es/es/es02/bin/elasticsearch -d -p pid02
/home/es/es/es03/bin/elasticsearch -d -p pid03
6、查看集群是否启动
curl http://localhost:9202/_cat/nodes?v
curl http://localhost:9202/_cat/health?v
四、参考链接
1、https://www.elastic.co/cn/downloads/elasticsearch.
2、https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#discovery-settings
3、https://www.elastic.co/guide/en/elasticsearch/reference/7.12/modules-discovery-bootstrap-cluster.html.
4、https://www.elastic.co/guide/en/elasticsearch/reference/7.12/important-settings.html#initial_master_nodes
5、https://www.elastic.co/guide/en/elasticsearch/reference/7.12/modules-discovery-settings.html
6、https://www.elastic.co/guide/en/elasticsearch/reference/7.12/jvm-options.html