0

我想将SegY文件加载到 3 节点 Apache Hadoop 集群的 HDFS 上。

总而言之,SegY 文件包括:

  1. 3200 字节的文本头
  2. 400字节二进制头
  3. 可变字节数据

文件的 99.99% 大小是由于可变字节数据是数千个连续跟踪的集合。为了使任何 SegY 文件有意义,它必须具有文本标题 + 二进制标题 + 至少一条数据轨迹。我想要实现的是将一个大的 SegY 文件拆分到 Hadoop 集群上,以便在每个节点上都有一个较小的 SegY 文件用于本地处理。

场景如下:

  1. SegY 文件很大(10GB 以上),位于 NameNode 机器的本地文件系统上
  2. 该文件将在节点上以这样的方式拆分,每个节点都有一个具有严格结构的小 SegY 文件 - 3200 字节文本头+ 400 字节二进制头+ 可变字节数据 显然,我不能盲目使用 FSDataOutputStream 或 hadoop fs -copyFromLocal 因为这可能无法确保需要较大文件块的格式
4

1 回答 1

0

似乎有一个 Github 项目做类似的事情:

加载命令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 回答