我尝试使用以下命令启动每个节点一台机器和一个cluser(仅限localhost - 测试目的):
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回购安装)
EDIT 我想像下面那样运行它
$ 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
但有两个问题
答案 0 :(得分:2)
如果您想启动许多节点以进行测试,我强烈建议您使用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
答案 1 :(得分:0)
要在服务器上启动多个ES节点,您必须为每个节点(不同的端口,不同的数据文件夹等)设置不同的配置。这可能涉及一些艰苦的工作,不建议使用,因为不同的ES节点可能仍会发生冲突和失败。
该错误清楚地表明您不应该以root身份运行Elasticsearch,而是使用sudo运行它 - 这使它以root身份运行。
尝试使用命令 - import pandas as pd
pd.DataFrame({'col1':array3,'col2':array1,'col3':array2}).to_csv('c:/temp/out.csv', index=False, header=None, sep='\t')
启动其服务来运行ES。这将以正确的配置启动ES守护程序。