我的机器正在运行hbase-0.94.16服务器,所以当我尝试使用hbase definitive原始指南中的文档来安装hbase hush服务器时,它会抛出以下异常
14/05/22 11:03:43 INFO zookeeper.ZooKeeper:客户端环境:java.io.tmpdir = / tmp 14/05/22 11:03:43 INFO zookeeper.ZooKeeper:客户端环境:java.compiler = 14/05/22 11:03:43 INFO zookeeper.ZooKeeper:客户端环境:os.name = Linux 14/05/22 11:03:43 INFO zookeeper.ZooKeeper:客户端环境:os.arch = i386 14/05/22 11:03:43 INFO zookeeper.ZooKeeper:客户端环境:os.version = 2.6.32-43-generic 14/05/22 11:03:43 INFO zookeeper.ZooKeeper:客户端环境:user.name = hduser 14/05/22 11:03:43 INFO zookeeper.ZooKeeper:客户端环境:user.home = / home / hduser 14/05/22 11:03:43 INFO zookeeper.ZooKeeper:客户端环境:user.dir = / home / hduser / hexamples / hbase-book / hush 14/05/22 11:03:43 INFO zookeeper.ZooKeeper:启动客户端连接,connectString = info3s5:2181 sessionTimeout = 180000 watcher = hconnection 14/05/22 11:03:43 INFO zookeeper.ClientCnxn:打开与服务器info3s5 / 192.168.1.5的套接字连接:2181 14/05/22 11:03:43 INFO zookeeper.ClientCnxn:建立到info3s5 / 192.168.1.5的套接字连接:2181,启动会话 14/05/22 11:03:44 INFO zookeeper.ClientCnxn:在服务器info3s5 / 192.168.1.5上完成会话建立:2181,sessionid = 0x14622350606000d,协商超时= 180000 14/05/22 11:03:44 INFO ipc.HBaseRPC:为org.apache.hadoop.hbase.ipc.HMasterInterface使用org.apache.hadoop.hbase.ipc.WritableRpcEngine 14/05/22 11:03:44 INFO client.HConnectionManager $ HConnectionImplementation:getMaster尝试0 of 10失败;睡眠1000后重试 java.net.UnknownHostException:未知主机: 3822 @ info3s5info3s5 在org.apache.hadoop.hbase.ipc.HBaseClient $ Connection。(HBaseClient.java:224) 在org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:954) 在org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:816) at org.apache.hadoop.hbase.ipc.WritableRpcEngine $ Invoker.invoke(WritableRpcEngine.java:141) 在com.sun.proxy。$ Proxy4.getProtocolVersion(未知来源) at org.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:174) 在org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:295) 在org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:272) 在org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:324) at org.apache.hadoop.hbase.client.HConnectionManager $ HConnectionImplementation.getMaster(HConnectionManager.java:579) 在org.apache.hadoop.hbase.client.HBaseAdmin。(HBaseAdmin.java:94) 在com.hbasebook.hush.schema.SchemaManager.process(SchemaManager.java:126) 在com.hbasebook.hush.HushMain.main(HushMain.java:57)
为什么需要3822 @ info3s5info3s5,我的主机名只是info3s5?
答案 0 :(得分:0)
这可能是由于服务器和客户端之间的HBase版本不匹配。我有一个类似的错误" ERROR mapreduce.TableOutputFormat:java.net.UnknownHostException:未知主机:#2441 @ xxx"其中xxx是区域服务器(不是zookeeper!)IP,当我设置两个Amazon EMR(弹性Mapreduce)集群时
并尝试从#2运行自定义JAR以与#1交谈。事实证明,我在#2上放置的JAR使用的是0.91.0-SNAPSHOT,而不是0.92.0。
FIX:我更改了pom.xml中的Maven依赖项以匹配服务器HBase版本,问题就消失了。