2010-12-29 4 views
1

私はこれを長年取り組んできました。私は非常に疲れています。私は自分のペットプロジェクトを動かすかもしれない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週間)、すべてが古いか不完全であるようです。私のデバイスから私を救ってください!

答えて

0

それは正確な答えはありませんが、それは私が得た最も近いです -

私は昨日irc.freenode.netの#hbaseに尋ねた、とClouderaの従業員のいずれかが答えました。 私がPigに持っている "Input Splits"の問題はPig 0.7に固有で、Pig 0.8はCloudera CDH3 Beta 4にバンドルされます(これに関するETAなし)。したがって、私がしたいこと(シンクとソースの両方としてHBaseテーブルを使用して簡単にM/Rジョブを書き込む)は、次のリリースで可能になります。また、HBaseStorageクラスは一般に、ANY JVM言語からの読み書き操作を助けるために改良され、Jython、JRuby、Scala、およびClojureのすべての可能性がさらに向上すると思われます。

は、そこで質問への答えは、この時点では、「CDH3ベータ4を待ち」である、またはあなたがせっかちなら、「豚の最新バージョンをダウンロードし、それはあなたのHBaseと互換性のあることを祈る」

+1

1. HBaseに直接ダンプするのではなく、私の初期データをHDFSに保存します。 2. Dumboを使用してデータを確認してください(データはHDFSに保存されています)。 3. DumboのReduceフェーズで、HBase接続を開始し、自分の行をPUTします。これは、合理的にうまく動作し、良い今のためのスケール。 – linked

関連する問題