大数据技术原理与应用(第2版教材).ppt

上传人:创****公 文档编号:75988384 上传时间:2023-03-06 格式:PPT 页数:47 大小:3.40MB
返回 下载 相关 举报
大数据技术原理与应用(第2版教材).ppt_第1页
第1页 / 共47页
大数据技术原理与应用(第2版教材).ppt_第2页
第2页 / 共47页
点击查看更多>>
资源描述

《大数据技术原理与应用(第2版教材).ppt》由会员分享,可在线阅读,更多相关《大数据技术原理与应用(第2版教材).ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨厦门大学计算机科学系 2017年2月版本林子雨林子雨厦门大学计算机科学系厦门大学计算机科学系E-mail:主页:主页:http:/ MapReduce(PPT版本号:版本号:2017年年2月版本)月版本)http:/ 概述概述7.2 MapReduce体系结构体系结构7.3 MapReduce工作流程工作流程7.4 实例分析:实例分析:WordCount7.5 MapReduce的具体应用的具体应用7.6 MapReduce编程实践编程实践欢迎访问大数据技术原理与应用教材官方网站:http:/ WordCount程序任务程序WordCou

2、nt输入一个包含大量单词的文本文件输出文件中每个单词及其出现次数(频数),并按照单词字母顺序排序,每个单词和其频数占一行,单词和频数之间有间隔表7-3 一个WordCount的输入和输出实例输入输出Hello WorldHello HadoopHello MapReduceHadoop 1Hello 3MapReduce 1World 1大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨7.4.2WordCount设计思路首先,需要检查WordCount程序任务是否可以采用MapReduce来实现其次,确定MapReduce程序的设计思路最后,确定MapReduce程序的执行过程大数据技

3、术原理与应用(第2版)厦门大学计算机科学系林子雨7.4.3一个WordCount执行过程的实例图7-7Map过程示意图大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨7.4.3一个WordCount执行过程的实例图7-8用户没有定义Combiner时的Reduce过程示意图大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨7.4.3一个WordCount执行过程的实例图7-9用户有定义Combiner时的Reduce过程示意图大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨7.5MapReduce的具体应用MapReduce可以很好地应用于各种计算问题关系代数运算(选择、

4、投影、并、交、差、连接)分组与聚合运算矩阵-向量乘法矩阵乘法大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨7.5MapReduce的具体应用假设有关系R(A,B)和S(B,C),对二者进行自然连接操作使用Map过程,把来自R的每个元组转换成一个键值对b,,其中的键就是属性B的值。把关系R包含到值中,这样做使得我们可以在Reduce阶段,只把那些来自R的元组和来自S的元组进行匹配。类似地,使用Map过程,把来自S的每个元组,转换成一个键值对b,所有具有相同B值的元组被发送到同一个Reduce进程中,Reduce进程的任务是,把来自关系R和S的、具有相同属性B值的元组进行合并Reduce

5、进程的输出则是连接后的元组,输出被写到一个单独的输出文件中用用MapReduce实现关系的自然连接实现关系的自然连接大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨7.5MapReduce的具体应用用用MapReduce实现关系的自然连接实现关系的自然连接大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨7.6MapReduce编程实践7.6.1任务要求7.6.2编写Map处理逻辑7.6.3编写Reduce处理逻辑7.6.4编写main方法7.6.5编译打包代码以及运行程序7.6.6Hadoop中执行MapReduce任务的几种方式详细编程实践指南请参考厦门大学数据库实验室建设的

6、中国高校大数据课程公共服务平台的技术文章:大数据原理与应用大数据原理与应用 第七章第七章 MapReduce 学习指学习指南南,访问地址:,访问地址:http:/ is my motherlandI love China文件文件B的内容如下:的内容如下:I am from China期望结果期望结果如如右侧所示右侧所示:I 2is 1China 3my 1love 1am 1from 1motherland 1大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨7.6.2编写Map处理逻辑Map输入类型为期望的Map输出类型为Map输入类型最终确定为Map输出类型最终确定为public s

7、tatic class MyMapper extends Mapper private final static IntWritable one=new IntWritable(1);private Text word=new Text();public void map(Object key,Text value,Context context)throws IOException,InterruptedException StringTokenizer itr=new StringTokenizer(value.toString();while(itr.hasMoreTokens()wor

8、d.set(itr.nextToken();context.write(word,one);大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨7.6.3编写编写Reduce处理逻辑处理逻辑在Reduce处理数据之前,Map的结果首先通过Shuffle阶段进行整理Reduce阶段的任务:对输入数字序列进行求和Reduce的输入数据为Reduce任务的输入数据:”I”,”China”,大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨public static class MyReducer extends Reducer private IntWritable result=new

9、IntWritable();public void reduce(Text key,Iterable values,Context context)throws IOException,InterruptedException int sum=0;for(IntWritable val:values)sum+=val.get();result.set(sum);context.write(key,result);7.6.3编写编写Reduce处理逻辑处理逻辑大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨7.6.4编写main方法public static void main(Stri

10、ng args)throws Exception Configuration conf=new Configuration();/程序运行时参数 String otherArgs=new GenericOptionsParser(conf,args).getRemainingArgs();if(otherArgs.length!=2)System.err.println(Usage:wordcount );System.exit(2);Job job=new Job(conf,word count);/设置环境参数 job.setJarByClass(WordCount.class);/设置整

11、个程序的类名 job.setMapperClass(MyMapper.class);/添加MyMapper类 job.setReducerClass(MyReducer.class);/添加MyReducer类 job.setOutputKeyClass(Text.class);/设置输出类型 job.setOutputValueClass(IntWritable.class);/设置输出类型 FileInputFormat.addInputPath(job,new Path(otherArgs0);/设置输入文件 FileOutputFormat.setOutputPath(job,new

12、Path(otherArgs1);/设置输出文件 System.exit(job.waitForCompletion(true)?0:1);大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨import java.io.IOException;import java.util.StringTokenizer;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.

13、io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.Mapper;import org.apache.hadoop.mapreduce.Reducer;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import org.apache.hadoop.util.GenericOptions

14、Parser;public class WordCount/WordCount类的具体代码见下一页完整代码大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨public class WordCount public static class MyMapper extends Mapper private final static IntWritable one=new IntWritable(1);private Text word=new Text();public void map(Object key,Text value,Context context)throws IOExce

15、ption,InterruptedException StringTokenizer itr=new StringTokenizer(value.toString();while(itr.hasMoreTokens()word.set(itr.nextToken();context.write(word,one);public static class MyReducer extends Reducer private IntWritable result=new IntWritable();public void reduce(Text key,Iterable values,Context

16、 context)throws IOException,InterruptedException int sum=0;for(IntWritable val:values)sum+=val.get();result.set(sum);context.write(key,result);public static void main(String args)throws Exception Configuration conf=new Configuration();String otherArgs=new GenericOptionsParser(conf,args).getRemaining

17、Args();if(otherArgs.length!=2)System.err.println(Usage:wordcount );System.exit(2);Job job=new Job(conf,word count);job.setJarByClass(WordCount.class);job.setMapperClass(MyMapper.class);job.setReducerClass(MyReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);F

18、ileInputFormat.addInputPath(job,new Path(otherArgs0);FileOutputFormat.setOutputPath(job,new Path(otherArgs1);System.exit(job.waitForCompletion(true)?0:1);大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨7.6.5编译打包代码以及运行程序实验步骤实验步骤:使用java编译程序,生成.class文件将.class文件打包为jar包运行jar包(需要启动Hadoop)查看结果大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨7.6.5

19、编译打包代码以及运行程序Hadoop 2.x 版本中的依赖版本中的依赖 jarHadoop2.x版本中jar不再集中在一个hadoop-core*.jar中,而是分成多个jar,如使用Hadoop2.6.0运行WordCount实例至少需要如下三个jar:$HADOOP_HOME/share/hadoop/common/hadoop-common-2.6.0.jar$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.6.0.jar$HADOOP_HOME/share/hadoop/common/lib/commo

20、ns-cli-1.2.jar通过命令hadoop classpath可以得到运行Hadoop程序所需的全部classpath信息大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨7.6.5编译打包代码以及运行程序将Hadoop的classhpath信息添加到CLASSPATH变量中,在/.bashrc中增加如下几行:export HADOOP_HOME=/usr/local/hadoop export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH执行source/.bashrc使变量生效,接着就可以通过javac命令编译WordCount.java接着把.class文件打包成jar,才能在Hadoop中运行:运行程序:大数据技术原理与应用(第2版)厦门大学计算机科学系林子雨7.6.5编译打包代码以及运行程序请参考厦门大学数据库实验室出品教程大数据原理与应用大数据原理与应用 第七章第七章 MapReduce 学习指南学习指南在“大数据课程学生服务站”中的第七章学习指南链接地址http:/ of Computer Science,Xiamen University,2017

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文献 > 事务文书

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁