-1

Hadoop を使用して MYSQL のような RDBMS に接続する場合、通常、DB から DBWritable および Writable を拡張するユーザー定義クラスにレコードを取得します。SQL クエリが N 個のレコードを出力として生成する場合、レコードをユーザー定義クラスに読み込む操作は N 回行われます。毎回 1 レコードではなく、より多くのレコードを同時にマッパーに入れる方法はありますか?

4

1 に答える 1

1

私の理解が正しければ、Hadoop が内部で NSELECTステートメントを引き起こすと考えているでしょう。そうではありません。DBInputFormatの sourceでわかるように、Hadoop が適合すると判断したものに基づいて行のチャンクを作成します。

明らかに、各マッパーはクエリを実行して処理するデータを取得する必要があり、繰り返し実行する可能性がありますが、それでもテーブルの行数にはほど遠いです。

ただし、パフォーマンスが低下する場合は、データを HDFS / Hive にダンプして、そこから処理する方がよい場合があります。

于 2013-04-01T17:57:26.840 に答える