0

2 つの bzip2 ファイルをマージしたいと考えています。1 つを別のものに追加しようとしました:cat file1.bzip2 file2.bzip2 > out.bzip2これは機能しているように見えます (このファイルは正しく解凍されています) が、このファイルを Hadoop 入力ファイルとして使用したいのですが、破損したブロックに関するエラーが発生します。

解凍せずに 2 つの bzip2 ファイルをマージする最良の方法は何ですか?

4

4 に答える 4

2

連結されたbzipの処理はトランクで修正されているか、https ://issues.apache.org/jira/browse/HADOOP-4012である必要があります。動作する例があります:https ://issues.apache.org/jira/browse/MAPREDUCE-477?focusedCommentId = 12871993&page = com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel# action_12871993最近のバージョンのHadoopを再実行すると、問題ないはずです。

于 2010-07-08T02:57:40.213 に答える
1

両方を新しい bz2 に圧縮 (保存) できますか? 2 つのアーカイブの内容を取得するには 3 回の解凍が必要ですが、シナリオによってはうまくいく可能性があります。

于 2010-07-02T18:19:57.730 に答える
0

Hadoop 入力として使用するためにファイルをマージする必要はありません。

  • 考慮file_name*- パターン;
  • file_name_1,file_name_2- 入力のリスト。

そして、Hadoop がそれを処理します。

それ以外の場合は、Hadoop のストリーミングを使用してそれらを (解凍して) マージできます。

次のようなパターンでファイルのリストを生成できます。

FILES_LIST="'ls -m template*.bz2'"

INPUT_FILE="'echo $FILES_LIST | tr -d ' ' '"

内側の'引用符は異なる必要があります。$INPUT_FILECLI 経由でスクリプトに変数として渡すことができます。

また、CombineFileInputFormatクラスを InputFormat と見なします。

于 2013-01-03T01:26:17.263 に答える