0

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

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

连接没有建立并挂起(就像在这个问题中一样)。我可以使用 using 连接到 ZooKeeper 实例

./zkCli.sh -server ip:port

所以我猜 instance_name 是错误的。我使用了第一个链接的 repo 中提到的那个。但是我不知道如何检查所需的 instance_name。


为了使我的问题可重现,我确实设置了一个具有所有必要依赖项和累积的数字海洋服务器。我测试了使用 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");
4

2 回答 2

1

作为故障排除步骤,您可以通过使用HdfsZooInstance.getInstance().getInstanceName()或直接连接到 ZooKeeper 并列出实例名称来提取实例名称ls /accumulo/instances/

于 2016-01-19T00:26:40.907 回答
0

有多种简单的方法可以获取 instance_name:Ether 只需查看评论中 elserj 中提到的 accumulo 状态页面的顶部,或者使用 zkCli 连接到 Zookeeper 并ls /accumulo/instances /按照 Christopher 的回答使用。

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

于 2016-01-19T17:42:23.350 回答