2016-05-07 123 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的分裂和可擴展性。