elasticsearch org.elasticsearch.action.UnavailableShardsException,elasticsearch,elasticsearch" /> elasticsearch org.elasticsearch.action.UnavailableShardsException,elasticsearch,elasticsearch" />

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
目录中删除文件夹?