我正在测试Elasticsearch,我试图在一台机器上创建一个包含2个节点的简单集群(在Fedora上)
我启动名为Node1的第一个实例:
sudo bin/elasticsearch -Des.node.name=Node1 -Des.http.port=9200
另一个终端名为Node2的第二个实例:
sudo bin/elasticsearch -Des.node.name=Node2 -Des.http.port=9201
两个命令的控制台输出如下:
log4j:WARN No appenders could be found for logger (node).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
GET http://127.0.0.1:9200
给了我:
{
"status" : 200,
"name" : "Node1",
"version" : {
"number" : "1.1.1",
"build_hash" : "f1585f096d3f3985e73456debdc1a0745f512bbc",
"build_timestamp" : "2014-04-16T14:27:12Z",
"build_snapshot" : false,
"lucene_version" : "4.7"
},
"tagline" : "You Know, for Search"
}
和GET http://127.0.0.1:9201
给了我
{
"status" : 200,
"name" : "Node2",
"version" : {
"number" : "1.1.1",
"build_hash" : "f1585f096d3f3985e73456debdc1a0745f512bbc",
"build_timestamp" : "2014-04-16T14:27:12Z",
"build_snapshot" : false,
"lucene_version" : "4.7"
},
"tagline" : "You Know, for Search"
}
看起来很不错但现在如果我得到群集健康状况,我在9200和9201上会有不同的结果:
获取http://127.0.0.1:9200/_cluster/health?pretty=true
{
"cluster_name" : "elasticsearch",
"status" : "yellow",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 6,
"active_shards" : 6,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 6
}
获取http://127.0.0.1:9201/_cluster/health?pretty=true
{
"cluster_name" : "elasticsearch",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0
}
为什么同一群集上只有一个节点?为什么它是绿色还是黄色?看起来集群不起作用......
如何使其有效? Zen Discovery日志在哪里?
相关问题:
答案 0 :(得分:3)
Elasticsearch节点无法共享同一数据目录。因此,您需要添加其他参数:-Des.data.path=/path/to/data
sudo bin/elasticsearch -Des.node.name=Node1 -Des.http.port=9200
-Des.data.path=/path/to/data1
sudo bin/elasticsearch -Des.node.name=Node2 -Des.http.port=9201
-Des.data.path=/path/to/data2
这对你有用。另请注意,在这种情况下,您无需指定端口号,因为Elasticsearch会自动获取下一个可用的空闲端口,默认情况下从9200开始。
答案 1 :(得分:0)
我遇到了同样的问题。我通过在配置文件elasticsearch.yml中将参数network.host设置为127.0.0.1来修复它。
答案 2 :(得分:0)
就像其他人所说的那样,你有两个独立的集群,每个集群有一个节点。您使用什么类型的发现,单播或多播? http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-discovery-zen.html
对于ZenDiscovery日志,使用额外参数启动elasticsearch实例以获取详细日志记录:
-Dlogger.zen.discovery=TRACE