いくつかの地球物理データ(地震データ)が含まれているファイルがあります。これらのファイルをローカルファイルシステムから読み込み、HDFSにHadoop Sequentialファイルとして保存しています。MapperまたはReducerから値リストを発行するにはどうすればよいですか?
これらのSequentialファイルから値を読み取り、それらをHBaseテーブルに格納できるMapReduceジョブを作成します。これらのファイルは単なるフラットファイルではありません。代わりに、多くの部分で構成されます。各部分は240バイトのブロックで、いくつかのフィールドがあります。各フィールドは、短いものでも整数でもよい。私は、ブロック番号をキーとして使用し、240バイトのバイト配列(すべてのフィールドを含む)をSequentialファイルの値として使用しています。したがって、各シーケンシャルファイルには、すべてのブロックがバイト配列とそのブロック番号として格納されます。
私の質問は、このようなファイルを処理する際に、240バイトのブロックを一度に読み取って、個々のフィールドを読み込んで、240バイトのブロックが完了した後、 1000ブロックあるファイルがあるとします。だから私のMapReduceプログラムでは、これらのブロックを一度に1つずつ読み込み、各フィールドを抽出して(ショートまたはint)、すべてのフィールドを1つのマップの結果として出力する必要があります。
私はいくつかの助けが必要です。
謝:返信してくれてありがとうございます。実際には、私はすでにシーケンシャルファイルを持っています(ブロックではなく、ブロック全体を含む240バイトの配列です) – Tariq