1

Postgres データベースから Accumulo データベースにデータを取得する必要があります。これを行うためにシーケンス ファイルを使用して map/reduce ジョブを実行したいと考えていますが、開始方法がわかりません。内部の技術的な理由から、Sqoop を避ける必要があります。

これは Sqoop なしで可能でしょうか? 繰り返しますが、どこから始めればよいか本当にわかりません。すべてのレコード (数百万) を JDBC に読み込み、何らかの形でそれを HDFS シーケンス ファイルに出力する Java クラスを作成する必要がありますか?

ご意見ありがとうございます。

PS - 区切りファイルを使用することが現在の問題であることを言及しておくべきでした。一部は区切り文字を含む長い文字フィールドであるため、正しく解析されません。フィールドにはタブが含まれている場合もあります。Postgres から HDFS に直接、解析せずに移行したかったのです。

4

3 に答える 3

0

データベースからデータを CSV、タブ区切り、パイプ区切り、または Ctrl-A (Unicode 0x0001) で区切られたファイルとしてエクスポートできます。次に、これらのファイルを HDFS にコピーし、非常に単純な MapReduce ジョブを実行できます。これは、Mapper だけで構成され、使用したファイル形式を読み取り、シーケンス ファイルを出力するように構成されている場合もあります。

これにより、Hadoop クラスターのサーバー間でシーケンス ファイルを作成するための負荷を分散できます。

また、ほとんどの場合、これは 1 回限りの取引ではありません。定期的に Postgres データベースから HDFS にデータをロードする必要があります。MapReduce ジョブを微調整して、新しいデータをマージすることができます。

于 2013-09-03T18:48:07.267 に答える