0

我在运行 Ubuntu 的 VirtualBox VM 上安装了 Hadoop 和 Hbase;Hadoop 和 Hbase 都在伪分布式模式下成功运行。我在 Ubuntu 上禁用了 IPv6,并将 VM 上的 hosts 文件中的 localhost 更改为 127.0.0.1。

我正在尝试在 Eclipse 中的 Windows 机器上编写一些基本的 Java 代码,以连接到 Hbase 实例、创建表、插入和检索数据等。代码失败并出现无法连接到主服务器的错误。但是,它使 Zookeeper 与 VM 的连接很好。

在 Windows 机器上,我可以通过 Web 浏览器通过我在 Java 代码中指定的相同 IP 地址和端口连接到 Hbase 实例信息。

我到处搜索并尝试了我能找到的所有东西,但是在建立zookeeper连接后仍然无法连接到master。

我读过其他人也遇到过这个问题,但没有人发布解决方案。

请帮忙!谢谢!

4

2 回答 2

0

好的——有人给了我一些解决问题的 1-1 帮助,我想把它传递下去。原来是虚拟机和我的 Windows 机器的 IP 寻址问题。首先,在 VM 上的 etc/hosts 文件中,我必须取出“127.0.0.1 locahost”并插入“localhost”。其次,在我的 Windows 主机文件中,我必须添加“”。值得庆幸的是,这解决了问题。请让我知道这还不清楚,因为我已经多次看到这个问题没有合适的解决方案。此外,由于我正在编写 Java 代码来访问 VM 中的 HBase 实例,因此无需使用 Thrift 或 REST——Java API 就足够了。

于 2013-09-03T18:46:30.423 回答
0

用于查看信息的 IP 和端口不是用于读取/写入 HBase 的 IP 和端口。为此,您需要使用 REST API(包含在 HBase 中)或 Apache Thrift(HBase 中包含 2 个 thrift 服务器 - thrift & thrift2)

我建议您使用 Apache Thrift (thrift2)

要开始 REST 使用:

$HBASE-INSTALL-DIR/bin/hbase-deamon.sh start rest

要启动 Thrift,请使用:

$HBASE-INSTALL-DIR/bin/hbase-deamon.sh start thrift

要启动 Thrift (v2),请使用:

$HBASE-INSTALL-DIR/bin/hbase-deamon.sh start thrift2

例如,要使用 Java 中的 Thrift 客户端,您需要在服务器上安装 thrift,然后使用 HBase 中包含的 hbase thrift 文件生成 Java 类。

默认情况下,Thrift 将监听9090端口和8080上的 REST

有用的链接:

HBase 节俭

HBase REST

于 2013-09-03T11:23:46.800 回答