elasticsearch org.elasticsearch.action.UnavailableShardsException
我面临着类似的问题 我有一个配置为的主节点:elasticsearch org.elasticsearch.action.UnavailableShardsException,elasticsearch,elasticsearch,我面临着类似的问题 我有一个配置为的主节点: cluster.name: geocoding node.name: "node1" node.master: true node.data: false index.number_of_shards: 5 index.number_of_replicas: 0 discovery.zen.ping.multicast.enabled: false discovery.zen.ping.unicast.hosts: ["localhost"] cl
cluster.name: geocoding
node.name: "node1"
node.master: true
node.data: false
index.number_of_shards: 5
index.number_of_replicas: 0
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["localhost"]
cluster.name: geocoding
node.name: "node2"
node.master: false
node.data: true
index.number_of_shards: 5
index.number_of_replicas: 0
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["localhost"]
以及具有以下配置的数据节点:
cluster.name: geocoding
node.name: "node1"
node.master: true
node.data: false
index.number_of_shards: 5
index.number_of_replicas: 0
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["localhost"]
cluster.name: geocoding
node.name: "node2"
node.master: false
node.data: true
index.number_of_shards: 5
index.number_of_replicas: 0
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["localhost"]
启动了主节点和数据节点,分别在9200和9201上运行
当我连接madeindex(使用以下来源)时,我遇到了err(org.elasticsearch.action.unavailableshardexception)
源代码:
ImmutableSettings.Builder builder = ImmutableSettings.settingsBuilder();
builder.put("node.client", true);
builder.put("node.data", false);
builder.put("node.name", "node3");
builder.put("cluster.name", "geocoding");
builder.put("discovery.zen.ping.multicast.enabled", "false");
builder.put("discovery.zen.ping.unicast.hosts", "localhost");
builder.build();
Node node = NodeBuilder.nodeBuilder().settings(builder).node();
client = node.client();
print(client.admin().cluster().prepareHealth().setWaitForGreenStatus().execute().actionGet());
它打印:
{
"cluster_name" : "geocoding",
"status" : "red",
"timed_out" : true,
"number_of_nodes" : 3,
"number_of_data_nodes" : 1,
"active_primary_shards" : 4,
"active_shards" : 4,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 16
}
有什么建议吗
编辑:
@安德烈斯特凡:
curl-XGET localhost:9200/_cat/shards?v
index shard prirep state docs store ip node
india 2 p UNASSIGNED
india 2 r UNASSIGNED
india 0 p UNASSIGNED
india 0 r UNASSIGNED
india 3 p UNASSIGNED
india 3 r UNASSIGNED
india 1 p UNASSIGNED
india 1 r UNASSIGNED
india 4 p UNASSIGNED
india 4 r UNASSIGNED
mytest 4 p UNASSIGNED
mytest 4 r UNASSIGNED
mytest 0 p STARTED 0 115b <my ip> node2
mytest 0 r UNASSIGNED
mytest 3 p STARTED 1 2.6kb <my ip> node2
mytest 3 r UNASSIGNED
mytest 1 p STARTED 0 115b <my ip> node2
mytest 1 r UNASSIGNED
mytest 2 p STARTED 0 115b <my ip> node2
mytest 2 r UNASSIGNED
index shard prirep state docs存储ip节点
印度2便士未分配
印度2 r未分配
印度0 p未分配
印度0 r未分配
印度3便士未分配
印度3 r未分配
印度1便士未分配
印度1 r未分配
印度4便士未分配
印度4R未分配
mytest 4 p未分配
mytest 4 r未分配
mytest 0 p已启动0 115b节点2
mytest 0未分配
mytest 3p启动了12.6kb节点2
mytest 3 r未分配
mytest 1 p启动了0 115b节点2
mytest 1 r未分配
mytest 2 p启动了0 115b节点2
mytest 2 r未分配
例外情况详情:
org.elasticsearch.action.unavailableshardexception:[印度][4]主分片未处于活动状态或未分配给已知节点。超时:[1m],请求:索引{[x][y][1],源[{“消息”:“a”,}]}
编辑:
完整资料来源:
HashMap<String, String> documentMap = new HashMap();
String id = "1";
String indexName = "india";
String indexType = "address";
ImmutableSettings.Builder builder = ImmutableSettings.settingsBuilder();
builder.put("node.client", true);
builder.put("node.data", false);
builder.put("node.name", "node3");
builder.put("cluster.name", "geocoding");
builder.put("discovery.zen.ping.multicast.enabled", "false");
builder.put("discovery.zen.ping.unicast.hosts", "localhost");
builder.build();
Node node = NodeBuilder.nodeBuilder().settings(builder).node();
Client client = node.client();
XContentBuilder contentBuilder = XContentFactory.jsonBuilder().startObject();
Iterator<String> keys = documentMap.keySet().iterator();
while (keys.hasNext()) {
String key = keys.next();
contentBuilder.field(key, documentMap.get(key));
}
contentBuilder.endObject();
IndexResponse response = client.prepareIndex(indexName, indexType, id).setSource(contentBuilder).execute().actionGet();
HashMap documentMap=newhashmap();
字符串id=“1”;
字符串indexName=“印度”;
字符串indexType=“地址”;
ImmutableSettings.Builder=ImmutableSettings.settingsBuilder();
builder.put(“node.client”,true);
builder.put(“node.data”,false);
builder.put(“node.name”、“node3”);
builder.put(“cluster.name”、“地理编码”);
builder.put(“discovery.zen.ping.multicast.enabled”,“false”);
builder.put(“discovery.zen.ping.unicast.hosts”、“localhost”);
builder.build();
Node Node=NodeBuilder.NodeBuilder().settings(builder.Node();
Client=node.Client();
XContentBuilder contentBuilder=XContentFactory.jsonBuilder().startObject();
迭代器键=documentMap.keySet().Iterator();
while(keys.hasNext()){
String key=keys.next();
字段(键,documentMap.get(键));
}
contentBuilder.endObject();
IndexResponse-response=client.prepareIndex(indexName,indexType,id).setSource(contentBuilder.execute().actionGet();
如果你运行GET/\u cat/shards?v
你得到了什么?@Andrei Stefan:我在执行GET/\u cat/shards时没有发现任何东西?你是什么意思?它应该列出所有节点的碎片。你是如何执行那个命令的。使用curl
/marvel
执行它。@andrestefan:我在执行时得到了上述结果。您是否禁用了分配?您是否实际移动了文件夹?您是否已从/data
目录中删除文件夹?