2017-01-04 5 views
1

HadoopとHbaseを初めて使用しています。私は平らなjavaプログラムとMapReduceプログラム(javaで書かれています)を書くことの違いを知りたかったのですが、両方ともHBaseテーブルの同じデータに対して同じタスクを実行します。HBaseテーブルのプレーンJavaプログラムとMapReduce javaプログラムの違い

私は、Pig ScriptsとHive QueriesがMapReduceプログラムに変換され、HDFSのデータを処理することを知っています。 HBaseでもデータをデータノードに保存します。だから、通常のJavaプログラムがマッパーレキュチャータスクに変換され、バッチプロセスとしてデータノードからデータを処理するか、それともデータを線形に処理するのかどうか。

HBaseテーブルでプレーンなJavaプログラムがどのようにデータを処理するのかを教えてください。 事前に感謝!

答えて

1

私は両方がHBaseのテーブル内の同じデータを同じタスク を実行する際に、プレーンなJavaプログラムと、(Javaで書かれた) のMapReduceプログラムを書くの違いを知りたいと思いました。

のHBaseは小さなデータのためである私たちは、一般的な小さなJava HBaseのクライアントでJavaやMapReduceの(Javaで書かれた)プログラム

  • でスタンドアロンのHBaseクライアントを書くことができるそのうちの多くのクライアントを持っています。 map-reduceに変換されません。それはスタンドアロンのクライアントとして動作し、hadoopクラスタノードを介して生成されることはありません。テスト目的です。

  • Mapreduceは、YARNを使用する大きな/巨大なデータセット用です。&は、入力分割(並列処理)に基づいてすべてのノードでタスクを分割します。それは普通のJavaプログラムよりも速く動作します。

両方のプレーンJavaやMapReduceのプログラムは、同じクライアントAPI & hbase.zookeeper.quorumを使用していますが、それが動作する方法は異なっています。

どのようにプレーンなJavaプログラムがHBaseテーブルでデータを処理するのですか?クライアントAPIを使用して

それは飼育係(hbase.zookeeper.quorum &)を介して接続し、HBaseのテーブルと相互に作用します。例えば、下記を参照してください。

Configuration conf = HBaseConfiguration.create(); 
    conf.set("hbase.master","121.33.6.94:60000"); 
    Configuration config = HBaseConfiguration.create(); 
    config.set("hbase.zookeeper.quorum", "121.33.6.94"); 
    config.set("hbase.zookeeper.property.clientPort", "2181"); 
    config.set("hbase.master", "121.33.6.94:60000"); 
    config.set("zookeeper.znode.parent", "/hbase-unsecure"); 

あなたはどのようにハイブJDBC APIを使用して相互作用としてではなく別の方法でそれを考えることができます。

+0

RAMを明確化していただきありがとうございます。 – Jam