项目4岗位数据处理.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2018;;任务4.1;Part 01;任务描述;任务目标;知识准备;任务实施;(1)定制MapReduce框架 MapReduce是一个计算框架,既然是做计算的框架,那么表现形式就是有个输入(input),MapReduce操作这个输入,通过本身定义好的计算模型,得到一个输出(output),这个输出就是所需要的结果。 这里需要学习的就是这个计算模型的运行规则。在运行一个MapReduce计算任务时,任务过程被分为两个阶段:Map阶段和Reduce阶段,每个阶段都是用键值对(key/value)作为输入(input)和输出(output)。而用户要做的就是定义好这两个阶段的函数:map函数和reduce函数。; public static class CleanJobReducer extends ReducerText, Text, Text, Text { public void reduce(Text key, IterableText values, Context context) throws IOException, InterruptedException { } } public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); conf.set(fs.defaultFS, hdfs://10.0.3.70:8020); String[] ioArgs = args; String[] otherArgs = new GenericOptionsParser(conf, ioArgs) .getRemainingArgs(); if (otherArgs.length != 2) { System.err.println(Usage: Data Deduplication in out); System.exit(2); };Job job = new Job(conf, Data Deduplication); job.setJarByClass(CleanJobMR.class); // 设置Map、Combine和Reduce处理类 job.setMapperClass(CleanJobMapper.class); job.setCombinerClass(CleanJobReducer.class); job.setReducerClass(CleanJobReducer.class); // 设置输出类型 job.setOutputKeyClass(Text.class); job.setOutputValueClass(Text.class); job.setOutputFormatClass(SequenceFileOutputFormat.class); // 设置输入和输出目录 FileInputFormat.addInputPath(job, new Path(otherArgs[0])); FileOutputFormat.setOutputPath(job, new Path(otherArgs[1])); System.exit(job.waitForCompletion(true) ? 0 : 1); } };接下来对这个框架结构进行详细的解析: 首先,看继承类CleanJobMapper。;reduce函数的输入也是一个key/value的形式,不过它的value是一个迭代器的形式IterableText values,也就是说reduce的输入是一个key对应一组value值,reduce也有context,其作用与map的context一致。 在MapReduce的处理过程中,由于MapReduce会在Map~Reduce???,将重复的Key合并在一起,所以MapReduce很容易就去除重复的行。 Map无须做任何处理,设置Map中写入context的东西为不作任何处理的行,也就是Map中最初处理的value即可,而Reduce同样无须做任何处理,写入输出文件的东西就是最初得到的Key。 具体如何定制map方法以及reduce方法,便是要结合数据清洗的逻辑来编写,这个在后续步骤中会进行说明。 此外,还有一个重要的main函数的调用,需要详细讲述。首先是:;请接着看如下代码:;Job job = new Job(conf, Data Deduplication); job.setJarByClass(

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档