这两道题目非常具有代表性,分别是跨集群复制和跨集群检索,需要相应的 许可 这里在虚拟机上搭建集群完成这两道题目,这里补充一下 elasticsearch 和 kibana 的配置文件
# 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"]
一、题目
跨集群查询
# 向 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 答案
# 建立远程连接
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 答案
创建远程连接集群
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
最后要记得启动