大数据处理技术.ppt
《大数据处理技术.ppt》由会员分享,可在线阅读,更多相关《大数据处理技术.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、大数据处理技术大数据处理技术科信办科信办 刘伟刘伟2014年年4月月第一节第一节 Mapreduce编程模型编程模型第二节第二节 hadoop HDFS原理原理第三节第三节 nosql之之hbase第一节第一节 Mapreduce编程模型编程模型1.技术背景技术背景2.mapreduce的概念的概念3.mapreduce的编程模型原理的编程模型原理4mapreduce工作流程工作流程5.mapreduce的局限的局限1.技术背景:技术背景:分布式并行计算是大数据(pb)处理的有效方法,编写正确高效的大规模并行分布式程序是计算机工程领域的难题。并行计算的模型、计算任务分发、计算机结果合并、计算节
2、点的通讯、计算节点的负载均衡、计算机节点容错处理、节点文件的管理等方面都要考虑。为了解决上述复杂的问题,谷歌设计一个新的抽象模型,使用这个抽象模型,普通程序员只要表述他们想要执行的简单运算即可,而不必关心并行计算、容错、数据分布、负载均衡等复杂的细节,这些问题都被封装了,交个了后台程序来处理。这个模型就是mapreduce。谷歌2004年公布的mapreduce编程模型,在工业界、学术界产生巨大影响,以至于谈大数据必谈mapreduce。工业界试图做的事情就是要实现一个能够媲美或者比Googlemapreduce更好的系统,多年的努力下来,Hadoop(开源)脱颖而出,成为外界实现MapRed
3、uce计算模型事实上的标准,围绕着Hadoop,已经形成了一个庞大的生态系统。2.mapreduce的概念:的概念:MapReduce是一个编程模型,一个处理和生成超大数据集的算法模型的相关实现。简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。mapreduce成功的最大因素是它简单的编程模型。程序员只要按照这个框架的要求,设计map和reduce函数,剩下的工作,如分布式存储、节点调度、负载均衡、节点通讯、容错处理和故障恢复都由mapreduce框架(比如hadoop)自动完成,设计的程序有很高的扩展性。3.mapreduce的编程模型原理:的编程模型原理:开发人员用两个函
4、数表达这个计算:Map和Reduce。即:(input)=map(k1,v1)-list(k2,v2)=combine-=reduce(k2,list(v2)-list(v2)(output)单词统计单词统计单词统计单词统计map(Stringkey,Stringvalue):/key:documentname/value:documentcontentsforeachwordwinvalue:EmitIntermediate(w,“1);reduce(Stringkey,Iteratorvalues):/key:aword/values:alistofcountsintresult=0;fo
5、reachvinvalues:result+=ParseInt(v);Emit(AsString(result);一共分为map(分解)shuffle(洗牌)(洗牌)reduce(归并)三个阶段。map阶段,每个节点调用程序员编写的map函数,作用于每一个在此节点存放的键值对,map函数的输出同样是一些键值对,中间结果进入shuffle阶段,shuffle系统自动完成,程序员无须也无法控制,shuffle阶段会把所有中间结果里的键相同的所有键-值对通过网络传递给同一个目标节点。在最后的reduce阶段,每个节点会对所有键相同的键值对调用程序员编写的reduce函数,输出最终结果。4.mapre
6、duce工作流程工作流程Map阶段:数据经过分片化成阶段:数据经过分片化成M个数据集,每个数据集由一个个数据集,每个数据集由一个maper节点经过节点经过map函数处理成函数处理成key-value对形式的数据集。对形式的数据集。Shuffle阶段:阶段:map输出的结果放在输出的结果放在maper节点本地内存缓存区,缓存区先按照节点本地内存缓存区,缓存区先按照key进行分区(如果有进行分区(如果有R个个reducer,hash(key)mod R分成分成R个分区,初步划个分区,初步划分)、分区内对分)、分区内对key排序(排序后可附加排序(排序后可附加combiner合并操作,减少写磁盘数据
7、合并操作,减少写磁盘数据量),缓冲区快要溢出时,溢写文件,多个溢写文件合并,合并过程再次排量),缓冲区快要溢出时,溢写文件,多个溢写文件合并,合并过程再次排序(排序后可附加序(排序后可附加combiner合并操作),最后形成一个已经分区的、已经排合并操作),最后形成一个已经分区的、已经排序(对序(对key的排序)的文件。的排序)的文件。Reduce端会把属于本区的数据取(端会把属于本区的数据取(fetch)到内存,进行合并,合并过程再次)到内存,进行合并,合并过程再次排序,缓冲区快要溢出时,溢写文件,多个溢写文件合并,合并过程再次排排序,缓冲区快要溢出时,溢写文件,多个溢写文件合并,合并过程再
8、次排序,合并为更大的排序文件,最终实现序,合并为更大的排序文件,最终实现reduce输入数据是经过排序(对输入数据是经过排序(对key的的排序)的数据。有排序)的数据。有r个个reduce,就有就有r个结果。个结果。其实不管在其实不管在map端还是端还是reduce端,端,MapReduce都是反复地执行排序,合并操都是反复地执行排序,合并操作,所以说:作,所以说:mapreduce是大数据处理的灵魂,是大数据处理的灵魂,排序是排序是mapreduce的灵魂。的灵魂。Reduce阶段:最后一次合并的数据总是直接送到阶段:最后一次合并的数据总是直接送到Reduce 函数那里,函数那里,Reduc
9、e 函函数会作用在排序输入的每一个数会作用在排序输入的每一个key-list(value)上,最后的输出)上,最后的输出key-value对被对被直接写到直接写到HDFS上(分布式文件系统)。上(分布式文件系统)。5.mapreduce的局限的局限一个mapreduce任务的瓶颈往往在中间的shuffle阶段。启动开销大,简单任务也要尽力map-shuffle-redcuce三个阶段,无法实时响应。只能处理静态数据,对于变化快的数据无能为力。mapreduce的系统实现是谷歌的机密,据说2007年谷歌mapreduce版本比2012年hadoop快一个数量级。Hadoop的的mapreduce
10、框架在框架在2013年升级年升级mapreduceV2,yarn。第二节第二节 HDFS (hadoop分布式文件系统分布式文件系统)1.三个部分:客户端、nameserver(可理解为主控和文件索引,类似linux的inode)、datanode(存放实际数据)2、如何写数据过程2、如何写数据过程2、如何写数据过程3、读取数据过程4、容错:第一部分:故障类型及其检测方法(nodeserver故障,和网络故障,和脏数据问题)4、容错:第一部分:故障类型及其检测方法(nodeserver故障,和网络故障,和脏数据问题)5、容错第二部分:读写容错6、容错第三部分:dataNode失效7、备份规则8
11、、结束语第三节 nosqlhbase为什么要用为什么要用HBase?1.数据集成长为tb和pb级2.横向扩展(增加节点)比扩容便宜,通过添加节点即可适应数据的持续增长*出于同样的原因,我们需要Hadoop,但有时Hadoop是不够的3.需要支持随机读取和随机写入4,传统数据库扩容很昂贵,而且数据很难分发(分布式计算)HBase是什么是什么?分布式分布式列式数据库列式数据库多维多维高可用性高可用性高性能高性能存储系统存储系统 目标:十亿行目标:十亿行*数百万列数百万列*成千上万的版本成千上万的版本 Pb级数据分布在成千上万的服务器节点上级数据分布在成千上万的服务器节点上HBase不是不是不是传统
12、的不是传统的SQL数据库数据库没有连接没有连接,没有查询引擎没有查询引擎,没有类型没有类型,没有没有SQL有事务和二级索引,但这些是插件有事务和二级索引,但这些是插件,而不是而不是HBase的核心的核心部分部分作为作为RDBMS的替代的替代必须了解必须了解RDBMS 相反的模式相反的模式非标准的数据非标准的数据表格很宽表格很宽,数据分布稀疏数据分布稀疏HBase是如何工作的呢?两种类型的HBase节点:Master管理节点和RegionServer分区节点master(只有一个管理节点)管理集群的操作任务调度、负载平衡、数据分裂它不负责读/写数据通过ZooKeeperandstandbys(备
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据处理 技术
限制150内