我正在尝试在单个主机上设置elasticsearch。以下是我的配置:
elasticsearch.yml
node.name: ${HOSTNAME}
network.host: _site_, _local_
http.port: 9200
transport.tcp.port: 9300
cluster.name: "test_cluster"
node.local: true
kibana.yml
server.host: 0.0.0.0
elasticsearch.url: http://localhost:9200
按照以下命令:
curl -XGET 'localhost:9200/_cluster/health?pretty'
我收到以下消息:
{
"error" : {
"root_cause" : [
{
"type" : "master_not_discovered_exception",
"reason" : null
}
],
"type" : "master_not_discovered_exception",
"reason" : null
},
"status" : 503
}
在日志文件中,我看到以下消息:
not enough master nodes discovered during pinging (found [[]], but needed [-1]), pinging again
有人可以指点我正确的方向吗?
答案 0 :(得分:13)
我基本上花了几天时间(叹息)。我试图将单节点群集从6.x es升级到7.x,但我一直死于“ master_not_discovered_exception”的顶峰。
最终为我解决的是检查全新安装的7.x。
对于我的单节点集群,我的 /etc/elasticsearch/elasticsearch.yml 需要以下行:
discovery.type: single-node
我希望这样可以避免别人像我一样花几天的时间。为防御起见,我是es的新手。
答案 1 :(得分:0)
首先,我认为你不需要设置<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mycompany.myapp" >
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:resizeableActivity = "true">
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
。
在您的日志中,它正在尝试获取主数据,但结果为0
您可以尝试设置以下属性:
network.host
如果它不起作用,你也可以把更多的日志放在这里
答案 2 :(得分:0)
您可以在elasticsearch.yml
:
discovery.zen.minimum_master_nodes: 1
我认为ES
始终会找到discovery.zen.ping.unicast.hosts
发现nodes
的{{1}}等于count
。
答案 3 :(得分:0)
根据此link,您应该第一次在initial_master_nodes
中设置/etc/elasticsearch/elasticsearch.yml
的配置,
node.name: "salehnode"
cluster.initial_master_nodes:
- salehnode
答案 4 :(得分:0)
就我而言,在安装ES 7+之后,我不得不将node-1设置为新集群中的主节点。
sudo nano /etc/elasticsearch/elasticsearch.yml
cluster.initial_master_nodes: ["node-1"]