这两道题目非常具有代表性,分别是跨集群复制和跨集群检索,需要相应的 许可 这里在虚拟机上搭建集群完成这两道题目,这里补充一下 elasticsearch 和 kibana 的配置文件
rust
# elasticsearch.yml
cluster.name: cluster2
node.name: cluster2-node
path.data: /home/jie/es8/cluster2/data
path.logs: /home/jie/es8/cluster2/logs
bootstrap.memory_lock: true
network.host: 192.168.78.10
http.port: 9202
transport.port: 9302
discovery.seed_hosts: ["cluster2-node"]
cluster.initial_master_nodes: ["cluster2-node"]
xpack.security.enabled: false
# jvm.options
-Xms1g
-Xmx1g
# kibana.yml
server.port: 5603
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.78.10:9202"]
一、题目
跨集群查询
rust
# 向 cluster_one 写入数据
POST test/_bulk
{"index": {}}
{"cluster_name": "cluster_one"}
# 向 cluster_two写入数据
POST test/_bulk
{"index": {}}
{"cluster_name": "cluster_two"}
1.1 考点
这里需要注意的是节点角色需要有 remote_cluster_client
角色
1.2 答案
rust
# 建立远程连接
PUT _cluster/settings
{
"persistent": {
"cluster": {
"remote": {
"cluster_one": {
"seeds": [
"192.168.78.10:9301"
]
},
"cluster_two": {
"seeds": [
"192.168.78.10:9302"
]
}
}
}
}
}
# 查看远程连接信息
GET _remote/info
# 搜索 cluster_one 和 cluster_two 集群的 test 索引
POST cluster_one:test,cluster_two:test/_search
二、题目
跨集群复制
2.1 考点
- 许可证适用:
Stack Management -> License Management -> Start a 30-day trial
- 跨集群复制
2.2 答案
创建远程连接集群
rust
PUT _cluster/settings
{
"persistent": {
"cluster": {
"remote": {
"cluster_one": {
"seeds": [
"192.168.78.10:9301"
]
},
"cluster_two": {
"seeds": [
"192.168.78.10:9302"
]
}
}
}
}
}
创建主从索引的过程整体是通过 kibana 操作完成的
Stack Management -> Cross-Cluster Replication -> Create a follower index
最后要记得启动