私はこれを長年取り組んできました。私は非常に疲れています。私は自分のペットプロジェクトを動かすかもしれないSOコミュニティからの[はっきりとした]洞察を期待しているので、自分自身を蹴るのを止めることができます。私はCloudera CDH3、HBase .89、Hadoop .20を使用しています。HBase MapReduceをCDH3に書き込む最も簡単なJava以外の方法は?
私は、Thriftインターフェイスを使用して単一のHBaseテーブルにデータを書き込むPython/Djangoアプリケーションを持っています。今、私はそれをいくつかのより多くのHBaseテーブルにマップし/減らしたいと思っています。
明白な答えはDumboまたはApache PIGですが、PigではHBaseStorageアダプタのサポートがまだ使用できません(Pigはクラスと定義を読み込むことができますが、 "Map"ステップでフリーズします)。 Pigメーリングリストは、これがPig 0.8で修正されたことを示唆しています。これはCDH3 Hadoopと互換性がないため、すべてのバージョンのエッジバージョンを使用する必要があります)。ダンボがHBaseStorageをデータシンクとして使用する方法に関する情報は見つかりません。
私はそれは、Python、Rubyの、スカラ座、Clojureは、Jythonの、JRubyのかさえPHPだ場合、私はちょうど本当にそれらのほとんどは沈没を含む、理由の多くのために(Javaのを書きたくない気にしません私はInt()をIntWritable()などに変換する必要があるたびに得られると感じています。
HBase Map/Reduceジョブを別の言語で記述すると、私は最後の解決策と例を見つけることができましたが(過去4週間)、すべてが古いか不完全であるようです。私のデバイスから私を救ってください!
1. HBaseに直接ダンプするのではなく、私の初期データをHDFSに保存します。 2. Dumboを使用してデータを確認してください(データはHDFSに保存されています)。 3. DumboのReduceフェーズで、HBase接続を開始し、自分の行をPUTします。これは、合理的にうまく動作し、良い今のためのスケール。 – linked