《Hadoop综述》PPT课件.ppt

上传人:wuy****n92 文档编号:70274453 上传时间:2023-01-18 格式:PPT 页数:86 大小:1,016.50KB
返回 下载 相关 举报
《Hadoop综述》PPT课件.ppt_第1页
第1页 / 共86页
《Hadoop综述》PPT课件.ppt_第2页
第2页 / 共86页
点击查看更多>>
资源描述

《《Hadoop综述》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《Hadoop综述》PPT课件.ppt(86页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Hadoop综述综述主要内容主要内容2第一篇第一篇HDFS 分布式文件系统分布式文件系统第二篇第二篇 MapReduce 第三篇第三篇 Hbase简单介绍简单介绍第一篇第一篇HDFS3一:一:The Design of HDFS二:二:HDFS Concepts三:应用程序示例三:应用程序示例四:四:Data Flow第二篇第二篇 MapReduce 4一一:MapReduce基础基础二:二:MapReduce数据流数据流三:三:MapReduce工作原理工作原理第三篇第三篇 Hbase简单介绍简单介绍5一一:简介简介二:数据模型二:数据模型三:行、列、时间戳、三:行、列、时间戳、API第一篇

2、第一篇HDFS 分布式文件系统分布式文件系统1 The Design of HDFSnVerylargefilesn大数据集合为目标数n以千万计的文件n典型文件大小一般都在千兆至T字节nStreamingdataaccessnwrite-one-read-many访问模型n文件创建、写,关闭之后不需要改变简化数据一致性n适合MapReduce框架,或者webcrawlernCommodityhardwaren错误检测和快速、自动的恢复是HDFS的核心架构目标1 The Design of HDFSnLow-latencydataaccessn流式读为主n比之关注数据访问的低延迟,更关键在于数据

3、访问的高吞吐量narbitraryfilemodificationsn严格要求在任何时候只有一个writer。文件尾n在异构的软硬件平台间的可移植性移动计算nJava编写2 HDFS ConceptsnblocksnNamenodes and DatanodesnThe Command-Line Interfacen通信接口2.1 HDFS Concepts-blocksnfilesinHDFSarebrokenintoblock-sizedchunks(64MBbydefault)1.减少元数据的量2.有利于顺序读写(在磁盘上数据顺序存放)3.副本的默认数目是3nafilecanbelarg

4、erthananysinglediskinthenetwork.nmakingtheunitofabstractionablockratherthanafilesimplifiesthestoragesubsystem.2.2 HDFS Concepts-Namenodes and DatanodesnBasicmodelnNamenodenDataNoden心跳机制2.2.1 HDFS Concepts-Namenodes and Datanodes-Basic model nBasicmodel:nMaster/Slaves/Client nCorresponding implementa

5、tion:Master NameNode SlavesDataNodes Client DFSClient 2.2.1 HDFS Concepts-Namenodes and Datanodes-Basic modell查看块信息hadoop fsck files blocksl部分运行结果2.2.2 HDFS Concepts-Namenodes and Datanodes-NameNodenmanagesthefilesystemnamespace元数据信息包括:n文件信息,根目录hdfs:/master:9000/n每一个文件对应的文件块的信息n每一个文件块在DataNode的信息npe

6、rsistentstateofthefilesystemmetadata.nNamenodefoldersstructurenNamenodenamespace映像文件及修改日志n客户端对文件的访问2.2.2.1HDFSConcepts-NamenodesandDatanodes-NameNode-managesthefilesystemnamespace将所有的文件和文件夹的元数据保存在一个文件系统树中。在硬盘上保存成以下文件:命名空间镜像(namespaceimage)修改日志(editlog)心跳信号传递信息(并不存储在硬盘):一个文件包括哪些数据块,分布在哪些数据节点上。系统启动的时候

7、从Datanode收集而成的。Datanode在Namenode的指挥下进行block的创建、删除和复制。2.2.2.2HDFSConcepts-NamenodesandDatanodes-NameNode-persistentstateofthefilesystemmetadata对于任何对文件元数据产生修改的操作,Namenode都使用一个称为Editlog的事务日志记录下来。例如,在HDFS中创建一个文件(打开、关闭、重命名文件和目录),Namenode就会在Editlog中插入一条记录来表示;同样,修改文件的replication因子也将往Editlog插入一条记录。整个文件系统的na

8、mespace,包括block到文件的映射、文件的属性,都存储在称为FsImage的文件中,这个文件也是放在Namenode所在系统的文件系统上2.2.2.2HDFSConcepts-NamenodesandDatanodes-NameNode-persistentstateofthefilesystemmetadatan块进行复制的形式放置,按照块的方式随机选择存储节点。na副本的默认数目是32.2.2.3HDFSConcepts-NamenodesandDatanodes-NameNode-NamenodefoldersstructurelnamespaceID=1232737062lcT

9、ime=0lstorageType=NAME_NODEllayoutVersion=-18uVERSION文件是javaproperties文件,保存了HDFS的版本号。ulayoutVersion是一个负整数,保存了HDFS的持续化在硬盘上的数据结构的格式版本号。unamespaceID是文件系统的唯一标识符,是在文件系统初次格式化时生成的。ucTime此处为0ustorageType表示此文件夹中保存的是元数据节点的数据结构。2.2.2.4HDFSConcepts-NamenodesandDatanodes-NameNode-Namenode-Namenode文件系统命名空间映像文件及修改

10、日志n客户端操作(打开、关闭、重命名文件和目录)nNameNode将对文件系统的改动追加保存到本地文件系统上的一个日志文件(edits)nNameNode启动n从映像文件(fsimage)中读取HDFS的状态n接着应用日志文件中的edits操作n新的HDFS状态写入(fsimage)中n使用一个空的edits文件开始正常操作。n写操作成功之前,修改日志都会同步(sync)到文件系统。nfsimage命名空间映像文件,是内存中的元数据在硬盘上的checkpointnNameNode只有在启动阶段合并fsimage和edits,日志文件会变大2.2.3 HDFS Concepts-Namenode

11、s and Datanodes-DataNodes文件存储的基本单元保存Block的Meta-data周期性地将所有Block信息发送给NameNode。文件夹结构blk_保存的是HDFS的数据块,其中保存了具体的二进制数据。blk_.meta保存的是数据块的属性信息:版本信息,类型信息,和checksum目录中数据块到达一定数量,创建子文件夹2.2.4 HDFS Concepts-Namenodes and Datanodes-心跳机制心跳机制umaster启动,开一个ipcserveruslave启动每隔3秒向master发送“心跳”u状态信息告诉masterumaster通过心跳的返回值

12、,向slave节点传达指令u周期性接收“心跳”和BlockreportuDatanode上所有block组成列表2.3 HDFS Concepts-Namenodes and Datanodes-The Command-Line InterfaceinteractingwithHDFShadoopfsmkdirinputhdfs:/master:9000/user/coolel在hdfs:/master:9000/user/coole下新建input目录2.5 HDFS Concepts-Namenodes and Datanodes-通信接口通信接口n对通信的对象进行序列化n自己的序列化系统

13、。n中定义可序列化对象,实现了Writable接口3 Hadoop应用程序示例应用程序示例/在hdfs:/master:9000/user/coole目录下创建文件并写入内容publicclassDFSOperatorpublicstaticvoidmain(Stringargs)Configurationconf=newConfiguration();tryFileSystemfs=FileSystem.get(conf);Patht=newPath(hdfs:/master:9000/user/coole/dfs_operator.txt);FSDataOutputStreamos=fs.

14、create(t,true);inti=0;for(i=0;istringHbase数据模型行n每一行都有一个可排序的主键和任意多的列。n行关键字可以是任意字符串n表用行键即主键排序,通过主键访问表。n在一个行关键字下的每一个读写操作都是原子操作有利于同行并发操作n举例,在Webtable里,通过反转URL中主机名的方式,可以把同一个域名下的网页组织成连续行。Hbase数据模型列族n每行列分组形成列族:“:”n每张表有一个family集合,固定不变,相当于表结构n列族成员有相同前缀。OK:a与OK:b都属于OK列族成员n同一列族下存放的所有数据通常都是同一类型n列族必须先创建,然后能在其中的列

15、关键字下存放数据,动态增加列n限定词任意字符串。比如,Webtable列族是anchor;给列族的每一个列关键字代表一个锚链接n物理存储n列族成员在文件系统存在一起,(确切)面向列族。n这是访问控制的基本单位。Hbase数据模型时间戳n表中每一个表项都可以包含同一数据的多个版本不同版本的表项内容按时间戳倒序排列,即最新的排在前面。n自动进行垃圾清除。用户可以指明只保留表项的最后n个版本n在Webtable中,在contents:列中存放确切爬行一个网页的时间戳。如上的垃圾清除机制可以让我们只保留每个网页的最近三个版本。Hbase数据模型u行名是一个反向URL即。ucontents列族存放网页内

16、容uanchor列族存放引用该网页的锚链接文本。uCNN的主页被SportsIllustrater和MY-look的主页引用,因此该行包含了名叫“anchor:”和“anchhor:my.look.ca”的列。列名字的格式是:u时间戳每个锚链接只有一个版本,由时间戳标识,如t9,t8;而contents列则有三个版本,分别由时间戳t3,t5,和t6标识。一个存储一个存储Web网页的例子的表的片断网页的例子的表的片断Hbase数据模型概念视图概念视图 u一个表可以想象成一个大的映射关系,通过主键,或者主键+时间戳,可以定位一行数据,由于是稀疏数据,所以某些列可以是空白的,下面就是数据的概念视图:

17、Hbase数据模型物理视图物理视图 u在物理存储上面,它是按照列来保存的,u在概念视图上面有些列是空白的,这样的列实际上并不会被存储u如果在查询的时候不提供时间戳,返回最新版本区域(tablet)p表横向分不同区域,各区域代表所有行一个子集p区域确定:第一行(包含)最后行(不含)+随机标识p表初始单个区域-逐渐扩大超过阈值-以行为界分割p区域分散在HBase集群上单元pBigtable通过行关键字的字典序来维护数据。动态划分成多个连续行叫做“子表”(tablet)是数据分布和负载均衡的单位。这样一来,读较少的连续行就比较有效率架构与实现架构与实现pHbase由主节点master多个区域服务器r

18、egionserver从结点pMasterp分配区域给已注册的区域服务器pRegionserverp负责0到多个区域,响应客户端读写请求p通知master分裂成子区域信息特性特性p无真正索引p行顺序,无索引膨胀问题,插入操作性能与表大小无关p自动分区p商用硬件p建立在1000-5000节点,RDBMS非常消耗IO?HbaseAPIlBT的提供了建立和删除表和列族的函数还提供了函数来修改集群,表和列族的元数据,比如说访问权限HbaseAPI:写入写入Bigtable.l/OpenthetablelTable*T=OpenOrDie(”/bigtable/web/webtable”);l/Writ

19、eanewanchoranddeleteanoldanchorlRowMutationr1(T,“n.www”);lr1.Set(”anchor:www.c-span.org”,“CNN”);lr1.Delete(”anchor:”);lOperationop;lApply(&op,&r1);HbaseAPI:写入写入Bigtable.l在中,客户应用可以写或者删除值,从每个行中找值,或者遍历一个表中的数据子集图2的代码是使用RowMutation抽象表示来进行一系列的更新(为保证代码精简,没有包括无关的细节)调用Apply函数,就对ebtable进行了一个原子修改:它为增加了一个锚点,并删除

20、了另外一个锚点HbaseAPI:读读Bigtable.lScannerscanner(T);lScanStream*stream;lstream=scanner.FetchColumnFamily(”anchor”);lstream-SetReturnAllVersions();lscanner.Lookup(”n.www”);lfor(;!stream-Done();stream-Next()lprintf(”%s%s%lld%sn”,lscanner.RowName(),lstream-ColumnName(),lstream-MicroTimestamp(),lstream-Value();HbaseAPI:读读Bigtable.l代码是使用Scanner抽象来遍历一个行内的所有锚点客户可以遍历多个列族有很多方法可以限制一次扫描中产生的行,列和时间戳例如,我们可以限制上面的扫描,让它只找到那些匹配正则表达式*的锚点,或者那些时间戳在当前时间前10天的锚点TheEnd

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

当前位置:首页 > 教育专区 > 大学资料

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

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