大数据处理技术概论

上传人:嘀****l 文档编号:253018968 上传时间:2024-11-27 格式:PPT 页数:53 大小:19.66MB
收藏 版权申诉 举报 下载
大数据处理技术概论_第1页
第1页 / 共53页
大数据处理技术概论_第2页
第2页 / 共53页
大数据处理技术概论_第3页
第3页 / 共53页
资源描述:

《大数据处理技术概论》由会员分享,可在线阅读,更多相关《大数据处理技术概论(53页珍藏版)》请在装配图网上搜索。

1、Click to edit Master title style,,Click to edit Master text styles,,Second level,,Third level,,Fourth level,,Fifth level,,*,,*,单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,大数据处理技术,,,,,科信办 刘伟,2014,年,4,月,,第一节,Mapreduce,编程模型,,第二节,hadoop HDFS,原理,,第三节,nosql,之,hbase,第一节,Mapreduce,编程模型,,1.,技术背景,,2. ma

2、preduce,的概念,,3.mapreduce,的编程模型原理,,4mapreduce,工作流程,,5.mapreduce,的局限,,1.,技术背景:,分布式并行计算是大数据(,pb,)处理的有效方法,编写正确高效的大规模并行分布式程序是计算机工程领域的难题。,并行计算的模型、计算任务分发、计算机结果合并、计算节点的通讯、计算节点的负载均衡、计算机节点容错处理、节点文件的管理等方面都要考虑。,,为了解决上述复杂的问题,谷歌设计一个新的抽象模型,使用这个抽象模型,普通程序员只要表述他们想要执行的简单运算即可,而不必关心并行计算、容错、 数据分布、负载均衡等复杂的细节,这些问题都被封装了,交个了

3、后台程序来处理。这个模型就是,mapreduce,。,谷歌,2004,年公布的,mapreduce,编程模型,在工业界、学术界产生巨大影响,以至于谈大数据必谈,mapreduce,。,,工业界试图做的事情就是要实现一个能够媲美或者比,Google mapreduce,更好的系统,多年的努力下来,,Hadoop,(开源)脱颖而出,成为外界实现,MapReduce,计算模型事实上的标准,围绕着,Hadoop,,已经形成了一个庞大的生态系统。,,2. mapreduce,的概念:,MapReduce,是一个编程模型,一个处理和生成超大数据集的算法模型的相关实现。简单的一句话解释,MapReduce,

4、就是“任务的分解与结果的汇总”。,mapreduce,成功的最大因素是它简单的编程模型。程序员只要按照这个框架的要求,设计,map,和,reduce,函数,剩下的工作,如分布式存储、节点调度、负载均衡、节点通讯、容错处理和故障恢复都由,mapreduce,框架(比如,hadoop,)自动完成,设计的程序有很高的扩展性。,,3. mapreduce,的编程模型原理:,开发人员用两个函数表达这个计算:,Map,和,Reduce,。,即:,(input) ====> map(k1,v1) ->list(k2,v2) ===> combine---> => reduce(k2,list(v2)) -

5、>list(v2)  >(output),单词统计,单词统计,,map(String key, String value):     // key: document name     // value: document contents     for each word w in value:         EmitIntermediate(w, “1″);,reduce(String key, Iterator values):     // key: a word     // values: a list of counts     int result = 0;     for

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

7、会对所有键相同的键值对调用程序员编写的,reduce,函数,输出最终结果。,4. mapreduce,工作流程,Map,阶段:数据经过分片化成,M,个数据集,每个数据集由一个,maper,节点经过,map,函数处理成,key-value,对形式的数据集。,Shuffle,阶段:,map,输出的结果放在,maper,节点本地内存缓存区,缓存区先按照,key,进行分区(如果有,R,个,reducer,,,hash,(,key,),,mod R,分成,R,个分区,初步划分)、分区内对,key,排序(排序后可附加,combiner,合并操作,减少写磁盘数据量),缓冲区快要溢出时,溢写文件,多个溢写文件

8、合并,合并过程再次排序(排序后可附加,combiner,合并操作),最后形成一个已经分区的、已经排序(对,key,的排序)的文件。,Reduce,端会把属于本区的数据取(,fetch,)到内存,进行合并,合并过程再次排序,缓冲区快要溢出时,溢写文件,多个溢写文件合并,合并过程再次排序,合并为更大的排序文件,最终实现,reduce,输入数据是经过排序(对,key,的排序)的数据。有,r,个,reduce,,就有,r,个结果。,其实不管在,map,端还是,reduce,端,,MapReduce,都是反复地执行排序,合并操作,所以说:,mapreduce,是大数据处理的灵魂,,排序是,mapredu

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

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

11、测方法(,nodeserver,故障,和网络故障,和脏数据问题),5,、容错第二部分:读写容错,6,、容错第三部分:,dataNode,失效,7,、备份规则,8,、结束语,第三节,nosql——hbase,,,为什么要用,HBase ?,,1.,数据集成长为,tb,和,pb,级,2.,横向扩展(增加节点)比扩容便宜,通过添加节点即可适应数据的持续增长,*,出于同样的原因,,,我们需要,Hadoop,,但有时,Hadoop,是不够的,3.,需要支持随机读取和随机写入,4,,传统数据库扩容很昂贵,而且数据很难分发(分布式计算),,,HBase,是什么,?,,•,分布式,•,列式数据库,•,多维,•

12、,高可用性,•,高性能,•,存储系统,目标:十亿行*数百万列*成千上万的版本,Pb,级数据分布在成千上万的服务器节点上,,,HBase,不是,…,不是传统的,SQL,数据库,——,没有连接,,,没有查询引擎,,,没有类型,,,没有,SQL,——,有事务和二级索引,但这些是插件,,,而不是,HBase,的核心部分,•,作为,RDBMS,的替代,•,必须了解,RDBMS,相反的模式,——,非标准的数据,——,表格很宽,,,数据分布稀疏,,HBase,是如何工作的呢,?,,两种类型的,HBase,节点,:,Master,管理节点和,RegionServer,分区节点,•master,(只有一个管理节

13、点),——,管理集群的操作,•,任务调度、负载平衡、数据分裂,——,它不负责读,/,写数据,——,通过,ZooKeeper and standbys,(备用服务器)实现高度可用性,,•RegionServer(,一个或多个,),——,存表格的节点:执行读取、缓冲写,——,与客户端直接点对点进行读,/,写,HBase,表,•,一个,HBase,集群是由任意数量的用户定义的表组成,•,表模式只定义列族,——,每个列族包含任意数量的列,——,每一列包含任意数量的版本,——,列只在插入时才产生,,,空值不占用空间,——,除了表名和列族名外,所有的数据都是字节存储,——,表中的行已被排序,顺序存储,——

14、,列族里列也被排序,顺序存储,(,表、,行,、列族、,列,,,时间戳,),值,HBase,表数据结构,•,一张表里行的映射与其列族是一个有序映射关系,——SortedMap(rowlist(ColumnFamilies)),•,一个列族里的列名与版本值是一个有序映射关系,——SortedMap(columnSortedMap(Versioned Values)),•,一列里时间戳与值是一个有序映射关系,------SortedMap(Timestamp Value),HBase,表是一个三维有序的映射表,,SortedMap(RowKey,,,List(SortedMap(Colum

15、n,,,List( SortedMap (Timestamp, Value)) ) )),,– rowKey (ASC) + columnLabel(ASC) + Version (DESC) --> value,,行键升序,,列族:列名 时间戳,value,row=row0,,,column=anchor:bar,,,timestamp=1174184619081,……,row=row0,,,column=anchor:foo,,,timestamp=1174184620720,row=row0,,,column=anchor:foo,,,t

16、imestamp=1174184617161,row=row1,,,column=anchor:bar,,,timestamp=1174184619081,row=row1,,,,column=anchor:foo,,,timestamp=1174184620721,row=row1,,,column=anchor:foo,,,timestamp=1174184617167,row=row2,,,column=anchor:bar,,,timestamp=1174184619081,row=row2,,,column=anchor:foo,,,timestamp=1174184620724,r

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

18、egion,表,: (Table, NULL, “MidKey”) and (Table, “MidKey”, NULL),•,一个,region,放在一个,RegionServer,节点上,•,多个,region,,可能放在一个不同的节点上,每一个,region,由若干个,HDFS files and blocks,组成,,,每个,HDFS files and blocks,由,Hadoop,复制,保存多个副本。,HBase,架构,•region,信息和位置信息存储在特殊目录表,----ROOT,表包含元数据表的位置,----.META,表包含,user regions,的模式(结构说明)和

19、位置信息,,•-ROOT,的位置存储在,zookeeper,上,,-,这是“引导”区,•zookeeper,节点用于协调,/,监控,——,引导集群选举一个节点作为,master,节点,——,检测,RegionServer,节点故障 的临时节点(故障信息传递给,master,处理),HBase,关键特性,•,数据的自动分区,——,数据的增长,,region,是自动分裂,•,数据透明分布,——,节点间的负载自动均衡,•,表按照行排序,行按照列排序,——,这个设计可以高效读取和扫描,——,组合键(即列)可以排序也可以分组,•,有服务器端的过滤功能,•,因为集成,ZooKeeper,,所以没有单点故障

20、,•,在线状态下(不终止服务的情况下)快速添加,/,移除的节点,——,移动数据的位置,不移动数据(指向另外两个备份的中的一个),•,在线状态下(不终止服务的情况下)支持创建,/,修改表,——,可以配置表和列族的参数,•,与,Hadoop MapReduce,关系密切:,-TableInputFormat / TableOutputForma,表输入,/,输出格式化,HFileOutputFormat,文件输出格式化(都是,mapreduce,计算),HBase,访问接口,Native Java Client/API,– Get, Scan, Put, Delete classes,– HTab

21、le for read/write, HBaseAdmin for admin stuff,• Non-Java Clients,–Thrift server (Ruby, C++, PHP, etc),– REST server (stargate contrib),• HBase Shell,–Jruby shell supports put, delete, get, scan,–Also supports administrative tasks,• TableInputFormat/TableOutputFormat,HBase,插件,• MapReduce / Cascading

22、/ Hive / Pig,– Support for HBase as a data source or sink,• Transactional HBase,– Distributed transactions using OCC,• Indexed HBase,– Utilizes Transactional HBase for secondary indexing,• IHbase,– New contrib for in-memory secondary indexes,• HBql,– SQL syntax on top of HBase,今天,,HBase,已经是,Apache,

23、顶级项目,有着众多的开发人员和兴旺的用户社区。它成为一个核心的基础架构部件,运行在世界上许多公司(如,StumbleUpon,、,Trend Micro,、,Facebook,、,Twitter,、,Salesforce,和,Adobe,)的大规模生产环境中。,HBase,网页搜索的例子,•,存储搜索到的网页数据,–,搜索表有一个,content,列族,,– Row is URL with Columns,行是,url,(统一资源定位符,网页的地址),列族是,content,• content:data,列:,stores raw crawled data,(存储抓起到的具体网页数据),,•

24、 content:language,列:,stores http language header,(存储语言),,• content:type,列:,stores,,http content-type header,(存储内容的类型),,–,如果需要对原始数据的超链接和图片进行处理,增加列族,links and images,,列名,:,• links:,:保存超链接,,• images:,: 保存图片,Row=url1,Rdbms,网页搜索的例子,传统的数据库里如何保存数据?,------,网页表表包含:,url,列,,data,列,,language,列,,type,列,------,链接

25、表包含:,url,列,,link,列,-----,图片表包含:,url,列,,image,列,表格的规模怎样?,------–10M documents w/ avg10 links and 10 images,(平均每个网页有,10,个链接和,10,张图片, 一共有,10m,个 网页内容),------–210M total rows versus 10M total rows,(,rdbms,需要,210m,条记录来存储这些内容 而,hbase,只要,10m,条记录来存储),----- ––Index bloat with links/images,(,tableslinks/images

26、,表呈现指数膨胀),说明:,10,个网页,平均每个网页有,10,个链接和,10,张图片,用关系型数据来存储:网页表有,10,条记录,链接表、图片表分别有,10*10=100,条记录,总行数,=10+100+100=210,行,而,hbase,只有,10,行。,,“NoSQL”,是什么,?,•,与,sql,的关系不大,------SQL,只是一个查询语言标准,——HBql,试图向,HBase,添加,SQL,语法,——sql,操作面对数百万的数据无能为力,!,------hive,和,pig,在处理原始的,MapReduce,时很受欢迎。,•nosql,在非,RDBMS,架构方面有以下改进:,——

27、,放弃,rdbms,的关联关系,——,降低在,acid,事务性方面的要求,,说明:,ACID,,指数据库事务正确执行的四个基本要素的缩写。包含:原子性,(Atomicity,)、一致性(,Consistency,)、隔离性(,Isolation,)、持久性(,Durability,)。一个支持事务(,Transaction,)的数据库系统,必需要具有这四种特性,否则在事务过程(,Transaction processing,)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。,NoSQL,类型和项目,• Column-oriented,– HBase, Cassandra, Hype

28、rtable,• Key/Value,– BerkeleyDB, Tokyo, Memcache, Redis, SimpleDB,• Document,–CouchDB, MongoDB,其他方面的区别:,------,强一致性(数据备份同一时刻同一值),vs,最终一致性。,------Database,层面的复制,vs Filesystem,层面的复制。,,演讲完毕,谢谢观看!,内容总结,大数据处理技术。有r个reduce,就有r个结果。5、容错第二部分:读写容错。2.横向扩展(增加节点)比扩容便宜,通过添加节点即可适应数据的持续增长。目标:十亿行*数百万列*成千上万的版本。•一张表里行的映射与其列族是一个有序映射关系。•region信息和位置信息存储在特殊目录表。•-ROOT的位置存储在zookeeper上,-这是“引导”区。------链接表包含:url列,link列。----- 图片表包含:url列,image列。------强一致性(数据备份同一时刻同一值) vs最终一致性。演讲完毕,谢谢观看,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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