大数据处理技术概述

上传人:桔**** 文档编号:567614229 上传时间:2024-07-21 格式:PPT 页数:51 大小:6.37MB
返回 下载 相关 举报
大数据处理技术概述_第1页
第1页 / 共51页
大数据处理技术概述_第2页
第2页 / 共51页
大数据处理技术概述_第3页
第3页 / 共51页
大数据处理技术概述_第4页
第4页 / 共51页
大数据处理技术概述_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《大数据处理技术概述》由会员分享,可在线阅读,更多相关《大数据处理技术概述(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(开源)脱颖而出,成为外界实现MapRe

3、duce计算模型事实上的标准,围绕着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

5、;foreachvinvalues:result+=ParseInt(v);Emit(AsString(result);一共分为map(分解)shuffle(洗牌)(洗牌) reduce(归并)三个阶段。map阶段,每个节点调用程序员编写的map函数,作用于每一个在此节点存放的键值对,map函数的输出同样是一些键值对,中间结果进入shuffle阶段,shuffle系统自动完成,程序员无须也无法控制,shuffle阶段会把所有中间结果里的键相同的所有键-值对通过网络传递给同一个目标节点。在最后的reduce阶段,每个节点会对所有键相同的键值对调用程序员编写的reduce函数,输出最终结果。4.

6、mapreduce工作流程工作流程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 函数那里,函数那里

9、,Reduce 函函数会作用在排序输入的每一个数会作用在排序输入的每一个key-list(value)上,最后的输出)上,最后的输出key-value对被对被直接写到直接写到HDFS上(分布式文件系统)。上(分布式文件系统)。5.mapreduce的局限的局限一个mapreduce任务的瓶颈往往在中间的shuffle阶段。启动开销大,简单任务也要尽力map-shuffle-redcuce三个阶段,无法实时响应。只能处理静态数据,对于变化快的数据无能为力。mapreduce的系统实现是谷歌的机密,据说2007年谷歌mapreduce版本比2012年hadoop快一个数量级。Hadoop的的map

10、reduce框架在框架在2013年升级年升级mapreduceV2,yarn。第二节第二节 HDFS (hadoop分布式文件系统分布式文件系统)1.三个部分:客户端、nameserver(可理解为主控和文件索引,类似linux的inode)、datanode(存放实际数据)2、如何写数据过程2、如何写数据过程2、如何写数据过程3、读取数据过程4、容错:第一部分:故障类型及其检测方法(nodeserver故障,和网络故障,和脏数据问题)4、容错:第一部分:故障类型及其检测方法(nodeserver故障,和网络故障,和脏数据问题)5、容错第二部分:读写容错6、容错第三部分:dataNode失效7

11、、备份规则8、结束语第三节 nosqlhbase为什么要用为什么要用HBase ?1.数据集成长为tb和pb级2.横向扩展(增加节点)比扩容便宜,通过添加节点即可适应数据的持续增长*出于同样的原因,我们需要Hadoop,但有时Hadoop是不够的3.需要支持随机读取和随机写入4,传统数据库扩容很昂贵,而且数据很难分发(分布式计算)HBase是什么是什么?分布式分布式列式数据库列式数据库多维多维高可用性高可用性高性能高性能存储系统存储系统 目标:十亿行目标:十亿行*数百万列数百万列*成千上万的版本成千上万的版本 Pb级数据分布在成千上万的服务器节点上级数据分布在成千上万的服务器节点上HBase不

12、是不是不是传统的不是传统的SQL数据库数据库没有连接没有连接,没有查询引擎没有查询引擎,没有类型没有类型,没有没有SQL有事务和二级索引,但这些是插件有事务和二级索引,但这些是插件,而不是而不是HBase的核心的核心部分部分作为作为RDBMS的替代的替代必须了解必须了解RDBMS 相反的模式相反的模式非标准的数据非标准的数据表格很宽表格很宽,数据分布稀疏数据分布稀疏HBase是如何工作的呢?两种类型的HBase节点:Master管理节点和RegionServer分区节点master(只有一个管理节点)管理集群的操作任务调度、负载平衡、数据分裂它不负责读/写数据通过ZooKeeperandsta

13、ndbys(备用服务器)实现高度可用性RegionServer(一个或多个)存表格的节点:执行读取、缓冲写与客户端直接点对点进行读/写HBase表一个HBase集群是由任意数量的用户定义的表组成表模式只定义列族每个列族包含任意数量的列每一列包含任意数量的版本列只在插入时才产生,空值不占用空间除了表名和列族名外,所有的数据都是字节存储表中的行已被排序,顺序存储列族里列也被排序,顺序存储(表、行行、列族、列列,时间戳时间戳)值HBase表数据结构一张表里行的映射与其列族是一个有序映射关系SortedMap(rowlist(ColumnFamilies)一个列族里的列名与版本值是一个有序映射关系So

14、rtedMap(columnSortedMap(VersionedValues)一列里时间戳与值是一个有序映射关系-SortedMap(TimestampValue)HBase表是一个三维有序的映射表SortedMap(RowKey,List(SortedMap(Column,List(SortedMap(Timestamp,Value) rowKey (ASC) + columnLabel(ASC) + Version (DESC) - value行键升序列族:列名时间戳valuerow=row0,column=anchor:bar,timestamp=1174184619081row=ro

15、w0,column=anchor:foo,timestamp=1174184620720row=row0,column=anchor:foo,timestamp=1174184617161row=row1,column=anchor:bar,timestamp=1174184619081row=row1,column=anchor:foo,timestamp=1174184620721row=row1,column=anchor:foo,timestamp=1174184617167row=row2,column=anchor:bar,timestamp=1174184619081row=ro

16、w2,column=anchor:foo,timestamp=1174184620724row=row2,column=anchor:foo,timestamp=1174184617167特点特点 良好的压缩比。由于大多数数据库设计都有冗余,如此一来,压缩比非常高,把40多M的数据导入infobright,没想到数据文件只有1M多列上的计算非常的快。方便MapReduce和Key-value模型的融合读取整行的数据较慢,但部分数据较快HBaseRegions表由任意数量的Regions组成regions用startKey和endKey来标记空表:(Table,NULL,NULL)-两个regi

17、on表:(Table,NULL,“MidKey”)and(Table,“MidKey”,NULL)一个region放在一个RegionServer节点上多个region,可能放在一个不同的节点上,每一个region由若干个HDFSfilesandblocks组成,每个HDFSfilesandblocks由Hadoop复制,保存多个副本。HBase架构region信息和位置信息存储在特殊目录表-ROOT表包含元数据表的位置-.META表包含userregions的模式(结构说明)和位置信息-ROOT的位置存储在zookeeper上,-这是“引导”区zookeeper节点用于协调/监控引导集群选举

18、一个节点作为master节点检测RegionServer节点故障的临时节点(故障信息传递给master处理)HBase关键特性数据的自动分区数据的增长,region是自动分裂数据透明分布节点间的负载自动均衡表按照行排序,行按照列排序这个设计可以高效读取和扫描组合键(即列)可以排序也可以分组有服务器端的过滤功能因为集成ZooKeeper,所以没有单点故障在线状态下(不终止服务的情况下)快速添加/移除的节点移动数据的位置,不移动数据(指向另外两个备份的中的一个)在线状态下(不终止服务的情况下)支持创建/修改表可以配置表和列族的参数与HadoopMapReduce关系密切:-TableInputFo

19、rmat/TableOutputForma表输入/输出格式化HFileOutputFormat文件输出格式化(都是mapreduce计算)HBase访问接口NativeJavaClient/APIGet,Scan,Put,DeleteclassesHTableforread/write,HBaseAdminforadminstuffNon-JavaClientsThriftserver(Ruby,C+,PHP,etc)RESTserver(stargatecontrib)HBaseShellJrubyshellsupportsput,delete,get,scanAlsosupportsadm

20、inistrativetasksTableInputFormat/TableOutputFormatHBase插件MapReduce/Cascading/Hive/PigSupportforHBaseasadatasourceorsinkTransactionalHBaseDistributedtransactionsusingOCCIndexedHBaseUtilizesTransactionalHBaseforsecondaryindexingIHbaseNewcontribforin-memorysecondaryindexesHBqlSQLsyntaxontopofHBase今天,HB

21、ase已经是Apache顶级项目,有着众多的开发人员和兴旺的用户社区。它成为一个核心的基础架构部件,运行在世界上许多公司(如StumbleUpon、TrendMicro、Facebook、Twitter、Salesforce和Adobe)的大规模生产环境中。HBase网页搜索的例子存储搜索到的网页数据搜索表有一个content列族RowisURLwithColumns行是url(统一资源定位符,网页的地址),列族是contentcontent:data列:storesrawcrawleddata(存储抓起到的具体网页数据)content:language列:storeshttplanguage

22、header(存储语言)content:type列:storeshttpcontent-typeheader(存储内容的类型)如果需要对原始数据的超链接和图片进行处理增加列族linksandimages,列名:links::保存超链接images::保存图片Row=url1Rdbms网页搜索的例子传统的数据库里如何保存数据?-网页表表包含:url列,data列,language列,type列-链接表包含:url列,link列-图片表包含:url列,image列表格的规模怎样?-10Mdocumentsw/avg10linksand10images(平均每个网页有10个链接和10张图片,一共有1

23、0m个网页内容)-210Mtotalrowsversus10Mtotalrows(rdbms需要210m条记录来存储这些内容而hbase只要10m条记录来存储)-Indexbloatwithlinks/images(tableslinks/images表呈现指数膨胀)说明:说明:10个网页,平均每个网页有个网页,平均每个网页有10个链接和个链接和10张图片,用关系型数张图片,用关系型数据来存储:网页表有据来存储:网页表有10条记录,链接表、图片表分别有条记录,链接表、图片表分别有10*10=100条记条记录,总行数录,总行数=10+100+100=210行,而行,而hbase只有只有10行。行

24、。“NoSQL”是什么?与sql的关系不大-SQL只是一个查询语言标准HBql试图向HBase添加SQL语法sql操作面对数百万的数据无能为力!-hive和pig在处理原始的MapReduce时很受欢迎。nosql在非RDBMS架构方面有以下改进:放弃rdbms的关联关系降低在acid事务性方面的要求说明:ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库系统,必需要具有这四种特性,否则在事务过程(Transactionprocessing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。NoSQL类型和项目Column-orientedHBase,Cassandra,HypertableKey/ValueBerkeleyDB,Tokyo,Memcache,Redis,SimpleDBDocumentCouchDB,MongoDB其他方面的区别:-强一致性(数据备份同一时刻同一值)vs最终一致性。-Database层面的复制vsFilesystem层面的复制。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > 金融/商业/投资

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号