クラスターに大量のファイル (+/- 500 000) をロードする必要があり、非常に長い時間がかかります。各ファイルは gzip 形式で、80Mb の容量が必要です。
今のところ、put でファイルをロードするために while ループを使用していますが、おそらく最善の解決策があります...
ご協力ありがとうございます。
あなたが説明した方法で問題を理解するのは難しいです。
HDFS は、分割せずに gzip 圧縮をサポートします。ファイルはそれぞれ約 80MB であるため、分割は大きな問題ではありません。128MB 以上のブロック サイズを使用するようにしてください。
ファイルのアップロードについてですが、単純に -put コマンドでディレクトリ全体をアップロードしてみませんか?
hadoop fs -put local/path/to/dir path/in/hdfs
トリックを行います。
より高速なマップジョブ並列を使用してデータをロードする PivotalHD の DataLoader を調べることができるかもしれません。このリンクPivotalHD Dataloaderを確認してください。
https://github.com/endgameinc/binarypigにある Binarypig の BuildSequenceFileFromDir を使用できます。