我尝试使用以下命令用一台机器和一个集群器(仅在本地主机上 - 测试目的)启动每个节点:
sudo /usr/share/elasticsearch/bin/elasticsearch
-Des.node.data=false
-Des.node.master=true
-Des.node.name=NoData --default.path.conf=/etc/elasticsearch/
但是,我什至无法启动一个节点,因为即使在启动第一个节点时我也会不断收到此错误:
> Exception in thread "main" java.lang.RuntimeException: don't run
> elasticsearch as root. at
> org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93)
> at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144)
> at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270) at
> org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
> Refer to the log for complete error details.
如何在一台机器上启动多个 ES 节点?
(ES 是从 ES 的官方 deb repo 安装的)
编辑
我想像下面那样运行它
$ bin/elasticsearch -Des.config=$ES_HOME/config/elasticsearch.1.yml
$ bin/elasticsearch -Des.config=$ES_HOME/config/elasticsearch.2.yml
$ bin/elasticsearch -Des.config=$ES_HOME/config/elasticsearch.testNoData.yml
但有两个问题
最佳答案
如果要启动多个节点进行测试,我强烈建议使用 esvm
tool .
该工具专门设计用于针对在一个或多个节点上运行的不同 ES 版本快速测试您的代码。例如,您可以使用 this configuration file 非常轻松地启动一个 5 节点集群(2 个主节点 + 3 个数据节点)。 :
{
"clusters": {
"2m3d": {
"plugins": ["mobz/elasticsearch-head"],
"nodes": [
{
"cluster": { "name": "2m3d" },
"node": { "name": "master-1", "data": false, "master": true }
},
{
"cluster": { "name": "2m3d" },
"node": { "name": "master-2", "data": false, "master": true }
},
{
"cluster": { "name": "2m3d" },
"node": { "name": "data-1", "data": true, "master": false }
},
{
"cluster": { "name": "2m3d" },
"node": { "name": "data-2", "data": true, "master": false }
},
{
"cluster": { "name": "2m3d" },
"node": { "name": "data-3", "data": true, "master": false }
}
]
}
}
}
上面的集群可以通过运行非常简单地启动
> esvm 2m3d
关于elasticsearch - 如何在一台机器上启动多个 ElasticSearch 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38814876/