排序mapreduce数据集

ukxgm1gy  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(280)

我正在尝试运行以下项目来对数据集进行排序。
但是,当我执行命令时: Hadoop jar xx.jar /inputdir /output dir ,终端出现以下错误:

org.apache.hadoop.mapred.InvalidJobConfException: Output directory not set.

项目自述文件中提到:

hadoop jar mrss-0.1.jar demo.SsJob -Dmapred.input.dir=data-stock -Dmapred.output.dir=result-stock

以下是该项目的链接:
https://vangjee.wordpress.com/2012/03/20/secondary-sorting-aka-sorting-values-in-hadoops-mapreduce-programming-paradigm/#comment-2342

wn9m85ua

wn9m85ua1#

您需要为从输入路径读取的输入格式和写入输出路径的输出格式添加参数。下面是一个如何提交作业的示例:

// Create a new Job
 Job job = Job.getInstance();
 job.setJarByClass(MyJob.class);

 // Specify various job-specific parameters     
 job.setJobName("myjob");

 job.setInputPath(new Path("in"));
 job.setOutputPath(new Path("out"));

 job.setMapperClass(MyJob.MyMapper.class);
 job.setReducerClass(MyJob.MyReducer.class);

 // Submit the job, then poll for progress until the job is complete
 job.waitForCompletion(true);

或者可以在执行jar时通过在命令行中使用-d选项传递参数来传递这个消息。

qv7cva1a

qv7cva1a2#

我知道这很尴尬。。。但是你需要在-d之后提供一个空间。i、 e“-dmapred.output.dir”应指定为“-d mapred.output.dir”。
这是因为-d配置传递在hadoop中不能像在普通jvm配置中那样工作。
hadoop权威指南中有更多关于这方面的细节。
但你的问题呢?空间就是解决方案。

相关问题