我想使用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");
答案 0 :(得分:1)
作为疑难解答步骤,您可以使用HdfsZooInstance.getInstance().getInstanceName()
或直接连接到ZooKeeper并使用ls /accumulo/instances/
答案 1 :(得分:0)
有多种简单的方法可以获取instance_name:以太只是查看accumulo状态页面的顶部,如评论中提到的elserj或使用zkCli连接到Zookeeper并使用 { {1}} 正如克里斯托弗回答的那样。
但是我无法使用普通的Java Connector连接到accumulo。不过我设法使用 Proxy-Settings 连接到Accumulo,这对我来说是一个有效的解决方案,即使我仍然希望找到问题。