1
我有多個小輸入文件。對於運行圖減少工作有多個輸入文件,這將是該命令:帶HAR文件輸出的MapReduce作業
hadoop jar <jarname> <packagename.classname> <input_dir> <output>
但如果萬一上述<輸出>只是一個文本文件,應該是一個HAR
文件會是怎樣的命令這樣MapReduce作業的所有輸出都是HAR檔案?
我有多個小輸入文件。對於運行圖減少工作有多個輸入文件,這將是該命令:帶HAR文件輸出的MapReduce作業
hadoop jar <jarname> <packagename.classname> <input_dir> <output>
但如果萬一上述<輸出>只是一個文本文件,應該是一個HAR
文件會是怎樣的命令這樣MapReduce作業的所有輸出都是HAR檔案?
您在示例中執行的MapReduce作業無法將其輸出直接寫入har文件。相反,您可以在MapReduce作業之後運行hadoop archive
作爲後處理步驟,以將MapReduce作業輸出打包到har文件中。
> hadoop jar */share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount /README.txt /wordcountout
> hdfs dfs -ls /wordcountout
Found 2 items
-rw-r--r-- 3 chris supergroup 0 2015-12-16 11:28 /wordcountout/_SUCCESS
-rw-r--r-- 3 chris supergroup 1306 2015-12-16 11:28 /wordcountout/part-r-00000
> hadoop archive -archiveName wordcountout.har -p /wordcountout /archiveout
> hdfs dfs -ls har:///archiveout/wordcountout.har
Found 2 items
-rw-r--r-- 3 chris supergroup 0 2015-12-16 12:17 har:///archiveout/wordcountout.har/_SUCCESS
-rw-r--r-- 3 chris supergroup 1306 2015-12-16 12:17 har:///archiveout/wordcountout.har/part-r-00000
您可以選擇刪除原始內容(/wordcountout
目錄在我的例子),如果僅在哈日格式具有數據足以滿足您的需求。
有關hadoop archive
命令的更多信息,請訪問:
http://hadoop.apache.org/docs/r2.7.1/hadoop-archives/HadoopArchives.html
嗨@ChrisNauroth感謝您的答覆,所以沒有指定MapReduce工作爲'HAR'的輸出方式? –
@JamesCarlNecio,不,沒有辦法將輸出指定爲直接指向har。部分難點在於多個併發reduce任務不可能寫入同一個har文件。標準的解決方案是運行'hadoop archive'作爲後處理步驟。 –
好的,謝謝,將把你的答案作爲我的問題的解決方案。 –