0

3 ノードの Apache Hadoop クラスターの HDFS にSegYファイルをロードしたいと考えています。

要約すると、SegY ファイルは以下で構成されます。

  1. 3200 バイトのテキスト ヘッダー
  2. 400 バイトのバイナリ ヘッダー
  3. 可変バイトデータ

ファイルの 99.99% のサイズは、数千の連続したトレースのコレクションである可変バイト データによるものです。SegY ファイルを意味のあるものにするには、テキスト ヘッダー + バイナリ ヘッダー + 少なくとも 1 つのデータのトレースが含まれている必要があります。私が達成したいのは、大きな SegY ファイルを Hadoop クラスターに分割して、各ノードで小さな SegY ファイルをローカル処理に使用できるようにすることです。

シナリオは次のとおりです。

  1. SegY ファイルのサイズが大きく (10GB 以上)、NameNode マシンのローカル ファイル システムに保存されています。
  2. ファイルは、各ノードが厳密な構造を持つ小さなSegYファイルを持つように、ノード上で分割されます - 3200 バイトのテキスト ヘッダー+ 400 バイトのバイナリ ヘッダー+ 可変バイトデータfs -copyFromLocal は、より大きなファイルのチャンクが必要な形式を保証しない可能性があるためです
4

1 に答える 1

0

同様のことを行うGithubプロジェクトがあるようです:

load コマンドsuhdpは、ローカル マシン上の SEG-Y または SU 形式のファイルを取得し、Hadoop で使用できるようにフォーマットして、Hadoop クラスターにコピーします。

suhdp load -input <local SEG-Y/SU files> -output <HDFS target> [-cwproot <path>]

それはまさにあなたが必要としているものではないかもしれませんが、SEG-Y ファイルを HDFS にロードする最も簡単な方法のようです。

于 2013-01-16T06:58:36.587 に答える