2013-08-30 62 views
0

我在运行Ubuntu的VirtualBox虚拟机上安装了Hadoop和Hbase; Hadoop和Hbase都以伪分布模式成功运行。我在Ubuntu上禁用了IPv6,并在虚拟机上的主机文件中将本地主机更改为127.0.0.1。无法从Java代码连接到HBase服务器

我想在Eclipse的Windows机器上编写一些基本的Java代码来连接到Hbase实例,创建一个表,插入和检索数据等等。代码失败,出现无法连接到主服务器的错误。但是,它使Zookeeper连接到虚拟机非常好。

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

我到处搜索并尝试了所有可以找到的东西,但它在连接到动物园管理员连接后仍无法连接到主服务器。

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

请帮忙!谢谢!

+0

你能告诉我错误日志吗? – Tariq

+0

你可以从主机ping到VM吗? – Kowser

+0

嗨 - 是的,我可以从主机ping虚拟机。我现在离开我的机器,所以我会在返回时发布错误日志。 – willi7

回答

0

用于查看信息的IP和端口不是用于读/写HBase的IP和端口。要做到这一点,你需要请使用REST API(包括在HBase的)或Apache节俭(2个节俭服务器包含在HBase的 - 节俭& thrift2)

我会建议你使用Apache节俭(thrift2)

要开始使用REST:

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

要开始节俭使用:

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

要开始节俭(V2)使用方法:

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

要使用节俭客户端从Java,例如,你将需要install thrift在服务器上,然后使用附带的HBase HBase的节俭文件生成Java类。

默认情况下,储蓄将被监听的端口和REST的8080个

有用的链接上:

HBase Thrift

HBase REST

+0

嗨 - 如果我必须使用Thrift从我的Java代码远程读取/写入Hbase,您能解释Java API输入图片的位置吗?谢谢! – willi7

+0

Thrift由三个实体组成,即服务器,客户端和自己的节点(这个实体只用于生成客户端),服务器已经在使用hbase并且使用上面的命令启动它,客户端可以处于多个语言(在你的情况下是Java),这个客户端是你集成在你的项目中的一组类,用于连接到hbase并执行你的操作。以获得需要下载的那些Java类,并使用'hbase.thrift'文件(这是一个描述hbase可以执行的配置文件)来生成这些类。 – Oussama

0

好 - 有人给我有些1-1帮助解决了这个问题,我想把它传递下去。事实证明,这是VM和Windows机器的IP寻址问题。首先,在VM上的etc/hosts文件中,我必须取出'127.0.0.1 locahost',而不是插入'localhost'。其次,在我的Windows主机文件上,我不得不添加''。谢天谢地,那解决了这个问题。请让我知道这是不明确的,因为我发现这个问题发布了好几次没有合适的解决方案。另外,由于我正在编写Java代码来访问虚拟机中的HBase实例,因此不需要使用Thrift或REST - Java API就足够了。