我想将SegY文件加载到 3 节点 Apache Hadoop 集群的 HDFS 上。
总而言之,SegY 文件包括:
- 3200 字节的文本头
- 400字节二进制头
- 可变字节数据
文件的 99.99% 大小是由于可变字节数据是数千个连续跟踪的集合。为了使任何 SegY 文件有意义,它必须具有文本标题 + 二进制标题 + 至少一条数据轨迹。我想要实现的是将一个大的 SegY 文件拆分到 Hadoop 集群上,以便在每个节点上都有一个较小的 SegY 文件用于本地处理。
场景如下:
- SegY 文件很大(10GB 以上),位于 NameNode 机器的本地文件系统上
- 该文件将在节点上以这样的方式拆分,每个节点都有一个具有严格结构的小 SegY 文件 - 3200 字节文本头+ 400 字节二进制头+ 可变字节数据 显然,我不能盲目使用 FSDataOutputStream 或 hadoop fs -copyFromLocal 因为这可能无法确保需要较大文件块的格式