2012-07-25 59 views
5

嗨我在完全分佈式模式下使用hBase,我試圖連接Hbase使用java代碼並創建一個表。我收到一個錯誤。它沒有連接到hbase。我已經檢查了它們運行正常的所有進程: - namenode,datanode,nodemanager,資源管理器,hbase master,hbase regionservers,zookeeper。HBase錯誤:不是主機:端口對

錯誤

starting... 
getting config... 
12/07/25 18:48:31 WARN hbase.HBaseConfiguration: instantiating HBaseConfiguration() is deprecated. Please use HBaseConfiguration#create() to construct a plain Configuration 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Client environment:zookeeper.version=3.3.2-1031432, built on 11/05/2010 05:32 GMT 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Client environment:host.name=aniket 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Client environment:java.version=1.7.0_05 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Client environment:java.vendor=Oracle Corporation 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Client environment:java.home=/usr/java/jdk1.7.0_05/jre 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Client environment:java.class.path=/root/workspace/HBaseTesting/bin:/usr/lib/hadoop-0.20-mapreduce/hadoop-core.jar:/usr/lib/hadoop/hadoop-common.jar:/root/Downloads/google-collect-1.0-rc1/google-collect-1.0-rc1.jar:/root/Downloads/hbase-0.90.5/hbase-0.90.5.jar:/root/Downloads/hbase-0.90.5/lib/activation-1.1.jar:/root/Downloads/hbase-0.90.5/lib/asm-3.1.jar:/root/Downloads/hbase-0.90.5/lib/avro-1.3.3.jar:/root/Downloads/hbase-0.90.5/lib/commons-cli-1.2.jar:/root/Downloads/hbase-0.90.5/lib/commons-codec-1.4.jar:/root/Downloads/hbase-0.90.5/lib/commons-el-1.0.jar:/root/Downloads/hbase-0.90.5/lib/commons-httpclient-3.1.jar:/root/Downloads/hbase-0.90.5/lib/commons-lang-2.5.jar:/root/Downloads/hbase-0.90.5/lib/commons-logging-1.1.1.jar:/root/Downloads/hbase-0.90.5/lib/commons-net-1.4.1.jar:/root/Downloads/hbase-0.90.5/lib/core-3.1.1.jar:/root/Downloads/hbase-0.90.5/lib/guava-r06.jar:/root/Downloads/hbase-0.90.5/lib/hadoop-core-0.20-append-r1056497.jar:/root/Downloads/hbase-0.90.5/lib/jackson-core-asl-1.5.5.jar:/root/Downloads/hbase-0.90.5/lib/jackson-jaxrs-1.5.5.jar:/root/Downloads/hbase-0.90.5/lib/jackson-mapper-asl-1.4.2.jar:/root/Downloads/hbase-0.90.5/lib/jackson-xc-1.5.5.jar:/root/Downloads/hbase-0.90.5/lib/jasper-compiler-5.5.23.jar:/root/Downloads/hbase-0.90.5/lib/jasper-runtime-5.5.23.jar:/root/Downloads/hbase-0.90.5/lib/jaxb-api-2.1.jar:/root/Downloads/hbase-0.90.5/lib/jaxb-impl-2.1.12.jar:/root/Downloads/hbase-0.90.5/lib/jersey-core-1.4.jar:/root/Downloads/hbase-0.90.5/lib/jersey-json-1.4.jar:/root/Downloads/hbase-0.90.5/lib/jersey-server-1.4.jar:/root/Downloads/hbase-0.90.5/lib/jettison-1.1.jar:/root/Downloads/hbase-0.90.5/lib/jetty-6.1.26.jar:/root/Downloads/hbase-0.90.5/lib/jetty-util-6.1.26.jar:/root/Downloads/hbase-0.90.5/lib/jruby-complete-1.6.0.jar:/root/Downloads/hbase-0.90.5/lib/jsp-2.1-6.1.14.jar:/root/Downloads/hbase-0.90.5/lib/jsp-api-2.1-6.1.14.jar:/root/Downloads/hbase-0.90.5/lib/jsr311-api-1.1.1.jar:/root/Downloads/hbase-0.90.5/lib/log4j-1.2.16.jar:/root/Downloads/hbase-0.90.5/lib/protobuf-java-2.3.0.jar:/root/Downloads/hbase-0.90.5/lib/servlet-api-2.5-6.1.14.jar:/root/Downloads/hbase-0.90.5/lib/slf4j-api-1.5.8.jar:/root/Downloads/hbase-0.90.5/lib/slf4j-log4j12-1.5.8.jar:/root/Downloads/hbase-0.90.5/lib/stax-api-1.0.1.jar:/root/Downloads/hbase-0.90.5/lib/thrift-0.2.0.jar:/root/Downloads/hbase-0.90.5/lib/xmlenc-0.52.jar:/root/Downloads/hbase-0.90.5/lib/zookeeper-3.3.2.jar:/root/Downloads/hbql-0.90.0.1/hbql-0.90.0.1.jar 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Client environment:java.io.tmpdir=/tmp 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Client environment:java.compiler=<NA> 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Client environment:os.name=Linux 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Client environment:os.arch=amd64 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Client environment:os.version=2.6.18-274.el5xen 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Client environment:user.name=root 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Client environment:user.home=/root 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Client environment:user.dir=/root/workspace/HBaseTesting 
12/07/25 18:48:32 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=192.168.1.88:2181 sessionTimeout=180000 watcher=hconnection 
12/07/25 18:48:32 INFO zookeeper.ClientCnxn: Opening socket connection to server /192.168.1.88:2181 
12/07/25 18:48:32 INFO zookeeper.ClientCnxn: Socket connection established to aniket/192.168.1.88:2181, initiating session 
12/07/25 18:48:32 INFO zookeeper.ClientCnxn: Session establishment complete on server aniket/192.168.1.88:2181, sessionid = 0x138bf7676070043, negotiated timeout = 40000 
Exception in thread "main" java.lang.IllegalArgumentException: Not a host:port pair: � 
at org.apache.hadoop.hbase.HServerAddress.<init>(HServerAddress.java:60) 
    at org.apache.hadoop.hbase.MasterAddressTracker.getMasterAddress(MasterAddressTracker.java:63) 
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:561) 
    at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:99) 
    at org.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable(HBaseAdmin.java:1320) 
    at HBaseCreateTable.main(HBaseCreateTable.java:38) 

代碼片段

Configuration config=HBaseConfiguration.create(); 
config.set("hbase.zookeeper.quorum", "192.168.1.88"); 
config.set("hbase.zookeeper.property.clientPort","2181"); 
config.set("hbase.master", "192.168.1.88:60000"); 
HTableDescriptor ht = new HTableDescriptor("abc"); 
ht.addFamily(new HColumnDescriptor("number")); // from and to 
HBaseAdmin hba = new HBaseAdmin(conf); 
hba.createTable(ht); 

回答

9

我見過 「不是主機:端口對」 使用0.90.2客戶交談0.92服務器時。你能證實你的客戶端和服務器HBase版本是一樣的嗎?它們是什麼?

+0

是的,當我不小心使用0.94連接到0.98時,發生了同樣的情況。 – haridsv 2014-07-07 11:09:21

0

i faced same problem, try :

Change your build path jar/wars that you are using, make compatible with Hbase server version.. use same version of Hbase server and jars you used for coding. Ex:if you are using Hbase 0.90.2 server use same version of jars available.

0

Check this out

如果您嘗試HBase的客戶端0.90.x和HBase的服務器0.92.x之間進行通信,這類型的問題會發生。

如果有人詳細瞭解此問題,請對其原因進行評論。

+0

您應該更好地[問一個新問題](http://stackoverflow.com/questions/ask)。 – j0k 2012-10-03 21:34:48

0

除了沃爾特所說的。它不僅僅是因爲這個特定的版本,他提到'0.90.2',事實上,只要它們在客戶端API版本&服務器API之間不匹配,就會得到這個異常。

,因爲我已經得到了同樣的異常: - 當我使用

「異常線程 」main「 PBUF java.lang.IllegalArgumentException異常:不是主機:端口對」客戶端API爲0.94,服務器API爲0.98版本。