我正在尝试使用Accumulo连接到VM。问题是,我无法在Java中连接它。我可以看到Apache抛出的网页,但我不能让它与代码一起工作。我认为这是一个缺乏知识的问题,而不是一个真正的问题,但我找不到关于它的文档。所有的例子都使用localhost作为zooServer名称,这显然不适合我。
下面是我的代码: String instanceName = "accumulo-02"
String zooServers = "192.168.56.5, accumulo-02.localdomain:9997"
ZooKeeperInstance inst = new ZooKeeperInstance(instanceName, zooServers)
....
其余的都不重要,因为我无法连接到服务器。
实际上也是用Groovy编写的。我只是为Java修改了代码。
编辑:程序驻留在我的计算机上。虚拟机中已经安装了Accumulo、Hadoop和Zookeeper。它的ip就是那个ip,而实例名就是那个名字。在accumulo的配置中,'accumulo-02'是主、从等的域…
要正确指定Apache ZooKeeper节点列表,当使用 zookeerinstance 连接到Apache Accumulo时,zooServers应该指定为:
- ZooKeeper已经设置并运行的host:port的逗号分隔列表, 不带空格。
- 确保ZooKeeper使用的是客户端端口,而不是TServer。(Port 2181是ZooKeeper默认的客户端端口。9997是TServers的默认客户端端口。
- 如果你在默认端口(2181)上运行ZooKeeper,你可以省略:port部分,只留下一个逗号分隔的主机列表,或者你可以组合它们,如果你有一些在非标准端口和一些在标准端口,如"proxyhost,proxyhost:2182,thirdhost:2181"。 无论你是使用IP地址还是主机名,只要你指定的任何东西都可以从客户端到达,端口是打开并且没有被防火墙阻止。