您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > MapReduce的工作机制PPT演示课件
Hadoop之MapReduce的工作机制周涌2013年3月211提纲1.概述1.1什么是MapReduce1.2MapReduce的用途1.3MapReduce作业和任务1.4MapReduce中的数据流2.MapReduce的工作机制2.1作业运行过程中的4个实体2.2作业运行机制2.3shuffle和排序21.1什么是MapReduceMapReduce是一种并行编程模型,用于对大规模数据集(大于1TB)的并行处理。Hadoop中实现了MapReduce框架,为用户提供MapReduce程序的开发接口和运行环境。31.1什么是MapReduceMapReduce是一种并行编程模型,用于对大规模数据集(大于1TB)的并行处理。Hadoop中实现了MapReduce框架,为用户提供MapReduce程序的开发接口和运行环境。统计词频的例子41.2MapReduce的用途在Google,MapReduce用在非常广泛的应用程序中,如分布grep,分布排序,web访问日志分析,反向索引构建,文档聚类,机器学习,基于统计的机器翻译。值得注意的是,MapReduce实现以后,它被用来重新生成Google的整个索引。总来的说MapReduce是用于大规模数据的并行处理。51.3MapReduce作业和任务MapReduce作业(Job)是指客户端需要执行的一个工作单元(它包括输入数据、MapReduce程序和配置信息)。Hadoop将作业分成若干个小任务(Task)来执行,其中包括两类任务:map任务和reduce任务。61.4MapReduce中的数据流Hadoop将输入数据划分成等长的小数据块,称为分片(split);一个合理的分片大小趋向于HDFS的一个块的大小,默认是64M;在存有输入数据的节点上运行map任务可以获得最佳性能,这就是所谓的本地化优化。71.4MapReduce中的数据流具有3个map任务和2个reduce任务的MapReduce数据流8提纲2.MapReduce的工作机制2.1作业运行过程中的4个实体2.2作业运行机制2.3shuffle和排序92.1作业运行过程中的4个实体客户端Client:用于提交MapReducejobJobTracker:用户提交作业的服务器,同时它还负责各个作业任务的分配,管理所有的任务服务器。TaskTracker:任劳任怨的工蜂,负责执行具体的任务(map任务或reduce任务)。HDFS:hadoop分布式文件系统,用于在各个进程间共享Job相关的文件102.2作业运行机制作业的提交:1.执行runjob()方法创建一个JobClient实例;2.向JobTracker请求一个新的作业Id,检查作业的输出说明,计算作业的输入分片;3.复制作业资源(Jar文件、配置文件和计算所得分片信息)到以作业ID命名的的目录下的Jobtracker的文件系统下4.调用Jobtracker的submitjob()方法来通知Jobtracker作业准备执行112.2作业运行机制作业的初始化:5.创建一个表示正在运行作业的对象——封装任务和记录信息,以便跟踪任务的状态和进程6.获取已经计算好的输入分片信息,为每一个分片创建一个map任务(reduce任务的个数由用户配置),将任务放入任务列表122.2作业运行机制任务的分配:7.TaskTracker定期发送“心跳”给JobTracker.“心跳”告知JobTracker它是否存活,同时也充当两者之间的消息通道。Jobtracker为tasktracker选择任务之前,必须先选定任务所在的作业。选择map任务时,jobtracker会考虑tasktracker的网络位置,选在一个距离其输入分片最近的tasktracker13任务的执行8.把作业的JAR文件等资源复制到TaskTracker所在的文件系统;然后Tasktracker解压JAR文件到本地目录;第三步,新建一个TaskRunner实例来运行该任务9.TaskRunner启动一个新的JVM10.在JVM运行任务2.2作业运行机制142.3shuffle和排序MapReduce确保每个Reducer的输入都是按键排序。系统执行排序的过程——将map的输出作为输入传给reduce——称为shuffle。15补充:Hadoop的应用1610个Hadoop的应用场景美国着名科技博客GigaOM的专栏作家DerrickHarris跟踪云计算和Hadoop技术已有多年时间,他也在最近的一篇文章中总结了的应用场景,下面分享给大家:在线旅游:你知道吗,目前全球范围内80%的在线旅游网站都是在使用Cloudera公司提供的Hadoop发行版,其中SearchBI网站曾经报道过的Expedia也在其中。移动数据:Cloudera运营总监称,美国有70%的智能手机数据服务背后都是由Hadoop来支撑的,也就是说,包括数据的存储以及无线运营商的数据处理等,都是在利用Hadoop技术。电子商务:这一场景应该是非常确定的,eBay就是最大的实践者之一。国内的电商在Hadoop技术上也是储备颇为雄厚的。能源开采:美国Chevron公司是全美第二大石油公司,他们的IT部门主管介绍了Chevron使用Hadoop的经验,他们利用Hadoop进行数据的收集和处理,其中这些数据是海洋的地震数据,以便于他们找到油矿的位置。节能:另外一家能源服务商Opower也在使用Hadoop,为消费者提供节约电费的服务,其中对用户电费单进行了预测分析。1710个Hadoop的应用场景基础架构管理:这是一个非常基础的应用场景,用户可以用Hadoop从服务器、交换机以及其他的设备中收集并分析数据。图像处理:创业公司SkyboxImaging使用Hadoop来存储并处理图片数据,从卫星中拍摄的高清图像中探测地理变化。诈骗检测:这个场景用户接触的比较少,一般金融服务或者政府机构会用到。利用Hadoop来存储所有的客户交易数据,包括一些非结构化的数据,能够帮助机构发现客户的异常活动,预防欺诈行为。IT安全:除企业IT基础机构的管理之外,Hadoop还可以用来处理机器生成数据以便甄别来自恶意软件或者网络中的攻击。医疗保健:医疗行业也会用到Hadoop,像IBM的Watson就会使用Hadoop集群作为其服务的基础,包括语义分析等高级分析技术等。医疗机构可以利用语义分析为患者提供医护人员,并协助医生更好地为患者进行诊断。18Hadoop能胜任各种大规模数据的存储和处理19Hadoop在Facebook的使用在Facebook,对Hadoop至少有下面四种相互关联但又不同的用法。在大规模数据上产生以天和小时为单位的概要信息。这些概要信息在公司内用于各种不同的目的:基于这些概要信息产生的报告,可供工程或非工程职能组用来制定产品决策。概要信息包含用户数、网页浏览次数和网站访问时间的增长情况提供在Facebook上进行广告营销活动的相关的效果数据对网站属性的后台处理,比如计算你喜欢的人和应用程序在历史数据上运行即时作业。数据分析结果有助于产品组和执行主管解决问题。成为我们日志数据集的实用而长期的存档存储器。通过特定的属性进行日志事件查询(用这些属性对日志建立索引),这可以用于维护网站的完整性并且保护用户免受垃圾邮件程序的侵扰。20Hadoop在Facebook的使用Facebook的数据仓库架构(Web站点的典型Hadoop架构)(Scribe组件)(HiveonHadoopcluster)(NFSServer)21Hadoop在淘宝网的一个实际应用案例定制化搜索项目,在用户收藏或购买过的店铺内搜索宝贝。使用Hive替代自己编写MapReduceJob的方案。22需要处理的数据1、用户的收藏信息。包括两个文件,一个是用户的收藏条目(collect_item);另一个是收藏条目的详细信息(collect_info)。收藏信息只有全量数据。collect_item和collect_info均有数百GB。2、用户的购买信息(pay)。购买信息以增量的方式每天产生一个文件。由于数据量比较大,目前只使用三个月的数据。3、因为前端只能使用卖家的数字id去搜索宝贝,而collect_item没有卖家的数字id,因此必须连接用户数据文件。用户数据文件有数百GB。23处理过程1、连接collect_item和用户表,生成新表t1。2、连接t1和collect_info,生成新表t2。3、将交易表做去重处理,生成新表t3。4、对t2和t3分别使用UDAF处理,生成如下结构(大概数千万条)。doctype=0#type为0表示收藏记录,type为1表示购买记录cid=99999643#用户的数字idnick=ltvlyc#用户的昵称sid=34755926345891714593849912999374770211586320857231804838#关联的卖家数字id列表/doc24建Hive表$HIVECREATEEXTERNALTABLEcustomed_search_collect_item_$day(collect_item_idstring,titlestring,t3string,seller_id_strstring,seller_nickstring,t6string)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\t'STOREDASTEXTFILELOCATION'$itemPath';;25编写UDAF使用Java编写UDAF以聚合同一key的数据,即和同一个买家相关的卖家。$HIVEaddjar$WORKDIR/UDAF_2.0.jar;createtemporaryfunctioncustomed_search_joinas'taobao.GenerateXML';setmapred.reduce.tasks=300;sethive.exec.compress.output=false;INSERTOVERWRITETABLEcustomed_search_pay_XML_$dayselectcustomed_search_join(1,winner_id_dig,winner_nick,seller_id_dig)fromcustomed_search_pay_temp_$daygroupbywinner_id_dig;;26
本文标题:MapReduce的工作机制PPT演示课件
链接地址:https://www.777doc.com/doc-6832547 .html