获取Accumulo实例名称

时间:2016-01-18 02:31:27

标签: java apache-zookeeper accumulo geomesa

我想使用GeoMesa(Accumulo的GIS扩展)并使用Docker对其进行虚拟化,就像this repo一样。现在我想使用Java连接到Accumulo实例:

 Instance i = new ZooKeeperInstance("docker_instance",zkIP:port);
 Connector conn = i.getConnector(user, new PasswordToken(password));

连接未建立并挂起(就像在this question中一样)。我可以使用

连接到ZooKeeper实例
./zkCli.sh -server ip:port

所以我想instance_name是错误的。我首先使用了repo中提到的那个。但是,我不知道如何检查所需的instance_name。

为了使我的问题可重现,我做了setup a digital ocean服务器,具有所有必要的依赖性和accumulo。我测试了使用zkCli可以连接到zookeeper并使用服务器上的accumulo shell检查凭据。

 Instance i = new ZooKeeperInstance("DIGITAL_OCEAN","46.101.199.216:2181");
 // WARN  org.apache.accumulo.core.client.ClientConfiguration  - Found no client.conf in default paths. Using default client configuration values.
 System.out.println("This is reached");
 Connector conn = i.getConnector("root", new PasswordToken("mypassw"));
 System.out.println("This is not reached");

2 个答案:

答案 0 :(得分:1)

作为疑难解答步骤,您可以使用HdfsZooInstance.getInstance().getInstanceName()或直接连接到ZooKeeper并使用ls /accumulo/instances/

列出实例名称来提取实例名称

答案 1 :(得分:0)

有多种简单的方法可以获取instance_name:以太只是查看accumulo状态页面的顶部,如评论中提到的elserj或使用zkCli连接到Zookeeper并使用 { {1}} 正如克里斯托弗回答的那样。

但是我无法使用普通的Java Connector连接到accumulo。不过我设法使用 Proxy-Settings 连接到Accumulo,这对我来说是一个有效的解决方案,即使我仍然希望找到问题。