2012-12-05 5 views
8

私は単純なHbaseの例を実行すると問題に直面しています。Hbase Javaのサンプルを実行するには?

私は1つのテーブルを作成し、いくつかのレコードを挿入する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シェルは機能しますか?そうでない場合は、インストールを確認してから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) ... (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 Client APIプログラムを開発することができます。 NetBeansの開封後

  • 、[ツール] =>ライブラリと「新 ライブラリ」をクリックし、それを「MapReduceの」のような名前を付けます。
  • はそれを名前を付けて、[追加JAR /フォルダをクリックすると、ファイルシステムブラウザをナビゲートすることによって、一般的にHBaseのライブラリのためのHadoopのライブラリの/usr/local/hadoop-2.x.x/share/hadoop/usr/local/hbase-1.x.x/libの下で、 必要なJARファイルを選択します(またはちょうどあなたのインストールディレクトリに移動します) 。 Shift +矢印キーを押すと、jarファイルを大量に選択できます。
  • いつものように新しいJavaプロジェクトを作成し、 プロジェクトペインで右クリックし、[プロパティ]に移動します。
  • 「ライブラリ」→「ライブラリの追加」をクリックし、リストからライブラリを選択します。 すべてのプロセスを実行しているので、今すぐコンパイルして実行してください。
関連する問題