这次搭建一个本地集群,保证数据的安全性。
最低要求是3个node,每个node都有自己的配置文件。

配置文件

node-1

在 config 文件夹下创建 node-1 文件夹,将 config 下的 文件 复制一份到 node-1 文件夹下
并且修改配置文件elasticsearch.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 关闭安全认证
xpack.security.enabled: false
# 集群名称
cluster.name: wlf_es
# node.name 为节点名称
node.name: node-1
# http.port 和浏览器通信
http.port: 9200
# transport.port 和其他节点通信
transport.port: 9300
# path.data 数据存储路径
path.data: ./node-1/data
# path.log 日志存储路径
path.logs: ./node-1/logs
# network.host 本机ip
network.host: 127.0.0.1
# discovery.seed_hosts 集群中的节点
discovery.seed_hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
# cluster.initial_master_nodes 初始主节点
cluster.initial_master_nodes: ["node-1", "node-2"]
# node.roles 节点角色
node.roles: ['master','data']
# bootstrap.memory_lock 是否锁定内存
bootstrap.memory_lock: true

node-2

同理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 关闭安全认证
xpack.security.enabled: false
# 集群名称
cluster.name: wlf_es
# node.name
node.name: node-2
# http.port
http.port: 9201
# transport.port
transport.port: 9301
# path.data
path.data: ./node-2/data
# path.log
path.logs: ./node-2/logs
network.host: 127.0.0.1
discovery.seed_hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
cluster.initial_master_nodes: ["node-1", "node-2"]
#角色
node.roles: ['master','data']
bootstrap.memory_lock: true

node-3

同理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 关闭安全认证
xpack.security.enabled: false
# 集群名称
cluster.name: wlf_es
# node.name
node.name: node-2
# http.port
http.port: 9201
# transport.port
transport.port: 9301
# path.data
path.data: ./node-2/data
# path.log
path.logs: ./node-2/logs
network.host: 127.0.0.1
discovery.seed_hosts: ["127.0.0.1:9300", "127.0.0.1:9301", "127.0.0.1:9302"]
cluster.initial_master_nodes: ["node-1", "node-2"]
#角色
node.roles: ['master','data']
bootstrap.memory_lock: true

启动

1
2
3
4
5
6
7
8
9
10
cd elasticsearch-8.12.2
# 启动node-1
export ES_PATH_CONF=/Users/admin/elasticsearch-8.12.2/config/node-1
./bin/elasticsearch
# 启动node-2
export ES_PATH_CONF=/Users/admin/elasticsearch-8.12.2/config/node-2
./bin/elasticsearch
# 启动node-3
export ES_PATH_CONF=/Users/admin/elasticsearch-8.12.2/config/node-3
./bin/elasticsearch

Node角色(Role)说明

  1. master

    • 作用:Master角色授予用户或用户组对Elasticsearch集群中主节点的管理权限。主节点负责管理集群的元数据、协调索引和分片的分配。
    • 权限:可以执行集群级别的操作,例如创建、删除索引,设置集群设置等。
  2. data

    • 作用:Data角色授予用户或用户组对数据节点的访问权限。数据节点负责存储和处理索引数据。
    • 权限:可以执行数据操作,例如索引和搜索数据,但不能执行集群级别的操作。
  3. data_content

    • 作用:Data Content角色是一种更细粒度的数据角色,允许对索引的内容执行更广泛的操作。
    • 权限:与data角色类似,但具有更广泛的索引访问权限,例如对索引进行聚合和分析。
  4. data_hot

    • 作用:Data Hot角色用于定义热节点,这些节点存储最活跃的数据,通常具有更高的性能和资源。
    • 权限:与data角色类似,但通常用于对高频访问的数据进行优化。
  5. data_warm

    • 作用:Data Warm角色用于定义温节点,这些节点存储相对不太活跃的数据,通常在性能和资源上略有降低。
    • 权限:与data角色类似,但通常用于存储访问频率较低的数据。
  6. data_cold

    • 作用:Data Cold角色用于定义冷节点,这些节点存储极少被访问的数据,通常具有较低的性能和资源。
    • 权限:与data角色类似,但通常用于存储长期保留的数据,例如归档数据。
  7. data_frozen

    • 作用:Data Frozen角色用于定义冻结节点,这些节点存储已经被冻结的索引,即索引已经关闭并且不能被修改。
    • 权限:与data角色类似,但通常用于存储不再需要修改的数据。
  8. ingest

    • 作用:Ingest角色用于定义具有Ingest Node角色的节点,这些节点负责在数据写入索引之前进行数据转换和预处理。
    • 权限:允许执行数据预处理管道中定义的转换操作。
  9. ml

    • 作用:ML角色用于定义具有机器学习功能的节点,这些节点负责执行与机器学习相关的操作,例如建模和预测。
    • 权限:允许执行与机器学习相关的操作,例如创建、训练和评估模型。
  10. remote_cluster_client

    • 作用:Remote Cluster Client角色用于定义具有访问远程集群的客户端节点。
    • 权限:允许连接到远程集群并执行相应的操作。
  11. transform

    • 作用:Transform角色用于定义执行数据转换任务的节点,例如聚合、分析和重塑数据。
    • 权限:允许执行数据转换任务,例如使用Transform API定义和执行转换作业。