2013-01-16 30 views
0

我想將SegY文件加載到3節點Apache Hadoop集羣的HDFS上。使用自定義塊結構將文件加載到HDFS

總之,SEGY文件包括:

  1. 3200字節文本標題
  2. 400字節二進制標頭
  3. 可變字節數據

99.99 %文件的大小是由於變量字節d這是數以千計的連續痕跡的集合。對於任何SegY文件有意義,它必須具有文本頭+二進制頭+至少一個數據的軌跡。 我想要實現的是將大型SegY文件拆分到Hadoop集羣上,以便在每個節點上都可以使用較小的SegY文件進行本地處理。

的情況如下:

  1. 的SEGY文件的大小(以上10GB)大,並且NameNode的機器的本地文件系統上擱置
  2. 該文件是要在分割中的每個節點具有帶有嚴格結構的小SEGY文件這樣的方式的節點 - 3200個字節文本標題 + 400字節二進制標頭 +可變字節數據 如顯而易見的,我不能盲目使用FSDataOutputStream或hadoop的FS -copyFromLocal因爲這可能無法確保它們需要更大的文件塊的格式

回答

0

似乎是a Github project,做類似的事情:

LOAD命令suhdp將採取SEG-Y或SU格式化將文件格式化爲與Hadoop一起使用,然後將它們複製到Hadoop羣集。

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

這也許不是正是你需要的,但是,這似乎是我能找到SEG-Y文件加載到HDFS的最簡單方法。

+0

我一直在使用它一段時間,但我不想使用它(它使用緊縮庫,它基於Google FlumeJava等) - 我只是想使用普通Hadoop將文件拆分爲可選的其他罐子。 –

相關問題