2016-05-07 124 views
0

如果我有输入和输出这样一个命令行程序:Hadoop的二进制文件

md5sum < hadoop-2.7.2.tar.gz 
c442bd89b29cab9151b5987793b94041 - 

如何可以在使用Hadoop我跑? 这似乎是一个embarassingly简单的问题,但没有我想的解决方案已经产生正确的输出:

也许,我只是WASN”能够正确地按照说明进行操作。所以,请详细解释一下,或者至少在有用的文档中。

+0

你的问题到底是什么?您定位的是哪部分Hadoop?你只是试图使用mapreduce在数据上运行Linux命令吗? –

+0

md5sum只是具有相同接口的其他程序的占位符。它期望整个文件中的二进制输入并创建文本输出。这将在许多文件(~100000个文件)上执行很多次,并在程序设置中稍作修改。将需要一个群集,我想使用Hadoop来分发作业。这些文件需要存储在HDFS中,并且应该有数据局部性。所以,是的,我只是试图使用mapreduce和HDFS在数据上运行Linux命令。 –

+0

你可以看到[如何阅读Hadoop中的单个文件](http://stackoverflow.com/questions/17875277/reading-file-as-single-record-in-hadoop),然后是你想运行的任何Java代码在那个文件上。如果你不理解mapreduce的概念,那么运行和理解wordcount的hello world例子会很好。 –

回答

0

您可能可以使用WholeFileInputFormathadoop streaming。您可能遇到的问题是,如果您有大量想要完整阅读的文件 - 但如果您有强烈的要求将整个文件作为输入到您的program,那么您应该确保输入合理或找到更好的算法,充分接受MR的分裂和可扩展性。