2012-12-05 56 views
8

我正面臨着運行簡單的Hbase示例的問題。如何運行Hbase Java示例?

我創建了HbaseTest.java,它創建一個表並插入一些記錄。在Unix中,我可以編譯java類。通過。

$ javac的-classpath HBase的-0.94.2.jar:Hadoop的核心1.0.4.jar HBaseTest.java

但我不能夠通過運行該程序: $的java -classpath hbase- 0.94.2.jar:hadoop-core-1.0.4.jar HBaseTest

上面的命令不適用於我。不知道是什麼問題?運行Hbase Java示例是否正確?

+1

你是什麼意思「它不適合我」?錯誤信息?什麼也沒做? –

+0

hbase shell的工作原理是什麼?如果沒有,你必須檢查你的安裝並重啓hbase – Pixou

+0

,同時運行這個命令我得到下面的錯誤:$ java -classpath hbase-0.94.2.jar:/scratch/hadoop-1.0.4/hadoop-core-1.0.4 .jar HBaseTest 線程「main」中的異常java.lang.NoClassDefFoundError:/ scratch/hadoop-1/0/4/hadoop-core-1/0/4/jar 導致:java.lang.ClassNotFoundException:.scratch .hadoop-1.0.4.hadoop-core-1.0.4.jar at java.net.URLClassLoader $ 1.run(URLClassLoader.java:202) ... at java.lang.ClassLoader.loadClass(ClassLoader.java :246) 找不到主要類:/scratch/hadoop-1.0.4/hadoop-core-1.0.4.jar。程序將會退出。 –

回答

16

您可以使用「hbase classpath」來獲取所需的類路徑。

 
    /* 
    * Compile and run with: 
    * javac -cp `hbase classpath` TestHBase.java 
    * java -cp `hbase classpath` TestHBase 
    */ 
    import org.apache.hadoop.conf.Configuration; 
    import org.apache.hadoop.hbase.*; 
    import org.apache.hadoop.hbase.client.*; 
    import org.apache.hadoop.hbase.util.*; 

    public class TestHBase { 
     public static void main(String[] args) throws Exception { 
      Configuration conf = HBaseConfiguration.create(); 
      HBaseAdmin admin = new HBaseAdmin(conf); 
      try { 
       HTable table = new HTable(conf, "test-table"); 
       Put put = new Put(Bytes.toBytes("test-key")); 
       put.add(Bytes.toBytes("cf"), Bytes.toBytes("q"), Bytes.toBytes("value")); 
       table.put(put); 
      } finally { 
       admin.close(); 
      } 
     } 
    } 
+2

是的。它的工作原理1. Hbase/bin $ ./hbase classpath 2.獲得非常大的類路徑字符串,其中包含運行程序所需的所有路徑3. $ java%hbase字符串類路徑(步驟2)....現在它正在工作:) –

+0

這工作。在常規hbase和hbase-slider-app上編譯和運行的源代碼和指令。 'hbase classpath'返回一個非常大的字符串,包含$ {hbase_home}/lib和hbase/conf以及hadoop/conf等幾乎所有內容。 –

1

如果運行失敗,可以使用像NetBeans這樣的IDE來開發Java HBase客戶端API程序。

  • 開放的NetBeans後,轉到工具=>庫,然後單擊「新建 圖書館」,並給它像「的MapReduce」的名稱。
  • 指定一個名稱,然後單擊添加JAR /文件夾並通過瀏覽文件系統瀏覽器(或導航至您的安裝目錄),選擇所需的JAR文件(通常在hadoop庫的/usr/local/hadoop-2.x.x/share/hadoop和HBase庫的/usr/local/hbase-1.x.x/lib下) 。 Shift +箭頭鍵可用於批量選擇jar文件。
  • 現在像往常一樣創建一個新的Java項目,並在 項目窗格上右鍵單擊它並轉到'屬性'。
  • 現在點擊Libraries => Add Library並從顯示的列表中選擇您的庫。 考慮到所有進程都在運行,您應該很好地編譯並運行它們。