我已经在Apache Hadoop 0.2.x版本中编写了一些MapReduce程序-简单来说,我是一个初学者。
我正在尝试使用称为SegY的软件在Linux机器上处理较大(超过10GB)的SeismicUnix文件。
列出了我在Linux机器上执行的基本命令:
//Read SegY file and convert to custom format (.su file)
segyread tape=input.sgy verbose=1 endian=0 | segyclean >input.su
//PIPE-SEPARATE the processing commands viz. suhilb and suaccor
suhilb | suaccor ntout=1001 sym=0 < Noise1_10.su > output.su
//Create headers for converting back to SegY format
segyhdrs < output.su bfile=binary hfile=header
//Create the final output file in SegY format
segywrite <output.su tape=output.segy buff=1 conv=1 bfile=binary hfile=header
这些步骤在一台机器上花费很长时间,因此,已经设置了Apache Hadoop集群以加快处理速度。
根据我的思考过程:
技术查询/挑战:
我读了一些有关Google FlumeJava的解决方案的信息,但我想坚持使用仅限Hadoop的方法,即目前还没有库方法。
抱歉,如果我没有深入/简短地询问我-实际上,我无法清楚了解设计/代码!
最佳答案
回答与您的查询相对应的分数,
HDFS
上。要加载到HDFS
中,您应该查看Sqoop等开源工具。 output.segy
进行排序。您使用的示例密钥可以是文件名。因此,各种输出文件的所有数据都被路由到一个reducer,从而生成了一个输出部分-r-000文件。