Java 带有HAR文件输出的MapReduce作业

Java 带有HAR文件输出的MapReduce作业,java,mapreduce,hdfs,har,Java,Mapreduce,Hdfs,Har,我有多个小的输入文件。对于使用多个输入文件运行map reduce作业,以下命令将是: hadoop jar <jarname> <packagename.classname> <input_dir> <output> hadoop jar 但是,如果上述只是一个文本文件,并且应该是一个HAR文件,那么命令是什么,使得MapReduce作业的所有输出都是一个HAR存档?在示例中执行的MapReduce作业不能将其输出直接写入HAR文件。相反,您

我有多个小的输入文件。对于使用多个输入文件运行map reduce作业,以下命令将是:

hadoop jar <jarname> <packagename.classname> <input_dir> <output>
hadoop jar
但是,如果上述只是一个文本文件,并且应该是一个
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
如果仅使用har格式的数据就足以满足您的需要,您可以选择删除原始内容(在我的示例中为
/wordcountout
目录)

有关hadoop archive命令的更多信息,请访问:


Hi@ChrisNauroth感谢您的响应,因此无法将MapReduce作业的输出指定为
HAR
?@JamesCarlNecio,不,无法将输出指定为直接到HAR。部分困难在于多个并发reduce任务不可能写入同一个har文件。标准解决方案是运行
hadoop archive
作为后处理步骤。好的,谢谢,我会将您的答案设置为我问题的解决方案。