假设我有一个二进制可执行文件,它将文件名作为参数,如'myprog file1 file2',它从file1读取并写入file2。二进制可执行文件不接受stdin并且不发出stdout。如何在hadoop流中使用此二进制可执行文件作为映射器或缩减器?谢谢!
答案 0 :(得分:1)
您必须先将数据保存为本地磁盘上的临时文件才能使用您的程序。然后,您可以从文件中读取结果。
然而,这违背了使用Hadoop处理数据的目的。将数据复制到本地磁盘并将结果读回Hadoop-land的开销会降低性能。
我建议对二进制可执行文件进行更改以允许通过stdin和stdout进行i / o。