Java Code Examples for org.apache.helix.HelixAdmin#setConfig()
The following examples show how to use
org.apache.helix.HelixAdmin#setConfig() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: HelixSetupUtils.java From incubator-pinot with Apache License 2.0 | 6 votes |
private static void setupHelixClusterIfNeeded(String helixClusterName, String zkPath) { HelixAdmin admin = new ZKHelixAdmin(zkPath); if (admin.getClusters().contains(helixClusterName)) { LOGGER.info("Helix cluster: {} already exists", helixClusterName); } else { LOGGER.info("Creating a new Helix cluster: {}", helixClusterName); admin.addCluster(helixClusterName, false); // Enable Auto-Join for the cluster HelixConfigScope configScope = new HelixConfigScopeBuilder(ConfigScopeProperty.CLUSTER).forCluster(helixClusterName).build(); Map<String, String> configMap = new HashMap<>(); configMap.put(ZKHelixManager.ALLOW_PARTICIPANT_AUTO_JOIN, Boolean.toString(true)); configMap.put(ENABLE_CASE_INSENSITIVE_KEY, Boolean.toString(false)); configMap.put(DEFAULT_HYPERLOGLOG_LOG2M_KEY, Integer.toString(DEFAULT_HYPERLOGLOG_LOG2M)); configMap.put(CommonConstants.Broker.CONFIG_OF_ENABLE_QUERY_LIMIT_OVERRIDE, Boolean.toString(false)); admin.setConfig(configScope, configMap); LOGGER.info("New Helix cluster: {} created", helixClusterName); } }
Example 2
Source File: ControllerTest.java From incubator-pinot with Apache License 2.0 | 6 votes |
protected void addFakeServerInstanceToAutoJoinHelixCluster(String instanceId, boolean isSingleTenant, int adminPort) throws Exception { HelixManager helixManager = HelixManagerFactory .getZKHelixManager(getHelixClusterName(), instanceId, InstanceType.PARTICIPANT, ZkStarter.DEFAULT_ZK_STR); helixManager.getStateMachineEngine() .registerStateModelFactory(FakeSegmentOnlineOfflineStateModelFactory.STATE_MODEL_DEF, FakeSegmentOnlineOfflineStateModelFactory.FACTORY_INSTANCE); helixManager.connect(); HelixAdmin helixAdmin = helixManager.getClusterManagmentTool(); if (isSingleTenant) { helixAdmin.addInstanceTag(getHelixClusterName(), instanceId, TagNameUtils.getOfflineTagForTenant(null)); helixAdmin.addInstanceTag(getHelixClusterName(), instanceId, TagNameUtils.getRealtimeTagForTenant(null)); } else { helixAdmin.addInstanceTag(getHelixClusterName(), instanceId, UNTAGGED_SERVER_INSTANCE); } HelixConfigScope configScope = new HelixConfigScopeBuilder(HelixConfigScope.ConfigScopeProperty.PARTICIPANT, getHelixClusterName()) .forParticipant(instanceId).build(); helixAdmin.setConfig(configScope, Collections.singletonMap(ADMIN_PORT_KEY, Integer.toString(adminPort))); _fakeInstanceHelixManagers.add(helixManager); }
Example 3
Source File: HelixVcrPopulateTool.java From ambry with Apache License 2.0 | 6 votes |
/** * Create a helix cluster with given information. * @param destZkString the cluster's zk string * @param destClusterName the cluster's name */ static void createCluster(String destZkString, String destClusterName) { HelixZkClient destZkClient = getHelixZkClient(destZkString); HelixAdmin destAdmin = new ZKHelixAdmin(destZkClient); if (ZKUtil.isClusterSetup(destClusterName, destZkClient)) { errorAndExit("Failed to create cluster because " + destClusterName + " already exist."); } ClusterSetup clusterSetup = new ClusterSetup.Builder().setZkAddress(destZkString).build(); clusterSetup.addCluster(destClusterName, true); // set ALLOW_PARTICIPANT_AUTO_JOIN HelixConfigScope configScope = new HelixConfigScopeBuilder(HelixConfigScope.ConfigScopeProperty.CLUSTER). forCluster(destClusterName).build(); Map<String, String> helixClusterProperties = new HashMap<>(); helixClusterProperties.put(ZKHelixManager.ALLOW_PARTICIPANT_AUTO_JOIN, String.valueOf(true)); destAdmin.setConfig(configScope, helixClusterProperties); setClusterConfig(destZkClient, destClusterName, false); System.out.println("Cluster " + destClusterName + " is created successfully!"); }
Example 4
Source File: HelixSetupUtils.java From uReplicator with Apache License 2.0 | 5 votes |
public static void createHelixClusterIfNeeded(String helixClusterName, String zkPath) { final HelixAdmin admin = new ZKHelixAdmin(zkPath); if (admin.getClusters().contains(helixClusterName)) { LOGGER.info("cluster already exist, skipping it.. ********************************************* "); return; } LOGGER.info("Creating a new cluster, as the helix cluster : " + helixClusterName + " was not found ********************************************* "); admin.addCluster(helixClusterName, false); LOGGER.info("Enable mirror maker machines auto join."); final HelixConfigScope scope = new HelixConfigScopeBuilder(ConfigScopeProperty.CLUSTER) .forCluster(helixClusterName).build(); final Map<String, String> props = new HashMap<String, String>(); props.put(ZKHelixManager.ALLOW_PARTICIPANT_AUTO_JOIN, String.valueOf(true)); props.put(MessageType.STATE_TRANSITION + "." + HelixTaskExecutor.MAX_THREADS, String.valueOf(100)); admin.setConfig(scope, props); LOGGER.info("Adding state model definition named : OnlineOffline generated using : " + OnlineOfflineStateModel.class.toString() + " ********************************************** "); // add state model definition admin.addStateModelDef(helixClusterName, "OnlineOffline", OnlineOfflineStateModel.build()); LOGGER.info("New Cluster setup completed... ********************************************** "); }
Example 5
Source File: TestZkHelixAdmin.java From helix with Apache License 2.0 | 5 votes |
@Test public void testDropResource() { String className = TestHelper.getTestClassName(); String methodName = TestHelper.getTestMethodName(); String clusterName = className + "_" + methodName; System.out.println("START " + clusterName + " at " + new Date(System.currentTimeMillis())); HelixAdmin tool = new ZKHelixAdmin(_gZkClient); tool.addCluster(clusterName, true); Assert.assertTrue(ZKUtil.isClusterSetup(clusterName, _gZkClient), "Cluster should be setup"); tool.addStateModelDef(clusterName, "MasterSlave", new StateModelDefinition(StateModelConfigGenerator.generateConfigForMasterSlave())); tool.addResource(clusterName, "test-db", 4, "MasterSlave"); Map<String, String> resourceConfig = new HashMap<>(); resourceConfig.put("key1", "value1"); tool.setConfig(new HelixConfigScopeBuilder(ConfigScopeProperty.RESOURCE).forCluster(clusterName) .forResource("test-db").build(), resourceConfig); PropertyKey.Builder keyBuilder = new PropertyKey.Builder(clusterName); Assert.assertTrue(_gZkClient.exists(keyBuilder.idealStates("test-db").getPath()), "test-db ideal-state should exist"); Assert.assertTrue(_gZkClient.exists(keyBuilder.resourceConfig("test-db").getPath()), "test-db resource config should exist"); tool.dropResource(clusterName, "test-db"); Assert.assertFalse(_gZkClient.exists(keyBuilder.idealStates("test-db").getPath()), "test-db ideal-state should be dropped"); Assert.assertFalse(_gZkClient.exists(keyBuilder.resourceConfig("test-db").getPath()), "test-db resource config should be dropped"); tool.dropCluster(clusterName); System.out.println("END " + clusterName + " at " + new Date(System.currentTimeMillis())); }
Example 6
Source File: VcrTestUtil.java From ambry with Apache License 2.0 | 5 votes |
/** * Populate info on ZooKeeper server and start {@link HelixControllerManager}. * @param zkConnectString zk connect string to zk server. * @param vcrClusterName the vcr cluster name. * @param clusterMap the {@link ClusterMap} to use. * @return the created {@link HelixControllerManager}. */ public static HelixControllerManager populateZkInfoAndStartController(String zkConnectString, String vcrClusterName, ClusterMap clusterMap) { HelixZkClient zkClient = DedicatedZkClientFactory.getInstance() .buildZkClient(new HelixZkClient.ZkConnectionConfig(zkConnectString), new HelixZkClient.ZkClientConfig()); try { zkClient.setZkSerializer(new ZNRecordSerializer()); ClusterSetup clusterSetup = new ClusterSetup(zkClient); clusterSetup.addCluster(vcrClusterName, true); HelixAdmin admin = new ZKHelixAdmin(zkClient); // set ALLOW_PARTICIPANT_AUTO_JOIN HelixConfigScope configScope = new HelixConfigScopeBuilder(HelixConfigScope.ConfigScopeProperty.CLUSTER). forCluster(vcrClusterName).build(); Map<String, String> helixClusterProperties = new HashMap<>(); helixClusterProperties.put(ZKHelixManager.ALLOW_PARTICIPANT_AUTO_JOIN, String.valueOf(true)); admin.setConfig(configScope, helixClusterProperties); // set PersistBestPossibleAssignment ConfigAccessor configAccessor = new ConfigAccessor(zkClient); ClusterConfig clusterConfig = configAccessor.getClusterConfig(vcrClusterName); clusterConfig.setPersistBestPossibleAssignment(true); configAccessor.setClusterConfig(vcrClusterName, clusterConfig); FullAutoModeISBuilder builder = new FullAutoModeISBuilder(helixResource); builder.setStateModel(LeaderStandbySMD.name); for (PartitionId partitionId : clusterMap.getAllPartitionIds(null)) { builder.add(partitionId.toPathString()); } builder.setRebalanceStrategy(CrushEdRebalanceStrategy.class.getName()); IdealState idealState = builder.build(); admin.addResource(vcrClusterName, helixResource, idealState); admin.rebalance(vcrClusterName, helixResource, 3, "", ""); HelixControllerManager helixControllerManager = new HelixControllerManager(zkConnectString, vcrClusterName); helixControllerManager.syncStart(); return helixControllerManager; } finally { zkClient.close(); } }
Example 7
Source File: TestInvalidResourceRebalance.java From helix with Apache License 2.0 | 4 votes |
/** * Ensure that the Helix controller doesn't attempt to rebalance resources with invalid ideal * states */ @Test public void testResourceRebalanceSkipped() throws Exception { final int NUM_PARTICIPANTS = 2; final int NUM_PARTITIONS = 4; final int NUM_REPLICAS = 2; final String RESOURCE_NAME = "TestDB0"; String className = TestHelper.getTestClassName(); String methodName = TestHelper.getTestMethodName(); String clusterName = className + "_" + methodName; System.out.println("START " + clusterName + " at " + new Date(System.currentTimeMillis())); // Set up cluster TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port "localhost", // participant name prefix "TestDB", // resource name prefix 1, // resources NUM_PARTITIONS, // partitions per resource NUM_PARTICIPANTS, // number of nodes NUM_REPLICAS, // replicas "MasterSlave", RebalanceMode.SEMI_AUTO, // use SEMI_AUTO mode true); // do rebalance // start controller ClusterControllerManager controller = new ClusterControllerManager(ZK_ADDR, clusterName, "controller"); controller.syncStart(); // add the ideal state spec (prevents non-CUSTOMIZED MasterSlave ideal states) HelixAdmin helixAdmin = controller.getClusterManagmentTool(); Map<String, String> properties = Maps.newHashMap(); properties.put("IdealStateRule!sampleRuleName", "IDEAL_STATE_MODE=CUSTOMIZED,STATE_MODEL_DEF_REF=MasterSlave"); helixAdmin.setConfig( new HelixConfigScopeBuilder(ConfigScopeProperty.CLUSTER).forCluster(clusterName).build(), properties); // start participants MockParticipantManager[] participants = new MockParticipantManager[NUM_PARTICIPANTS]; for (int i = 0; i < NUM_PARTICIPANTS; i++) { final String instanceName = "localhost_" + (12918 + i); participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName); participants[i].syncStart(); } Thread.sleep(1000); boolean result = ClusterStateVerifier.verifyByZkCallback(new EmptyZkVerifier(clusterName, RESOURCE_NAME)); Assert.assertTrue(result, "External view and current state must be empty"); // cleanup for (int i = 0; i < NUM_PARTICIPANTS; i++) { participants[i].syncStop(); } controller.syncStop(); TestHelper.dropCluster(clusterName, _gZkClient); }
Example 8
Source File: TestZkClusterManager.java From helix with Apache License 2.0 | 4 votes |
@Test() public void testAdministrator() throws Exception { System.out.println("START " + className + ".testAdministrator() at " + new Date(System.currentTimeMillis())); final String clusterName = CLUSTER_PREFIX + "_" + className + "_admin"; // basic test if (_gZkClient.exists("/" + clusterName)) { _gZkClient.deleteRecursively("/" + clusterName); } ZKHelixManager admin = new ZKHelixManager(clusterName, null, InstanceType.ADMINISTRATOR, ZK_ADDR); TestHelper.setupEmptyCluster(_gZkClient, clusterName); admin.connect(); AssertJUnit.assertTrue(admin.isConnected()); HelixAdmin adminTool = admin.getClusterManagmentTool(); HelixConfigScope scope = new HelixConfigScopeBuilder(ConfigScopeProperty.PARTITION).forCluster(clusterName) .forResource("testResource").forPartition("testPartition").build(); Map<String, String> properties = new HashMap<String, String>(); properties.put("pKey1", "pValue1"); properties.put("pKey2", "pValue2"); adminTool.setConfig(scope, properties); properties = adminTool.getConfig(scope, Arrays.asList("pKey1", "pKey2")); Assert.assertEquals(properties.size(), 2); Assert.assertEquals(properties.get("pKey1"), "pValue1"); Assert.assertEquals(properties.get("pKey2"), "pValue2"); admin.disconnect(); AssertJUnit.assertFalse(admin.isConnected()); deleteCluster(clusterName); System.out.println("END " + className + ".testAdministrator() at " + new Date(System.currentTimeMillis())); }
Example 9
Source File: HelixHelper.java From incubator-pinot with Apache License 2.0 | 4 votes |
public static void updateResourceConfigsFor(Map<String, String> newConfigs, String resourceName, String clusterName, HelixAdmin admin) { final HelixConfigScope scope = getResourceScopeFor(clusterName, resourceName); admin.setConfig(scope, newConfigs); }