今、db テーブルからデータをエクスポートし、hdfs に書き込もうとしています。
問題は、名前ノードがボトルネックになるかどうかです。ノードキャッシュにスライス(64MB)を指定してからデータノードに渡す仕組みはどうですか?
hdfsを書くよりも良い方法はありますか? 並列処理を利用していないと思うからです。
ありがとう:)
今、db テーブルからデータをエクスポートし、hdfs に書き込もうとしています。
問題は、名前ノードがボトルネックになるかどうかです。ノードキャッシュにスライス(64MB)を指定してからデータノードに渡す仕組みはどうですか?
hdfsを書くよりも良い方法はありますか? 並列処理を利用していないと思うからです。
ありがとう:)
Sqoop の使用を検討しましたか。Sqoop を使用して、JDBC をサポートする任意の DB からデータを抽出し、HDFS に配置できます。
http://www.cloudera.com/blog/2009/06/introducing-sqoop/
Sqoop インポート コマンドは、実行するマップ ジョブの数を取得します (デフォルトは 1 です)。また、作業を並列化する (マップ タスク > 1) 間、分割列を指定するか、Sqoop がテーブルのシーケンス キーに基づいて推測します。各マップ ファイルは、ディレクトリ内の結果用に個別のファイルを作成します。膨大な数のファイルが大量に作成されない限り、NN はボトルネックにはなりません (NN はファイルに関するメタデータをメモリに保持します)。
Sqoop は、ソース DB (Oracle、MySQL など) を解釈し、JDBC チャネルの代わりに mysqldump や import などの DB 固有のツールを使用してパフォーマンスを向上させることもできます。