【发布时间】:2016-01-18 02:31:26
【问题描述】:
我想使用 GeoMesa(Accumulo 的 GIS 扩展)并像 this repo 一样使用 Docker 对其进行虚拟化。现在我想使用 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 服务器进行了处理。我测试了使用 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");
【问题讨论】:
-
Accumulo 实例名称是您在运行
accumulo init时提供的名称。您可以在 Accumulo Monitor 上看到此名称。您也没有提供有关实际错误的任何信息(它是挂在第一行代码还是第二行?)。您最终会看到错误吗?当进程卡住时,您是否从进程中获得了线程转储?是否提高了 log4j 调试级别? -
好的,感谢您提供 instance_name 的位置 - 遗憾的是我使用了正确的位置。关于问题:它在第二个命令处挂起,但在创建 ZooKeeperInstance 时也显示警告:
[main] WARN org.apache.accumulo.core.client.ClientConfiguration - Found no client.conf in default paths. Using default client configuration values. -
这实际上来自 ZKI 为您隐式创建的 ClientConfiguration 对象。您可以通过使用接受 ClientConfiguration 对象的 ZKI 构造函数来摆脱它(并在该对象上设置 instanceName 和 zookeepers 字符串)。
标签: java apache-zookeeper accumulo geomesa