收藏 分销(赏)

Hadoop综述PPT学习课件.ppt

上传人:精**** 文档编号:10263746 上传时间:2025-05-06 格式:PPT 页数:86 大小:2.32MB
下载 相关 举报
Hadoop综述PPT学习课件.ppt_第1页
第1页 / 共86页
Hadoop综述PPT学习课件.ppt_第2页
第2页 / 共86页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Hadoop,综述,1,2025/4/29 周二,主要内容,2,第一篇,HDFS,分布式文件系统,第二篇,MapReduce,第三篇,Hbase,简单介绍,2,2025/4/29 周二,第一篇,HDFS,3,一:,The Design of HDFS,二:,HDFS Concepts,三:应用程序示例,四:,Data Flow,3,2025/4/29 周二,第二篇,MapReduce,4,一,:,M,apReduce,基础,二:M,apReduce,数据流,三:M,apReduce,工作原理,4,2025/4/29 周二,第三篇,Hbase,简单介绍,5,一,:,简介,二:数据模型,三:行、列、时间戳、,API,5,2025/4/29 周二,第一篇,HDFS,分布式文件系统,6,2025/4/29 周二,1 The Design of HDFS,Very large files,大数据集合为目标数,以千万计的文件,典型文件大小一般都在千兆至,T,字节,Streaming data access,write-one-read-many,访问模型,文件创建、写,关闭之后不需要改变简化数据一致性,适合,MapReduce,框架,或者,web crawler,Commodity hardware,错误检测和快速、自动的恢复是,HDFS,的核心架构目标,7,2025/4/29 周二,1 The Design of HDFS,Low-latency data access,流式读为主,比之关注数据访问的低延迟,更关键在于数据访问的高吞吐量,arbitrary file modifications,严格要求在任何时候只有一个,writer,。文件尾,在异构的软硬件平台间的可移植性移动计算,Java,编写,8,2025/4/29 周二,2 HDFS Concepts,blocks,Namenodes and Datanodes,The Command-Line Interface,通信接口,9,2025/4/29 周二,2.1 HDFS Concepts-blocks,files in HDFS are broken into block-sized chunks(64 MB by default),减少元数据的量,有利于顺序读写(在磁盘上数据顺序存放),副本的默认数目是,3,a file can be larger than any single disk in the network.,making the unit of abstraction a block rather than a file simplifies the storage subsystem.,10,2025/4/29 周二,2.2 HDFS Concepts-,Namenodes and Datanodes,Basic model,Namenode,DataNode,心跳机制,11,2025/4/29 周二,2.2.1 HDFS Concepts-,Namenodes and Datanodes-,Basic model,Basic model,:,Master/Slaves/Client,Corresponding implementation,:Master NameNode SlavesDataNodes Client DFSClient,12,2025/4/29 周二,2.2.1 HDFS Concepts-,Namenodes and Datanodes-,Basic model,查看块信息,hadoop fsck files blocks,部分运行结果,13,2025/4/29 周二,2.2.2 HDFS Concepts-,Namenodes and Datanodes-,NameNode,manages the filesystem namespace,元数据信息包括:,文件信息,,根目录,hdfs:/master:9000/,每一个文件对应的文件块的信息,每一个文件块在DataNode的信息,persistent state of the filesystem metadata.,Namenode folders structure,Namenode namespace,映像文件及修改日志,客户端对文件的访问,14,2025/4/29 周二,2.2.2.1 HDFS Concepts-Namenodes and Datanodes-NameNode-,manages the filesystem namespace,将所有的文件和文件夹的元数据保存在一个文件系统树中。,在硬盘上保存成以下文件:,命名空间镜像,(namespace image),修改日志,(edit log),心跳信号传递信息(并不存储在硬盘):,一个文件包括哪些数据块,分布在哪些数据节点上。系统启动的时候从,Datanode,收集而成的。,Datanode,在,Namenode,的指挥下进行,block,的创建、删除和复制。,15,2025/4/29 周二,2.2.2.2 HDFS Concepts-Namenodes and Datanodes-NameNode-persistent state of the filesystem metadata,对于任何对文件元数据产生修改的操作,,Namenode,都使用一个称为,Editlog,的事务日志记录下来。,例如,在,HDFS,中创建一个文件(,打开、关闭、重命名文件和目录,),,Namenode,就会在,Editlog,中插入一条记录来表示;同样,修改文件的,replication,因子也将往,Editlog,插入一条记录。,整个文件系统的,namespace,,包括,block,到文件的映射、文件的属性,都存储在称为,FsImage,的文件中,这个文件也是放在,Namenode,所在系统的文件系统上,16,2025/4/29 周二,2.2.2.2 HDFS Concepts-Namenodes and Datanodes-NameNode-persistent state of the filesystem metadata,块进行复制的形式放置,按照块的方式随机选择存储节点。,a,副本的默认数目是,3,17,2025/4/29 周二,2.2.2.3 HDFS Concepts-Namenodes and Datanodes-NameNode-Namenode folders structure,namespaceID=1232737062,cTime=0,storageType=NAME_NODE,layoutVersion=-18,VERSION,文件是,java properties,文件,保存了,HDFS,的版本号。,layoutVersion,是一个负整数,保存了,HDFS,的持续化在硬盘上的数据结构的格式版本号。,namespaceID,是文件系统的唯一标识符,是在文件系统初次格式化时生成的。,cTime,此处为,0,storageType,表示此文件夹中保存的是元数据节点的数据结构。,18,2025/4/29 周二,2.2.2.4 HDFS Concepts-Namenodes and Datanodes-NameNode-,Namenode-,Namenode,文件系统命名空间映像文件及修改日志,客户端操作(打开、关闭、重命名文件和目录),NameNode将对文件系统的改动,追加,保存到本地文件系统上的一个日志文件(edits),NameNode,启动,从映像文件(,fsimage,)中读取,HDFS,的状态,接着应用日志文件中的,edits,操作,新的,HDFS,状态写入(,fsimage,)中,使用一个空的,edits,文件开始正常操作。,写操作成功之前,修改日志都会同步,(sync),到文件系统。,fsimage,命名空间映像文件,是内存中的元数据在硬盘上的,checkpoint,NameNode,只有在启动阶段合并,fsimage,和,edits,,日志文件会变大,19,2025/4/29 周二,2.2.3 HDFS Concepts-Namenodes and Datanodes-DataNodes,文件存储的基本单元,保存,Block,的,Meta-data,周期性地将所有,Block,信息发送给,NameNode,。,文件夹结构,blk_,保存的是,HDFS,的数据块,其中保存了具体的二进制数据。,blk_.meta,保存的是数据块的属性信息:版本信息,类型信息,和,checksum,目录中数据块到达一定数量,创建子文件夹,20,2025/4/29 周二,2.2.4 HDFS Concepts-,Namenodes and Datanodes-,心跳机制,master,启动,开一个,ipc server,slave,启动每隔,3,秒向,master,发送“心跳”,状态信息告诉,master,master,通过心跳的返回值,向,slave,节点传达指令,周期性接收“心跳”和,Blockreport,Datanode,上所有,block,组成列表,21,2025/4/29 周二,2.3 HDFS Concepts-,Namenodes and Datanodes-,The Command-Line Interface,interacting with HDFS,hadoop fs mkdir input,hdfs:/master:9000/user/coole,在,hdfs:/master:9000/user/coole,下新建,input,目录,22,2025/4/29 周二,2.5 HDFS Concepts-,Namenodes and Datanodes-,通信接口,对通信的对象进行序列化,自己的序列化系统。,org.apache.hadoop.io,中定义可序列化对象,实现了,Writable,接口,23,2025/4/29 周二,3 Hadoop,应用程序示例,/,在,hdfs:/master:9000/user/coole,目录下创建文件并写入内容,public class DFSOperator,public static void main(String args),Configuration conf=new Configuration();,try,FileSystem,fs=FileSystem.get(conf);,Path t=new Path(,hdfs:/master:9000/user/coole/dfs_operator.txt,);,FSDataOutputStream os=fs.create(t,true);,int i=0;,for(i=0;istring,71,2025/4/29 周二,Hbase,数据模型 行,每一行都有一个可排序的主键和任意多的列。,行关键字可以是任意字符串,表用行键即主键排序,通过主键访问表。,在一个行关键字下的每一个读写操作都是原子操作 有利于同行并发操作,举例,在,Webtable,里,通过反转,URL,中主机名的方式,可以把同一个域名下的网页组织成连续行。,72,2025/4/29 周二,Hbase,数据模型 列族,每行列分组形成列族:,“:”,每张表有一个,family,集合,固定不变,相当于表结构,列族成员有相同前缀。,OK:a,与,OK:b,都属于,OK,列族成员,同一列族下存放的所有数据通常都是同一类型,列族必须先创建,然后能在其中的列关键字下存放数据,,动态增加列,限定词任意字符串。比如,,Webtable,列族是,anchor,;给列族的每一个列关键字代表一个锚链接,物理存储,列族成员在文件系统存在一起,(确切)面向列族。,这是访问控制的基本单位。,73,2025/4/29 周二,Hbase,数据模型 时间戳,表中每一个表项都可以包含同一数据的多个版本不同版本的表项内容按时间戳倒序排列,即最新的排在前面。,自动进行垃圾清除。用户可以指明只保留表项的最后,n,个版本,在,Webtable,中,在,contents:,列中存放确切爬行一个网页的时间戳。如上的垃圾清除机制可以让我们只保留每个网页的最近三个版本。,74,2025/4/29 周二,Hbase,数据模型,行名是一个反向,URL,即,n.www,。,contents,列族存放网页内容,anchor,列族存放引用该网页的锚链接文本。,CNN,的主页被,Sports Illustrater,和,MY-look,的主页引用,因此该行包含了名叫“,anchor:”,和“,anchhor:my.look.ca”,的列。列名字的格式是,:,时间戳 每个锚链接只有一个版本,由时间戳标识,如,t9,,,t8,;而,contents,列则有三个版本,分别由时间 戳,t3,,,t5,,和,t6,标识。,一个存储,Web,网页的例子的表的片断,75,2025/4/29 周二,Hbase,数据模型,概念视图,一个表可以想象成一个大的映射关系,通过主键,或者主键+时间戳,可以定位一行数据,由于是稀疏数据,所以某些列可以是空白的,下面就是数据的概念视图:,76,2025/4/29 周二,Hbase,数据模型,物理视图,在物理存储上面,它是按照列来保存的,,在概念视图上面有些列是空白的,这样的列实际上并不会被存储,如果在查询的时候不提供时间戳,返回最新版本,77,2025/4/29 周二,区域(,tablet,),表横向分不同区域,各区域代表所有行一个子集,区域确定:第一行(包含)最后行(不含),+,随机标识,表初始单个区域,-,逐渐扩大超过阈值,-,以行为界分割,区域分散在,HBase,集群上单元,Bigtable,通过行关键字的字典序来维护数据。动态划分成多个连续行叫做“子表”(,tablet,)是数据分布和负载均衡的单位。这样一来,读较少的连续行就比较有效率,78,2025/4/29 周二,架构与实现,Hbase,由主节点,master,多个区域服务器,regionserver,从结点,Master,分配区域给已注册的区域服务器,Regionserver,负责,0,到多个区域,响应客户端读写请求,通知,master,分裂成子区域信息,79,2025/4/29 周二,特性,无真正索引,行顺序,无索引膨胀问题,插入操作性能与表大小无关,自动分区,商用硬件,建立在,1000-5000,节点,,RDBMS,非常消耗,IO,?,80,2025/4/29 周二,Hbase,API,BT,的提供了建立和删除表和列族的函数还提供了函数来修改集群,表和列族的元数据,比如说访问权限,81,2025/4/29 周二,Hbase,API,:,写入,Bigtable.,/Open the table,Table*T=OpenOrDie(”/bigtable/web/webtable”);,/Write a new anchor and delete an old anchor,RowMutation r1(T,“n.www”);,r1.Set(”anchor:www.c-span.org”,“CNN”);,r1.Delete(”anchor:”);,Operation op;,Apply(,82,2025/4/29 周二,Hbase,API,:,写入,Bigtable.,在中,客户应用可以写或者删除值,从每个行中找值,或者遍历一个表中的数据子集图,2,的代码是使用,RowMutation,抽象表示来进行一系列的更新(为保证代码精简,没有包括无关的细节)调用,Apply,函数,就对,ebtable,进行了一个原子修改:它为,周二,Hbase,API,:,读,Bigtable.,Scanner scanner(T);,ScanStream*stream;,stream=scanner.FetchColumnFamily(”anchor”);,stream-SetReturnAllVersions();,scanner.Lookup(”n.www”);,for(;!stream-Done();stream-Next(),printf(”%s%s%lld%sn”,scanner.RowName(),stream-ColumnName(),stream-MicroTimestamp(),stream-Value();,84,2025/4/29 周二,Hbase,API,:,读,Bigtable.,代码是使用,Scanner,抽象来遍历一个行内的所有锚点客户可以遍历多个列族有很多方法可以限制一次扫描中产生的行,列和时间戳例如,我们可以限制上面的扫描,让它只找到那些匹配正则表达式*,的锚点,或者那些时间戳在当前时间前,10,天的锚点,85,2025/4/29 周二,The End,86,2025/4/29 周二,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服