引言
实时搜索引擎Elasticsearch(简称ES)是一个基于Apache Lucene™的开源搜索引擎,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好,这里分享Elasticsearch入门在单机下如何配置多节点集群。实时搜索引擎Elasticsearch(简称ES)是一个基于Apache Lucene™的开源搜索引擎,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好,这里分享Elasticsearch入门在单机下如何配置多节点集群。
Elasticsearch基础
- 定义Elasticsearch及其与Apache Lucene的关系。
- 强调Elasticsearch的开源特性和高性能。
下载Elasticsearch
- 提供官方下载链接:
https://www.elastic.co/cn/downloads/elasticsearch/
环境准备
- 解压的Elasticsearch目录复制出三份,以配置不同的节点
命名大致如下:
接下来会对这3个Elasticsearch目录,分别配置 config/elasticsearch.yml 文件,
其中 elasticsearch_0目录作为主节点运行,另外两个作为子节点运行。
配置Elasticsearch节点(供参考)
- elasticsearch_0/elasticsearch.yml
cluster.name: es-study
node.name: node-0
node.master: true
node.attr.rack: r1
network.host: 127.0.0.1
http.port: 9200
transport.tcp.port: 9900
discovery.seed_hosts: ["127.0.0.1:9900", "127.0.0.1:9901", "127.0.0.1:9902"]
cluster.initial_master_nodes: ["node-0","node-1","node-2"]
- elasticsearch_1/elasticsearch.yml
cluster.name: es-study
node.name: node-1
node.master: false
node.attr.rack: r1
node.max_local_storage_nodes: 3
bootstrap.memory_lock: false
network.host: 127.0.0.1
http.port: 9201
transport.tcp.port: 9901
discovery.seed_hosts: ["127.0.0.1:9900", "127.0.0.1:9901", "127.0.0.1:9902"]
cluster.initial_master_nodes: ["node-0","node-1","node-2"]
- elasticsearch_2/elasticsearch.yml
cluster.name: es-study
node.name: node-2
node.master: false
node.attr.rack: r1
bootstrap.memory_lock: false
network.host: 127.0.0.1
http.port: 9202
transport.tcp.port: 9902
discovery.seed_hosts: ["127.0.0.1:9900", "127.0.0.1:9901", "127.0.0.1:9902"]
cluster.initial_master_nodes: ["node-0","node-1","node-2"]
启动Elasticsearch节点(按顺序之启动)
- 按顺序列出启动每个节点的命令
elasticsearch_0\bin\elasticsearch.bat
elasticsearch_1\bin\elasticsearch.bat
elasticsearch_2\bin\elasticsearch.bat
- 提供主节点成功启动的截图和说明
主节点启动成功,如下:
故障排查与解决方案
- 启动子节点时可能遇到的错误
启动 elasticsearch_1/elasticsearch.yml 节点的时候失败了,报错如下:
- 解决方案:删除子节点目录下的data文件夹内容
以下两个目录是作为子节点使用,但两个目录下还包含了节点目录,所以把目录下的 data 文件夹里的内容删除即可
elasticsearch_1
elasticsearch_2
重新启动子节点,启动后访问下面url验证下,成功了!
http://localhost:9200/_cluster/health
http://localhost:9200/
http://localhost:9201/
http://localhost:9202/
结语
总结单机多节点集群配置的关键步骤。
强调实践的重要性,并鼓励读者探索Elasticsearch的高级功能。
码克疯v1 | 技术界的疯狂探索者 | 在代码的宇宙中,我是那颗永不满足的探索星。