版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、HDFS云存储之HDFSOutlineHDFS简介 HDFS HDFS云存储之HDFSOutlineHDFS简 介 Outline HDFS简介简介 空间结构空间结构 通信协议簇及通信协议簇及Shell 关键运行机制及关键运行机制及API4 1 2 3 HDFS云存储之HDFSOutlineHDFS简 介 HDFS简介简介 Hadoop项目项目 Doug Cutting,基于基于Lucene的开源项目的开源项目Nutch,其目标是构建出一其目标是构建出一 个包括网络蜘蛛、文件存储等模块的网页搜索系统个包括网络蜘蛛、文件存储等模块的网页搜索系统; 受到最先由受到最先由 Google Lab 开发
2、的开发的 Map/Reduce 和和 Google (GFS) 的启发。的启发。2006 年年 3 月份,从开始,将其中实现的月份,从开始,将其中实现的NDFS和和 MapReduce剥离出来成立一个新的开源项目,这就是剥离出来成立一个新的开源项目,这就是Hadoop. HDFS(Hadoop Distributed File System) HDFS云存储之HDFSOutlineHDFS简 介 HDFS简介简介 管理网络中跨多台计算机存储的文件系统称为分布式文件系统。 HDFS是Hadoop中的分布式文件系统(Hadoop Distributed )。 HDFS有着高容错性的特点,并且设计用
3、来部署在低廉的(low-cost )硬件上。而且它提供高传输率(high throughput)来访问应用程序的 数据,适合那些有着超大数据集(large data set)的应用程序。HDFS 放宽了(relax)POSIX的要求(requirements),这样可以流的形式访 问(streaming access)文件系统中的数据。 HDFS是基于块存储的。HDFS中的文件是被分成 64M一块的数据 块存储的。如果一个文件小于一个数据块的大小,并不占用整个数据块 存储空间。 HDFS云存储之HDFSOutlineHDFS简 介 HDFS简介简介 l假设前提与目标 硬件故障是常态。因此,故障
4、检测与快速自动故障恢复是HDFS设计的 核心目标; 流式访问。HDFS不是普通的文件系统,它被设计适合于批量处理的情 形,而不是在于与用户的交互性。因此,它更注重于高的传输率,而 不是低延迟性。也因此,而放宽了POSIX的语法要求。 大数据集。HDFS主要设计用来存储海量的大文件。因此,高带宽和可 扩展到成百上千个节点也成为HDFS设计的主要目标。 简单的一致性模型。HDFS假设文件的读写模式是一次写多次读一次写多次读模式, 这种模式简化了数据的一致性问题,并且使得数据传输效率高。 移动计算比移动数据成本低。 HDFS云存储之HDFSOutlineHDFS简 介 空间结构空间结构 HDFS云存
5、储之HDFSOutlineHDFS简 介 空间结构空间结构 HDFS云存储之HDFSOutlineHDFS简 介 空间结构空间结构 从上面的图中可以看出,Namenode,Datanode,Client之间的通 信都是建立在TCP/IP的基础之上的。当Client要执行一个写入的操作的 时候,命令不是马上就发送到Namenode,Client首先在本机上临时文件 夹中缓存这些数据,当临时文件夹中的数据块达到了设定的Block的值( 默认是64M)时,Client便会通知Namenode,Namenode便响应Client 的RPC请求,将文件名插入文件系统层次中并且在Datanode中找到一块
6、 存放该数据的block,同时将该Datanode及对应的数据块信息告诉Client ,Client便这些本地临时文件夹中的数据块写入指定的数据节点。 HDFS采取了副本策略,其目的是为了提高系统的可靠性,可用性。 HDFS的副本放置策略是三个副本,一个放在本节点上,一个放在同一 机架中的另一个节点上,还有一个副本放在另一个不同的机架中的一个 节点上。 HDFS云存储之HDFSOutlineHDFS简 介 通信协议簇及通信协议簇及Shell HDFS云存储之HDFSOutlineHDFS简 介 通信协议簇及通信协议簇及Shell ClientProtocol HDFS云存储之HDFSOutli
7、neHDFS简 介 通信协议簇及通信协议簇及Shell DatanodeProtocol HDFS云存储之HDFSOutlineHDFS简 介 通信协议簇及通信协议簇及Shell DataTransferProtocol(功能由Datanode处理函数完成 ) HDFS云存储之HDFSOutlineHDFS简 介 通信协议簇及通信协议簇及Shell Shell Usage:hadoop -config confdir COMMAND HDFS云存储之HDFSOutlineHDFS简 介 关键运行机制及关键运行机制及API 保障可靠性的措施保障可靠性的措施 一个名字节点和多个数据节点 数据复制(
8、冗余机制) -存放的位置(机架感知策略) 故障检测 -数据节点 心跳包(检测是否宕机) 块报告(安全模式下检测) 数据完整性检测(校验和比较) -名字节点(日志文件,镜像文件) 空间回收机制 HDFS云存储之HDFSOutlineHDFS简 介 关键运行机制及关键运行机制及API 写文件流程写文件流程 客户端缓存 流水线复制 并发写控制 流程: 1.客户端把数据缓存到本地临时文件夹 2.临时文件夹数据超过64M,客户端联系NameNode,NameNode分配 DataNode,DataNode依照客户端的位置被排列成一个有着最近物理距 离和最小的序列 3.与序列的第一个数据服务器建立Sock
9、et连接,发送请求头,然后等待 回应,依次下传,客户端得到回包,流水线建立成功, 4. 正式发送数据,以4K为大小传送 HDFS云存储之HDFSOutlineHDFS简 介 关键运行机制及关键运行机制及API 读文件流程读文件流程 客户端联系NameNode,得到所有数据块信息,以及数据块对应的所有 数据服务器的位置信息 尝试从某个数据块对应的一组数据服务器中选出一个,进行连接(选 取算法未加入相对位置的考虑) 数据被一个包一个包发送回客户端,等到整个数据块的数据都被读取 完了,就会断开此链接,尝试连接下一个数据块对应的数据服务器, 整个流程,依次如此反复,直到所有想读的都读取完了为止 HDF
10、S云存储之HDFSOutlineHDFS简 介 关键运行机制及关键运行机制及API Hadoop API被分成(divide into)如下几种主要 的包(package): 定义了系统参数的配置文件处理API。 定义了抽象的文件系统API。 HDFS,Hadoop的分布式文件系统实现。 定义了通用的I/O API,用于针对网络,数据库,文件等数据对象 做读写操作。 用于网络服务端和客户端的工具,封装了网络异步I/O的基础模块 。 Hadoop分布式计算系统(MapReduce)模块的实现,包括任务的分 发调度等。 HDFS云存储之HDFSOutlineHDFS简 介 关键运行机制及关键运行机
11、制及API 定义了用于性能统计信息的API,主要用于mapred和dfs模块。 定义了针对记录的I/O API类以及一个记录描述语言翻译器,用于 简 化将记录序列化成语言中性的格式(language-neutral manner) 。 定义了一些命令行的工具。 定义了一些公用的API。 用户和用户组信息 HDFS云存储之HDFSOutlineHDFS简 介 关键运行机制及关键运行机制及API 抽象文件系统的基本要素和基本操作。最显著的一个特点就是,文件 系统是基于流式数据访问的,并且,可以基于命令行的方式来对文件 系统的文件进行管理与操作。 HDFS云存储之HDFSOutlineHDFS简 介
12、 关键运行机制及关键运行机制及API 。 。 。 。 。 。 HDFS云存储之HDFSOutlineHDFS简 介 关键运行机制及关键运行机制及API ClientProtocol协议:协议:客户端进程与Namenode进程进行通信 DataNodeProtocol协议:协议:一个DFS Datanode用户与Namenode进行通信的 协议 InterDatanodeProtocol协议:协议:Datanode之间的通信 ClientDatanodeProtocol协议协议 :客户端进程与datenode进程进行通信 NamenodeProtocol协议协议 :次级Namenode(Seco
13、ndary NameNode)与 Namenode进行通信所需进行的操作 Namenode主要实现了ClientProtocol,DatanodeProtocol,NamenodeProtocol client NameNode DataNode clientProtocol DataNodeProtocol ClientDatanodeProtocol HDFS云存储之HDFSOutlineHDFS简 介 关键运行机制及关键运行机制及API ClientProtocol(文件基本操作接口)(文件基本操作接口) 获取到指定文件src的全部块的信息返回LocatedBlocks,包括文件长 度、
14、组成文件的块及其存储位置(所在的Datanode数据结点) - public LocatedBlocks getBlockLocations(String src, long offse t, long length) 在制定的文件系统命名空间中创建一个文件入口(entry) ,在命名 空间中创建一个文件入口。该方法将创建一个由src路径指定的空文 件 - public void create(String src, FsPermission masked, String clie ntName, boolean overwrite, short replication, long block
15、Size) HDFS云存储之HDFSOutlineHDFS简 介 关键运行机制及关键运行机制及API 对指定文件执行追加写操作,返回信息,可以定位到追加写入最后部 分块的信息 -public LocatedBlock append(String src, String clientName) 设置副本因子,为一个指定的文件修改块副本因子 -public boolean setReplication(String src, short replication) 为已经存在的目录或者文件,设置给定的操作权限 -public void setPermission(String src, FsPerm
16、ission permission) 设置文件或目录属主 -public void setOwner(String src, String username, String groupname) 客户端放弃对指定块的操作 -public void abandonBlock(Block b, String src, String holder) HDFS云存储之HDFSOutlineHDFS简 介 关键运行机制及关键运行机制及API 客户端向一个当前为写操作打开的文件写入数据块 -public LocatedBlock addBlock(String src, String clientName
17、) 客户端完成对指定文件的写操作,并期望能够写完,在写完以后关闭 文件 -public boolean complete(String src, String clientName) 客户端向Namenode报告corrupted块的信息(块在Datanode上的位置信 息) -public void reportBadBlocks(LocatedBlock blocks) throws IOException HDFS云存储之HDFSOutlineHDFS简 介 关键运行机制及关键运行机制及API 在文件系统命令空间中重命名一个文件或目录 -public boolean rename(Str
18、ing src, String dst) 删除文件或目录src -public boolean delete(String src) 删除文件或目录src,根据recursive选项来执行 -public boolean delete(String src, boolean recursive) throws IOException; 创建目录src,并赋予目录src指定的nasked权限 -public boolean mkdirs(String src, FsPermission masked) throws IOException; 获取指定目录src中的文件列表 -public get
19、Listing(String src) throws IOException; HDFS云存储之HDFSOutlineHDFS简 介 关键运行机制及关键运行机制及API 文件读取 在客户端DFSClient中,有一个 DFSClient.DFSInputStream类。当需 要读取一个文件的时候,会生成一个DFSInputStream的实例 DFSInputStream的实例调用 ClientProtocol定义getBlockLocations 接口,取得一个 LocatedBlocks类的对象,这个对象包含一组 LocatedBlock,那里面有所规定位置中包含的所有数据块信息,以及 数据
20、块对应的所有数据服务器的位置信息 读取开始, DFSInputStream的Read方法 如有读取时发现错误,客户端向Namenode报告corrupted块的信息 public void reportBadBlocks(LocatedBlock blocks) HDFS云存储之HDFSOutlineHDFS简 介 关键运行机制及关键运行机制及API 文件存入 DFSClient也有一个 DFSClient.DFSOutputStream类,写入开始,会 创建此类的实例 DFSOutputStream会从NameNode上拿一个 LocatedBlock 写入开始,调用DFSOutputStream的Write方法 HDFS云存储之HDFSOutlineHDFS简 介 关键运行机制及关键运行机制及API ClientProtocol(系统管理相关接口)(系统管理相关接口) 监听客户端,Namenode监听到某个客户端发送的心跳状态 public void renewLease(String clientName) 获
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客户回访与维护策略制定及实施情况报告
- 快消品行业销售面试技巧培训
- 零售业培训讲师招聘面试要点
- 快消品行业市场部面试问题详解
- 旅游行业广州项目负责人面试要点
- 立信会计师事务所审计专员面试全攻略
- 2026贵州贵阳贵安招聘中小学(幼儿园)教师819人备考题库附参考答案详解(模拟题)
- 2026广东佛山顺德区梁銶琚夫人幼儿园招聘2人备考题库(综合题)附答案详解
- 2026江苏盐城市滨海县校园招聘教师76人备考题库带答案详解(突破训练)
- 2026广西上林国民村镇银行春季招聘备考题库【典优】附答案详解
- (2026年)实施指南《FZT 41001-2013桑蚕绢纺原料》
- 财务分析盈利能力分析教案
- 新津区邓双100MW-200MWh独立储能电站项目环境影响报告表
- 《水溶肥生产工艺技术要求》(征求意见稿)-编制说明
- 危大工程开工前安全生产条件核查
- 【高三】主题班会:高校、高考、高三【课件】
- 2025年中国塑料制品出口分析及各国进口政策影响白皮书-特易资讯
- 2025年全国氧化工艺危险化学品作业证考试题库(含答案)
- 2025年山东省委党校在职研究生招生考试(政治理论)历年参考题库含答案详解(5卷)
- 2025年农村危房改造项目实施方案风险评估与应对策略报告
- 2025年新华人寿保险公司招聘笔试备考题库(带答案详解)
评论
0/150
提交评论