2014-09-24 113 views
1

嗨,我已经在我的机器上安装了Ubuntu并安装了hbase0.98-hadoop2。然后我编辑了hbase-env.sh文件和hbase-site.xml。现在我的hbase外壳工作正常。但是当我尝试从使用hbase java api的Java代码连接到hbase时。我收到错误。 我的代码是:无法使用Java连接到Hbase

Configuration hc = HBaseConfiguration.create(); 


      HTableDescriptor ht = new HTableDescriptor("User"); 

      ht.addFamily(new HColumnDescriptor("Id")); 

      ht.addFamily(new HColumnDescriptor("Name")); 

      System.out.println("connecting"); 

      HBaseAdmin hba = new HBaseAdmin(hc); 
      System.out.println("Master running ? "+ hba.isMasterRunning()); 
      System.out.println("Creating Table"); 

      hba.createTable(ht); 

      System.out.println("Done......"); 

我的输出是:

connecting 
Exception in thread "main" java.lang.NumberFormatException: For input string: "42529`;��7ec�PBUF 

jamil-37037�������) 
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 
    at java.lang.Integer.parseInt(Integer.java:492) 
    at java.lang.Integer.parseInt(Integer.java:527) 
    at org.apache.hadoop.hbase.HServerAddress.<init>(HServerAddress.java:63) 
    at org.apache.hadoop.hbase.MasterAddressTracker.getMasterAddress(MasterAddressTracker.java:63) 
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:353) 
    at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:89) 
    at HBaseConnector.main(HBaseConnector.java:157) 

我的代码是在HbaseAdmin产生问题。请帮忙吗? 还记得我安装了独立的hbase,并没有单独安装hadoop。这是一个包hbase0.98.6-hadoop2。

+1

看起来像zookeeper端口没有得到正确的解析。它期望一个整数值,但获取文本。 类路径中的hbase-site.xml?如果是,它是否有hbase.zookeeper.quorum?您可以尝试将hbase.zookeeper.quorum设置到您的HBaseConfiguration中。 – Venkat 2014-09-24 19:12:13

+0

如何在classpath中设置hbase-site.xml?而hbase.zookeeper.quorum在hbase-site.xml文件中未提及。我正在使用独立的hbase。 – Mr37037 2014-09-24 19:16:59

回答

2

如果您使用的是maven,请参阅您的hbase设置是否使用确切的版本依赖关系。举个例子,如果你的hbase假设hbase-0.x.x,你必须在项目中添加依赖hbase-0.x.x。同样检查所有其他依赖项,如hadoop,zookeeper。如果不是maven,那么下载适当的jar并将它们添加到你的类路径中。如果您不知道,请转至应用程序的lib文件夹并查看罐子。

希望这会有所帮助。谢谢

+0

是啊!这很有效,非常感谢@7777我使用的是不同于我原来的hbase设置的jar。保存了我的一天。非常感谢 – Mr37037 2014-09-24 20:48:59