分享

eclipse连接hbase是报错信息,都纠结了一个星期了,还是没有解决!气死我了!

小y飞翔 发表于 2017-4-17 00:10:36 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 15 19789
通过eclipse连接hbase报错,已经检查了一个星期了,还是没找错问题。听说这个论坛上都是牛人,希望能够给条明路!谢谢!

1.        hbase是伪分布集群。
2.        hadoop也是伪分布
3.        zookeeper用的是hbase自带的,伪分布和独立的都安装过,还是一样的错误。
4.        版本hbase1.2.3 ,  hadoop2.7.3 ,java 1.7,  eclipse 4.5.1,版本应该是没有问题的,我核对了很多遍,开始以为是版本问题,把hbase和eclipse都更新到现在这个版本,发现还是报一样的错误。
5.        几乎把网上关于这个问题的说法都检查,尝试了个遍,还是同样的问题,都快气得砸电脑了。
6.        Linux系统上能启动,并且可以创建表。Hbase zkcli也可以正常启动。Jps查看也确实全部起来了。

Hbase-site配置:
  <property>
<name>hbase.rootdir</name>
<value>hdfs://master.hadoop:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>


每次通过eclpse连接hbase,zookeeper都报错这样的信息:
2017-04-16 07:58:11,066 INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] server.NIOServerCnxn: Closed socket connection for client /192.168.190.131:48394 which had sessionid 0x15b7742f31e0006
2017-04-16 07:59:42,007 INFO  [SessionTracker] server.ZooKeeperServer: Expiring session 0x15b7742f31e0006, timeout of 90000ms exceeded
2017-04-16 07:59:42,008 INFO  [ProcessThread(sid:0 cport:-1):] server.PrepRequestProcessor: Processed session termination for sessionid: 0x15b7742f31e0006
2017-04-16 08:01:49,142 INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] server.NIOServerCnxnFactory: Accepted socket connection from /127.0.0.1:59818
2017-04-16 08:01:49,185 INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] server.ZooKeeperServer: Client attempting to establish new session at /127.0.0.1:59818
2017-04-16 08:01:49,192 INFO  [SyncThread:0] server.ZooKeeperServer: Established session 0x15b7742f31e0007 with negotiated timeout 90000 for client /127.0.0.1:59818
2017-04-16 08:01:49,953 WARN  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] server.NIOServerCnxn: caught end of stream exception
EndOfStreamException: Unable to read additional data from client sessionid 0x15b7742f31e0007, likely client has closed socket
        at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:228)
        at org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:208)
        at java.lang.Thread.run(Thread.java:745)


eclipse报错信息:
2017-04-16 09:01:31,228 WARN  [main] util.NativeCodeLoader (NativeCodeLoader.java:<clinit>(62)) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2017-04-16 09:01:34,962 INFO  [main] zookeeper.ZooKeeper (Environment.java:logEnv(100)) - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
2017-04-16 09:01:34,981 INFO  [main] zookeeper.ZooKeeper (Environment.java:logEnv(100)) - Client environment:host.name=master.hadoop
2017-04-16 09:01:34,982 INFO  [main] zookeeper.ZooKeeper (Environment.java:logEnv(100)) - Client environment:java.version=1.7.0_71
2017-04-16 09:01:34,985 INFO  [main] zookeeper.ZooKeeper (Environment.java:logEnv(100)) - Client environment:java.vendor=Oracle Corporation
2017-04-16 09:01:34,986 INFO  [main] zookeeper.ZooKeeper (Environment.java:logEnv(100)) - Client environment:java.home=/usr/java/jdk1.7.0_71/jre
2017-04-16 09:01:35,062 INFO  [main] zookeeper.ZooKeeper (Environment.java:logEnv(100)) - Client environment:java.io.tmpdir=/tmp
2017-04-16 09:01:35,067 INFO  [main] zookeeper.ZooKeeper (Environment.java:logEnv(100)) - Client environment:java.compiler=<NA>
2017-04-16 09:01:35,070 INFO  [main] zookeeper.ZooKeeper (Environment.java:logEnv(100)) - Client environment:os.name=Linux
2017-04-16 09:01:35,080 INFO  [main] zookeeper.ZooKeeper (Environment.java:logEnv(100)) - Client environment:os.arch=amd64
2017-04-16 09:01:35,082 INFO  [main] zookeeper.ZooKeeper (Environment.java:logEnv(100)) - Client environment:os.version=2.6.32-279.el6.x86_64
2017-04-16 09:01:35,084 INFO  [main] zookeeper.ZooKeeper (Environment.java:logEnv(100)) - Client environment:user.name=hadoop
2017-04-16 09:01:35,096 INFO  [main] zookeeper.ZooKeeper (Environment.java:logEnv(100)) - Client environment:user.home=/home/hadoop
2017-04-16 09:01:35,113 INFO  [main] zookeeper.ZooKeeper (Environment.java:logEnv(100)) - Client environment:user.dir=/home/hadoop/workspace/hadoop
2017-04-16 09:01:35,258 INFO  [main] zookeeper.ZooKeeper (ZooKeeper.java:<init>(438)) - Initiating client connection, connectString=localhost:2181 sessionTimeout=180000 watcher=hconnection
2017-04-16 09:01:36,026 INFO  [main] zookeeper.RecoverableZooKeeper (RecoverableZooKeeper.java:<init>(104)) - The identifier of this process is 5475@master.hadoop
2017-04-16 09:01:36,135 INFO  [main-SendThread(localhost:2181)] zookeeper.ClientCnxn (ClientCnxn.java:logStartConnect(975)) - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
2017-04-16 09:01:36,553 INFO  [main-SendThread(localhost:2181)] zookeeper.ClientCnxn (ClientCnxn.java:primeConnection(852)) - Socket connection established to localhost/127.0.0.1:2181, initiating session
2017-04-16 09:01:36,674 INFO  [main-SendThread(localhost:2181)] zookeeper.ClientCnxn (ClientCnxn.java:onConnected(1235)) - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x15b77751edd0007, negotiated timeout = 90000
Exception in thread "main" java.lang.IllegalArgumentException: Not a host:port pair: PBUF
master.hadoop&#65533;}&#65533;&#65533;&#1467;&#65533;+

at org.apache.hadoop.hbase.util.Addressing.parseHostname(Addressing.java:60)
        at org.apache.hadoop.hbase.ServerName.<init>(ServerName.java:101)
        at org.apache.hadoop.hbase.ServerName.parseVersionedServerName(ServerName.java:283)
        at org.apache.hadoop.hbase.MasterAddressTracker.bytesToServerName(MasterAddressTracker.java:77)
        at org.apache.hadoop.hbase.MasterAddressTracker.getMasterAddress(MasterAddressTracker.java:61)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:703)
        at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:126)
        at Hbase.hhbase.main(hhbase.java:28)


已有(15)人评论

跳转到指定楼层
desehawk 发表于 2017-4-17 08:09:11
楼上的解决办法对的。
建议三个节点,这样肯定不会出这个问题了。

关于远程编程,可以参考下面例子
hbase开发环境搭建及运行hbase小实例(HBase 0.98.3新api)

hbase编程:Eclipse远程连接创建hbase表以及填充列与列数据

关于部署:
hbase 0.96整合到hadoop2.2三个节点全分布式安装高可靠文档
http://www.aboutyun.com/forum.php?mod=viewthread&tid=7746

回复

使用道具 举报

nextuser 发表于 2017-4-17 07:50:28
本帖最后由 nextuser 于 2017-4-17 07:59 编辑

这个连接不上应该是正常的。
对于zookeepr的配置,你至少要在 hbase-site.xml中列出zookeepr的ensemble servers,具体的字段是 hbase.zookeeper.quorum. 该这个字段的默认值是 localhost,这个值对于分布式应用显然是不可以的. (远程连接无法使用)。

同样这里有相关英文资料
o avoid any confusion during deployment it is highly recommended
not to use a zoo.cfg with HBase but solely the hbase-site.xml.
Especially in a fully distributed setup where you have your own
ZooKeeper servers it is not practical to copy the configuration from
the ZooKeeper nodes to the HBase servers.
If you are using the hbase-site.xml approach to specify all
ZooKeeper settings you must at least set the ensemble servers with
the hbase.zookeeper.quorum property. It otherwise defaults to a
single ensemble member at localhost which is not suitable for a fully
distributed HBase (it binds to the local machine only and remote
clients will not be able to connect).

所以楼主的hbase.zookeeper.quorum配置信息不要使用localhost或则127.0.0.1.
尝试使用hostname。修改后最好重启




回复

使用道具 举报

小y飞翔 发表于 2017-4-17 21:16:16
nextuser 发表于 2017-4-17 07:50
这个连接不上应该是正常的。

同样这里有相关英文资料

谢谢!
但是还是不行。我改成了我的hostname(master.hadoop),但是仍旧没有效,我觉得可能不是配置问题。因为配置我反反复复检查好几遍,zookeeper伪分布也试过。我用的虚拟机装hbase,并且也是在虚拟机上装eclipse,我是真的不知道问题出在哪?
回复

使用道具 举报

小y飞翔 发表于 2017-4-17 21:38:32
desehawk 发表于 2017-4-17 08:09
楼上的解决办法对的。
建议三个节点,这样肯定不会出这个问题了。

谢谢!

我伪分布三个节点也试过,在虚拟机上的eclipse可以正常连接hdfs\hive\mr,但是就是连接不上hbase。困惑啊!我现在打算在win上连接虚拟内的hadoop试试,但是不知道具体怎么弄
回复

使用道具 举报

nextuser 发表于 2017-4-18 17:06:11
小y飞翔 发表于 2017-4-17 21:38
谢谢!

我伪分布三个节点也试过,在虚拟机上的eclipse可以正常连接hdfs\hive\mr,但是就是连接不上hba ...

还有一个原因,hostname不要使用域名,也就是带点,这个可能造成误解析。
如果还是不行,说明楼主的操作问题了。
回复

使用道具 举报

小y飞翔 发表于 2017-4-18 17:58:34
nextuser 发表于 2017-4-18 17:06
还有一个原因,hostname不要使用域名,也就是带点,这个可能造成误解析。
如果还是不行,说明楼主的操作 ...

可是我的hostname就是master.hadoop 你的意思是把hostname改了吗? 改成类似master hadoop吗?
回复

使用道具 举报

nextuser 发表于 2017-4-19 13:31:17
小y飞翔 发表于 2017-4-18 17:58
可是我的hostname就是master.hadoop 你的意思是把hostname改了吗? 改成类似master hadoop吗?

改成master即可,不要含有特殊字符。
回复

使用道具 举报

小y飞翔 发表于 2017-5-6 17:36:29
nextuser 发表于 2017-4-19 13:31
改成master即可,不要含有特殊字符。

但是不行,我通过web进入hbase发现里面显示hadoop版本号为2.5.1,与我虚拟机上安装的hadoop版本为2.7.3 但是在hadoop上明明已经创建了hbase文件,说明hbase已经连接上了hadoop.为什么会这样呢?这是hbase显示的:


Software Attributes
Attribute NameValueDescription
HBase Version1.2.3, revision=bd63744624a26dc3350137b564fe746df7a721a4HBase version and revision
HBase CompiledMon Aug 29 15:13:42 PDT 2016, stackWhen HBase version was compiled and by whom
HBase Source Checksum0ca49367ef6c3a680888bbc4f1485d18HBase source MD5 checksum
Hadoop Version2.5.1, revision=2e18d179e4a8065b6a9f29cf2de9451891265cceHadoop version and revision
这是hadoop显示的:

Overview 'master.hadoop:9000' (active)
Started:Sat May 06 01:32:06 PDT 2017
Version:2.7.3, rbaa91f7c6bc9cb92be5982de4719c1c8af91ccff
Compiled:2016-08-18T01:41Z by root from branch-2.7.3
Cluster ID:CID-fa47fead-6589-4e83-9a71-cf1247b8c2da
Block Pool ID:BP-495407632-192.168.190.131-1488034015305



回复

使用道具 举报

nextuser 发表于 2017-5-6 21:04:48
小y飞翔 发表于 2017-5-6 17:36
但是不行,我通过web进入hbase发现里面显示hadoop版本号为2.5.1,与我虚拟机上安装的hadoop版本为2.7.3  ...

楼主是不是安装混了,导致hbase与hadoop整合显示的hadoop是2.5的
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条