获取 Accumulo 实例名称

Get Accumulo instance name

我想使用 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 是错误的。我使用了第一个链接的回购协议中提到的那个。但是我不知道如何检查所需的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");

作为故障排除步骤,您可以使用 HdfsZooInstance.getInstance().getInstanceName() 或直接连接到 ZooKeeper 并使用 ls /accumulo/instances/

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

有多种获取 instance_name 的简单方法:Ether 只需 查看累积状态页面的顶部 正如评论中提到的 elserj 或使用 zkCli连接到 Zookeeper 并使用 ls /accumulo/instances / 正如克里斯托弗回答的那样。

但是我无法使用普通的 Java 连接器连接到 accumulo。尽管如此,我还是设法使用 Proxy-Settings 连接到 Accumulo,这对我来说是一个有效的解决方案,即使我仍然希望找到问题所在。