如何执行solr zookeeper CLI上传solr配置

时间:2013-12-06 13:04:01

标签: bash scala solr apache-zookeeper solrcloud

我的scala应用程序需要通过zookeeper与solr云进行交互。我需要将solr配置文件(conf文件夹)上传到zookeeper。它使用以下shell命令完成:

 cloud-scripts/zkcli.sh -cmd upconfig -zkhost zkHostAddress:2181 -d solr/collection/conf/ -n collection

我需要从我的scala应用程序本身完成此配置上传,而不是使用此shell命令。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

Netflix编写了一个名为Curator的好的Zookeeper库(现在是一个Apache项目),它在Scala中工作得很好,例如下面的代码建立了与ZooKeeper的连接

private def getConnection(connection : String): Option[CuratorFramework] = {
   val retryPolicy = new ExponentialBackoffRetry(100,3)
    val newConn = CuratorFrameworkFactory.builder().
      connectString(connection).
      retryPolicy(retryPolicy).connectionTimeoutMs(1000).
      build
    try {
    newConn.start()
    newConn.checkExists.forPath(SOME_PATH)

    Some(newConn)
    } catch {
      case e:Exception => {
        error(e)
        None
      }
    }
}