当前位置: 首页>>代码示例>>Java>>正文


Java ClusterState类代码示例

本文整理汇总了Java中org.elasticsearch.cluster.ClusterState的典型用法代码示例。如果您正苦于以下问题:Java ClusterState类的具体用法?Java ClusterState怎么用?Java ClusterState使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


ClusterState类属于org.elasticsearch.cluster包,在下文中一共展示了ClusterState类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: assertTribeNodeSuccessfullyCreated

import org.elasticsearch.cluster.ClusterState; //导入依赖的package包/类
private static void assertTribeNodeSuccessfullyCreated(Settings extraSettings) throws Exception {
    //The tribe clients do need it to make sure they can find their corresponding tribes using the proper transport
    Settings settings = Settings.builder().put(NetworkModule.HTTP_ENABLED.getKey(), false).put("node.name", "tribe_node")
            .put("transport.type", MockTcpTransportPlugin.MOCK_TCP_TRANSPORT_NAME).put("discovery.type", "local")
            .put("tribe.t1.transport.type", MockTcpTransportPlugin.MOCK_TCP_TRANSPORT_NAME)
            .put("tribe.t2.transport.type",MockTcpTransportPlugin.MOCK_TCP_TRANSPORT_NAME)
            .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir())
            .put(extraSettings).build();

    try (Node node = new MockNode(settings, Arrays.asList(MockTcpTransportPlugin.class, TestZenDiscovery.TestPlugin.class)).start()) {
        try (Client client = node.client()) {
            assertBusy(() -> {
                ClusterState state = client.admin().cluster().prepareState().clear().setNodes(true).get().getState();
                assertThat(state.getClusterName().value(), equalTo("tribe_node_cluster"));
                assertThat(state.getNodes().getSize(), equalTo(5));
                for (DiscoveryNode discoveryNode : state.getNodes()) {
                    assertThat(discoveryNode.getName(), either(equalTo("tribe1_node")).or(equalTo("tribe2_node"))
                            .or(equalTo("tribe_node")).or(equalTo("tribe_node/t1")).or(equalTo("tribe_node/t2")));
                }
            });
        }
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:24,代码来源:TribeUnitTests.java

示例2: createNonExistentShards

import org.elasticsearch.cluster.ClusterState; //导入依赖的package包/类
private List<ShardStateAction.ShardEntry> createNonExistentShards(ClusterState currentState, String reason) {
    // add shards from a non-existent index
    String nonExistentIndexUUID = "non-existent";
    Index index = new Index("non-existent", nonExistentIndexUUID);
    List<String> nodeIds = new ArrayList<>();
    for (ObjectCursor<String> nodeId : currentState.nodes().getNodes().keys()) {
        nodeIds.add(nodeId.toString());
    }
    List<ShardRouting> nonExistentShards = new ArrayList<>();
    nonExistentShards.add(nonExistentShardRouting(index, nodeIds, true));
    for (int i = 0; i < numberOfReplicas; i++) {
        nonExistentShards.add(nonExistentShardRouting(index, nodeIds, false));
    }

    List<ShardStateAction.ShardEntry> existingShards = createExistingShards(currentState, reason);
    List<ShardStateAction.ShardEntry> shardsWithMismatchedAllocationIds = new ArrayList<>();
    for (ShardStateAction.ShardEntry existingShard : existingShards) {
        shardsWithMismatchedAllocationIds.add(new ShardStateAction.ShardEntry(existingShard.shardId, UUIDs.randomBase64UUID(), 0L, existingShard.message, existingShard.failure));
    }

    List<ShardStateAction.ShardEntry> tasks = new ArrayList<>();
    nonExistentShards.forEach(shard -> tasks.add(new ShardStateAction.ShardEntry(shard.shardId(), shard.allocationId().getId(), 0L, reason, new CorruptIndexException("simulated", nonExistentIndexUUID))));
    tasks.addAll(shardsWithMismatchedAllocationIds);
    return tasks;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:26,代码来源:ShardFailedClusterStateTaskExecutorTests.java

示例3: resolveRequest

import org.elasticsearch.cluster.ClusterState; //导入依赖的package包/类
@Override
protected void resolveRequest(ClusterState state, InternalRequest request) {
    IndexMetaData indexMeta = state.getMetaData().index(request.concreteIndex());
    if (request.request().realtime && // if the realtime flag is set
            request.request().preference() == null && // the preference flag is not already set
            indexMeta != null && // and we have the index
            indexMeta.isIndexUsingShadowReplicas()) { // and the index uses shadow replicas
        // set the preference for the request to use "_primary" automatically
        request.request().preference(Preference.PRIMARY.type());
    }
    // update the routing (request#index here is possibly an alias)
    request.request().routing(state.metaData().resolveIndexRouting(request.request().parent(), request.request().routing(), request.request().index()));
    // Fail fast on the node that received the request.
    if (request.request().routing() == null && state.getMetaData().routingRequired(request.concreteIndex(), request.request().type())) {
        throw new RoutingMissingException(request.concreteIndex(), request.request().type(), request.request().id());
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:18,代码来源:TransportGetAction.java

示例4: testFailToPublishWithLessThanMinMasterNodes

import org.elasticsearch.cluster.ClusterState; //导入依赖的package包/类
public void testFailToPublishWithLessThanMinMasterNodes() throws Exception {
    final int masterNodes = randomIntBetween(1, 10);

    MockNode master = createMockNode("master");
    DiscoveryNodes.Builder discoveryNodesBuilder = DiscoveryNodes.builder().add(master.discoveryNode);
    for (int i = 1; i < masterNodes; i++) {
        discoveryNodesBuilder.add(createMockNode("node" + i).discoveryNode);
    }
    final int dataNodes = randomIntBetween(0, 5);
    final Settings dataSettings = Settings.builder().put(Node.NODE_MASTER_SETTING.getKey(), false).build();
    for (int i = 0; i < dataNodes; i++) {
        discoveryNodesBuilder.add(createMockNode("data_" + i, dataSettings, null).discoveryNode);
    }
    discoveryNodesBuilder.localNodeId(master.discoveryNode.getId()).masterNodeId(master.discoveryNode.getId());
    DiscoveryNodes discoveryNodes = discoveryNodesBuilder.build();
    MetaData metaData = MetaData.EMPTY_META_DATA;
    ClusterState clusterState = ClusterState.builder(CLUSTER_NAME).metaData(metaData).nodes(discoveryNodes).build();
    ClusterState previousState = master.clusterState;
    try {
        publishState(master.action, clusterState, previousState, masterNodes + randomIntBetween(1, 5));
        fail("cluster state publishing didn't fail despite of not having enough nodes");
    } catch (Discovery.FailedToCommitClusterStateException expected) {
        logger.debug("failed to publish as expected", expected);
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:26,代码来源:PublishClusterStateActionTests.java

示例5: getRelevantIndicesOnDataOnlyNode

import org.elasticsearch.cluster.ClusterState; //导入依赖的package包/类
public static Set<String> getRelevantIndicesOnDataOnlyNode(ClusterState state, ClusterState previousState, ImmutableSet<String> previouslyWrittenIndices) {
    RoutingNode newRoutingNode = state.getRoutingNodes().node(state.nodes().localNodeId());
    if (newRoutingNode == null) {
        throw new IllegalStateException("cluster state does not contain this node - cannot write index meta state");
    }
    Set<String> indices = new HashSet<>();
    for (ShardRouting routing : newRoutingNode) {
        indices.add(routing.index());
    }
    // we have to check the meta data also: closed indices will not appear in the routing table, but we must still write the state if we have it written on disk previously
    for (IndexMetaData indexMetaData : state.metaData()) {
        boolean isOrWasClosed = indexMetaData.getState().equals(IndexMetaData.State.CLOSE);
        // if the index is open we might still have to write the state if it just transitioned from closed to open
        // so we have to check for that as well.
        IndexMetaData previousMetaData = previousState.metaData().getIndices().get(indexMetaData.getIndex());
        if (previousMetaData != null) {
            isOrWasClosed = isOrWasClosed || previousMetaData.getState().equals(IndexMetaData.State.CLOSE);
        }
        if (previouslyWrittenIndices.contains(indexMetaData.getIndex()) && isOrWasClosed) {
            indices.add(indexMetaData.getIndex());
        }
    }
    return indices;
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:25,代码来源:GatewayMetaState.java

示例6: sendFullClusterState

import org.elasticsearch.cluster.ClusterState; //导入依赖的package包/类
private void sendFullClusterState(ClusterState clusterState, @Nullable Map<Version, BytesReference> serializedStates,
                                  DiscoveryNode node, AtomicBoolean timedOutWaitingForNodes, TimeValue publishTimeout,
                                  BlockingClusterStatePublishResponseHandler publishResponseHandler) {
    BytesReference bytes = null;
    if (serializedStates != null) {
        bytes = serializedStates.get(node.version());
    }
    if (bytes == null) {
        try {
            bytes = serializeFullClusterState(clusterState, node.version());
            if (serializedStates != null) {
                serializedStates.put(node.version(), bytes);
            }
        } catch (Throwable e) {
            logger.warn("failed to serialize cluster_state before publishing it to node {}", e, node);
            publishResponseHandler.onFailure(node, e);
            return;
        }
    }
    publishClusterStateToNode(clusterState, bytes, node, timedOutWaitingForNodes, publishTimeout, publishResponseHandler, false);
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:22,代码来源:PublishClusterStateAction.java

示例7: testRebalancingNotAllowedDueToCanAllocate

import org.elasticsearch.cluster.ClusterState; //导入依赖的package包/类
public void testRebalancingNotAllowedDueToCanAllocate() {
    AllocationDecider canAllocateDecider = new AllocationDecider(Settings.EMPTY) {
        @Override
        public Decision canAllocate(ShardRouting shardRouting, RoutingNode node, RoutingAllocation allocation) {
            return Decision.NO;
        }
    };
    Tuple<ClusterState, MoveDecision> rebalance = setupStateAndRebalance(canAllocateDecider, Settings.EMPTY, false);
    ClusterState clusterState = rebalance.v1();
    MoveDecision rebalanceDecision = rebalance.v2();
    assertEquals(Type.YES, rebalanceDecision.getClusterRebalanceDecision().type());
    assertEquals(AllocationDecision.NO, rebalanceDecision.getAllocationDecision());
    assertThat(rebalanceDecision.getExplanation(), startsWith(
        "cannot rebalance as no target node exists that can both allocate this shard and improve the cluster balance"));
    assertEquals(clusterState.nodes().getSize() - 1, rebalanceDecision.getNodeDecisions().size());
    assertNull(rebalanceDecision.getTargetNode());
    int prevRanking = 0;
    for (NodeAllocationResult result : rebalanceDecision.getNodeDecisions()) {
        assertThat(result.getWeightRanking(), greaterThanOrEqualTo(prevRanking));
        prevRanking = result.getWeightRanking();
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:23,代码来源:BalancedSingleShardTests.java

示例8: testRolloverDryRun

import org.elasticsearch.cluster.ClusterState; //导入依赖的package包/类
public void testRolloverDryRun() throws Exception {
    assertAcked(prepareCreate("test_index-1").addAlias(new Alias("test_alias")).get());
    index("test_index-1", "type1", "1", "field", "value");
    flush("test_index-1");
    final RolloverResponse response = client().admin().indices().prepareRolloverIndex("test_alias").dryRun(true).get();
    assertThat(response.getOldIndex(), equalTo("test_index-1"));
    assertThat(response.getNewIndex(), equalTo("test_index-000002"));
    assertThat(response.isDryRun(), equalTo(true));
    assertThat(response.isRolledOver(), equalTo(false));
    assertThat(response.getConditionStatus().size(), equalTo(0));
    final ClusterState state = client().admin().cluster().prepareState().get().getState();
    final IndexMetaData oldIndex = state.metaData().index("test_index-1");
    assertTrue(oldIndex.getAliases().containsKey("test_alias"));
    final IndexMetaData newIndex = state.metaData().index("test_index-000002");
    assertNull(newIndex);
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:17,代码来源:RolloverIT.java

示例9: stabilize

import org.elasticsearch.cluster.ClusterState; //导入依赖的package包/类
private ClusterState stabilize(ClusterState clusterState, AllocationService service) {
    logger.trace("RoutingNodes: {}", clusterState.getRoutingNodes());

    clusterState = service.deassociateDeadNodes(clusterState, true, "reroute");
    RoutingNodes routingNodes = clusterState.getRoutingNodes();
    assertRecoveryNodeVersions(routingNodes);

    logger.info("complete rebalancing");
    boolean changed;
    do {
        logger.trace("RoutingNodes: {}", clusterState.getRoutingNodes());
        ClusterState newState = service.applyStartedShards(clusterState, routingNodes.shardsWithState(INITIALIZING));
        changed = newState.equals(clusterState) == false;
        clusterState = newState;
        routingNodes = clusterState.getRoutingNodes();
        assertRecoveryNodeVersions(routingNodes);
    } while (changed);
    return clusterState;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:20,代码来源:NodeVersionAllocationDeciderTests.java

示例10: Async

import org.elasticsearch.cluster.ClusterState; //导入依赖的package包/类
private Async(ClearScrollRequest request, ActionListener<ClearScrollResponse> listener, ClusterState clusterState) {
    int expectedOps = 0;
    this.nodes = clusterState.nodes();
    if (request.getScrollIds().size() == 1 && "_all".equals(request.getScrollIds().get(0))) {
        expectedOps = nodes.getSize();
    } else {
        for (String parsedScrollId : request.getScrollIds()) {
            ScrollIdForNode[] context = parseScrollId(parsedScrollId).getContext();
            expectedOps += context.length;
            this.contexts.add(context);
        }
    }
    this.listener = listener;
    this.expHolder = new AtomicReference<>();
    this.expectedOps = new CountDown(expectedOps);
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:17,代码来源:TransportClearScrollAction.java

示例11: testAddedReplicaAfterPrimaryOperation

import org.elasticsearch.cluster.ClusterState; //导入依赖的package包/类
public void testAddedReplicaAfterPrimaryOperation() throws Exception {
    final String index = "test";
    final ShardId shardId = new ShardId(index, "_na_", 0);
    final ClusterState initialState = stateWithActivePrimary(index, true, 0);
    final ClusterState stateWithAddedReplicas;
    if (randomBoolean()) {
        stateWithAddedReplicas = state(index, true, ShardRoutingState.STARTED,
            randomBoolean() ? ShardRoutingState.INITIALIZING : ShardRoutingState.STARTED);
    } else {
        stateWithAddedReplicas = state(index, true, ShardRoutingState.RELOCATING);
    }
    testClusterStateChangeAfterPrimaryOperation(shardId, initialState, stateWithAddedReplicas);
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:14,代码来源:ReplicationOperationTests.java

示例12: testUnexpectedDiffPublishing

import org.elasticsearch.cluster.ClusterState; //导入依赖的package包/类
public void testUnexpectedDiffPublishing() throws Exception {
    MockNode nodeA = createMockNode("nodeA", Settings.EMPTY, event -> {
        fail("Shouldn't send cluster state to myself");
    }).setAsMaster();

    MockNode nodeB = createMockNode("nodeB");

    // Initial cluster state with both states - the second node still shouldn't
    // get diff even though it's present in the previous cluster state
    DiscoveryNodes discoveryNodes = DiscoveryNodes.builder(nodeA.nodes()).add(nodeB.discoveryNode).build();
    ClusterState previousClusterState = ClusterState.builder(CLUSTER_NAME).nodes(discoveryNodes).build();
    ClusterState clusterState = ClusterState.builder(previousClusterState).incrementVersion().build();
    publishStateAndWait(nodeA.action, clusterState, previousClusterState);
    assertSameStateFromFull(nodeB.clusterState, clusterState);

    // cluster state update - add block
    previousClusterState = clusterState;
    clusterState = ClusterState.builder(clusterState).blocks(ClusterBlocks.builder()
        .addGlobalBlock(MetaData.CLUSTER_READ_ONLY_BLOCK)).incrementVersion().build();
    publishStateAndWait(nodeA.action, clusterState, previousClusterState);
    assertSameStateFromDiff(nodeB.clusterState, clusterState);
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:23,代码来源:PublishClusterStateActionTests.java

示例13: createClusterState

import org.elasticsearch.cluster.ClusterState; //导入依赖的package包/类
private ClusterState createClusterState(String name, int numShards, int numReplicas, Settings settings) {
    MetaData.Builder metaBuilder = MetaData.builder();
    IndexMetaData indexMetaData = IndexMetaData.builder(name).settings(settings(Version.CURRENT)
        .put(settings))
        .numberOfShards(numShards).numberOfReplicas(numReplicas).build();
    metaBuilder.put(indexMetaData, false);
    MetaData metaData = metaBuilder.build();
    RoutingTable.Builder routingTableBuilder = RoutingTable.builder();
    routingTableBuilder.addAsNew(metaData.index(name));

    RoutingTable routingTable = routingTableBuilder.build();
    ClusterState clusterState = ClusterState.builder(org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING
        .getDefault(Settings.EMPTY))
        .metaData(metaData).routingTable(routingTable).blocks(ClusterBlocks.builder().addBlocks(indexMetaData)).build();
    return clusterState;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:17,代码来源:MetaDataCreateIndexServiceTests.java

示例14: testUpdateSameHostSetting

import org.elasticsearch.cluster.ClusterState; //导入依赖的package包/类
/**
 * Tests that updating the {@link SameShardAllocationDecider#CLUSTER_ROUTING_ALLOCATION_SAME_HOST_SETTING} setting works as expected.
 */
public void testUpdateSameHostSetting() {
    internalCluster().startNodes(2);
    // same same_host to true, since 2 nodes are started on the same host,
    // only primaries should be assigned
    client().admin().cluster().prepareUpdateSettings().setTransientSettings(
        Settings.builder().put(CLUSTER_ROUTING_ALLOCATION_SAME_HOST_SETTING.getKey(), true)
    ).get();
    final String indexName = "idx";
    client().admin().indices().prepareCreate(indexName).setSettings(
        Settings.builder().put(IndexMetaData.SETTING_NUMBER_OF_SHARDS, 1)
            .put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, 1)
    ).get();
    ClusterState clusterState = client().admin().cluster().prepareState().get().getState();
    assertFalse("replica should be unassigned",
        clusterState.getRoutingTable().index(indexName).shardsWithState(ShardRoutingState.UNASSIGNED).isEmpty());
    // now, update the same_host setting to allow shards to be allocated to multiple nodes on
    // the same host - the replica should get assigned
    client().admin().cluster().prepareUpdateSettings().setTransientSettings(
        Settings.builder().put(CLUSTER_ROUTING_ALLOCATION_SAME_HOST_SETTING.getKey(), false)
    ).get();
    clusterState = client().admin().cluster().prepareState().get().getState();
    assertTrue("all shards should be assigned",
        clusterState.getRoutingTable().index(indexName).shardsWithState(ShardRoutingState.UNASSIGNED).isEmpty());
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:28,代码来源:UpdateShardAllocationSettingsIT.java

示例15: rebalance

import org.elasticsearch.cluster.ClusterState; //导入依赖的package包/类
private ClusterState rebalance(ClusterState clusterState) {
    AllocationService strategy = createAllocationService(Settings.builder()
            .build());
    clusterState = strategy.reroute(clusterState, "reroute");
    int numRelocations = 0;
    while (true) {
        List<ShardRouting> initializing = clusterState.routingTable().shardsWithState(INITIALIZING);
        if (initializing.isEmpty()) {
            break;
        }
        logger.debug("Initializing shards: {}", initializing);
        numRelocations += initializing.size();
        clusterState = strategy.applyStartedShards(clusterState, initializing);
    }
    logger.debug("--> num relocations to get balance: {}", numRelocations);
    return clusterState;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:18,代码来源:CatAllocationTestCase.java


注:本文中的org.elasticsearch.cluster.ClusterState类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。