solrcloud java_SolrCloud之zookeeper中使用java代码创建集合

javaAPI调用solrcloud上传配置和删除/创建集合。网上大多都是通过http路径调用创建,以下是通过Zookeeper+solr进行操作:

?

public class SolrConfig {

static String ZK_HOST="10.8.177.204:2181,10.8.177.210:2181,10.8.177.33:2181,10.8.177.22:2181";

static SolrZkClient zkClient=new SolrZkClient(ZK_HOST,30000);

static ZkConfigManager zkConfigManager=new ZkConfigManager(zkClient);

/**

* 上传配置

* @param configName

* @param configPath

* @throws IOException

*/

public static void uploadConfig(String configName,String configPath)throws IOException{

System.out.println("准备上传配置:"+configName);

zkConfigManager.uploadConfigDir(Paths.get(configPath),configName);

System.out.println("上传配置成功!");

}

/**

* 删除集合

* @param deleteName

* @throws IOException

* @throws SolrServerException

*/

public static void deleteCollection(String deleteName)throws IOException,SolrServerException{

SolrClient solrClient=new CloudSolrClient(ZK_HOST);

CollectionAdminRequest.Delete delete=new CollectionAdminRequest.Delete();

delete.setCollectionName(deleteName);

CollectionAdminResponse response=delete.process(solrClient);

System.out.println(response);

solrClient.close();

}

/**

* 创建集合

* @param collectionName

* @param configName

* @throws IOException

* @throws SolrServerException

*/

public static void createCollection(String collectionName,String configName)throws IOException,SolrServerException{

SolrClient solrClient=new CloudSolrClient(ZK_HOST);

CollectionAdminRequest.Create create=new CollectionAdminRequest.Create();

create.setConfigName(configName);

create.setCollectionName(collectionName);

create.setNumShards(4);//分片

create.setMaxShardsPerNode(4);//每个节点最多持有片

create.setReplicationFactor(2);//复制

CollectionAdminResponse response=create.process(solrClient);

System.out.println(response);

solrClient.close();

}

public static void main(String[] args){

try {

String collectionName="shb1026";

String config="solrAndHbase";

// String configPath = "G:\\config\\solr_conf\\nlp\\";

// uploadConfig(config, configPath);

// deleteCollection(collectionName);

createCollection(collectionName,config);

}catch (Exception e){

e.printStackTrace();

}

}

}

?

?

原文:http://290434409.iteye.com/blog/2252008

好的,我可以为您介绍一下 Java ZooKeeper 的简单使用。 首先,您需要通过 Maven 或 Gradle 将 ZooKeeper 客户端库添加到您的项目。然后,您可以使用以下代码连接到 ZooKeeper 服务器: ```java String connectionString = "localhost:2181"; int sessionTimeout = 5000; Watcher watcher = event -> System.out.println("Event received: " + event); ZooKeeper zk = new ZooKeeper(connectionString, sessionTimeout, watcher); ``` 在这个例子,我们使用本地的 ZooKeeper 服务器,并设置了一个会话超时时间为 5000 毫秒。我们还提供了一个 Watcher 对象来处理来自 ZooKeeper 的事件。 接下来,您可以使用 ZooKeeper API 来执行各种操作,例如创建节点、读取节点数据、设置节点数据等。例如,要创建一个节点,您可以使用以下代码: ```java String path = "/myNode"; byte[] data = "myData".getBytes(); CreateMode createMode = CreateMode.PERSISTENT; zk.create(path, data, ZooDefs.Ids.OPEN_ACL_UNSAFE, createMode); ``` 这将在 ZooKeeper 创建一个名为 "/myNode" 的持久节点,并将其数据设置为 "myData"。 同样,您可以使用以下代码读取节点数据: ```java String path = "/myNode"; byte[] data = zk.getData(path, false, null); String dataStr = new String(data); System.out.println("Data of node " + path + ": " + dataStr); ``` 这将从 ZooKeeper 读取 "/myNode" 节点的数据,并将其打印到控制台上。 这只是 ZooKeeper API 的一小部分,您可以根据需要进行更多操作。希望这可以帮助您开始使用 Java ZooKeeper
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值