第5章HDFS 《大数据技术基础》
《大数据技术基础》 第5 章 HDFS
提纲 51分布式文件系统 52HDFS简介 53HDFS相关概念 54HDFS体系结构 55HDFs存储原理 56HDFS大数据读写过程 57HDFS编程实践
提纲 • 5.1 分布式文件系统 • 5.2 HDFS简介 • 5.3 HDFS相关概念 • 5.4 HDFS体系结构 • 5.5 HDFS存储原理 • 5.6 HDFS大数据读写过程 • 5.7 HDFS编程实践
5.1分布式文件系统 5.1.1 计算机集群结构 5.1.2 分布式文件系统的结构 5.1.3 分布式文件系统的设计需求
5.1 分布式文件系统 • 5.1.1 计算机集群结构 • 5.1.2 分布式文件系统的结构 • 5.1.3 分布式文件系统的设计需求
5.1.1计算机集群结构 ·分布式文件系统把文件分布存储到多个计算机节点上,成千上万的计算 机节点构成计算机集群 与之前使用多个处理器和专用高级硬件的并行化处理装置不同的是,目 前的分布式文件系统所采用的计算机集群,都是由普通硬件构成的,这就 大大降低了硬件上的开销 交换机 节点x 网络互联 节点y 机架2 图5-1计算机集群的基本架构
5.1.1 计算机集群结构 •分布式文件系统把文件分布存储到多个计算机节点上,成千上万的计算 机节点构成计算机集群 •与之前使用多个处理器和专用高级硬件的并行化处理装置不同的是,目 前的分布式文件系统所采用的计算机集群,都是由普通硬件构成的,这就 大大降低了硬件上的开销 图5-1 计算机集群的基本架构
512分布式文件系统的结构 分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,这些节点分为 两类,一类叫“主节点”( Master node)或者也被称为“名称结点”( NameNode), 另一类叫“从节点”( Slave node)或者也被称为“数据节点”( DataNode) 客户端)访问请求 主节点 访问请求(客户端 读 写 数据节点 数据节点 复制 丰块 机架 机架n 图5-2大规模文件系统的整体结构
5.1.2 分布式文件系统的结构 分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,这些节点分为 两类,一类叫“主节点”(Master Node)或者也被称为“名称结点”(NameNode), 另一类叫“从节点”(Slave Node)或者也被称为“数据节点”(DataNode) 图5-2 大规模文件系统的整体结构
513分布式文件系统的设计需 求 分布式文件系统的设计目标主要包括透明性、并发控制、可伸缩性、 容错以及安全需求等。但是,在具体实现中,不同产品实现的级别和方式 都有所不同。 ●透明性 含义:具备访问透明性、位置透明性和伸缩透明性 HDFS实现情况:只能提供一定程度的访问透明性,完全支持位置透 明性和伸缩透明性 ●并发控制 含义:客户端对于文件的读写不应该影响其他客户端对同一个文件的 读写 HDFS实现情况:机制非常简单,任何时间都只允许有一个程序在写 入某个文件
5.1.3 分布式文件系统的设计需 分布式文件系统的设计目标主要包括透明性、并发控制、可伸缩性、 求 容错以及安全需求等。但是,在具体实现中,不同产品实现的级别和方式 都有所不同。 ●透明性 含义:具备访问透明性、位置透明性和伸缩透明性 HDFS实现情况:只能提供一定程度的访问透明性,完全支持位置透 明性和伸缩透明性 ●并发控制 含义:客户端对于文件的读写不应该影响其他客户端对同一个文件的 读写 HDFS实现情况:机制非常简单,任何时间都只允许有一个程序在写 入某个文件
513分布式文件系统的设计需 求 ●文件复制 含义:一个文件可以拥有在不同位置的多个副本 HDFS实现情况:HDFS采用了多副本机制 ●硬件和操作系统的异构性 含义:可以在不同的操作系统和计算机上实现同样的客户端 和服务器端程序 HDFS实现情况:采用Java语言开发,具有很好的跨平台能
5.1.3 分布式文件系统的设计需 求 ●文件复制 含义:一个文件可以拥有在不同位置的多个副本 HDFS实现情况:HDFS采用了多副本机制 ●硬件和操作系统的异构性 含义:可以在不同的操作系统和计算机上实现同样的客户端 和服务器端程序 HDFS实现情况:采用Java语言开发,具有很好的跨平台能 力
513分布式文件系统的设计需 求 ●容错 含义:保证文件服务在客户端或者服务端出现问题的时候能正常 使用 HDFS实现情况:具有多副本机制和故障自动检测、恢复机制 ●可伸缩性 含义:支持节点的动态加入或退出 HDFS实现情况:建立在大规模廉价机器上的分布式文 件系统集群,具有很好的可伸缩性 ●安全 含义:保障系统的安全性 HDFS实现情况:安全性较弱
5.1.3 分布式文件系统的设计需 求 ●安全 含义:保障系统的安全性 HDFS实现情况:安全性较弱 ●可伸缩性 含义:支持节点的动态加入或退出 HDFS实现情况:建立在大规模廉价机器上的分布式文 件系统集群,具有很好的可伸缩性 ●容错 含义:保证文件服务在客户端或者服务端出现问题的时候能正常 使用 HDFS实现情况:具有多副本机制和故障自动检测、恢复机制
52HDFS简介 总体而言,HDFS要实现以下目标 ●兼容廉价的硬件设备 ●流数据读写 大数据集 简单的文件模型 ●强大的跨平台兼容性 HDFS特殊的设计,在实现上述优良特性的同时,也使得自身具有一些应用 局限性,主要包括以下几个方面 不适合低延迟数据访问 无法高效存储大量小文件 ●不支持多用户写入及任意修改文件
5.2 HDFS简介 总体而言,HDFS要实现以下目标: ●兼容廉价的硬件设备 ●流数据读写 ●大数据集 ●简单的文件模型 ●强大的跨平台兼容性 HDFS特殊的设计,在实现上述优良特性的同时,也使得自身具有一些应用 局限性,主要包括以下几个方面: ●不适合低延迟数据访问 ●无法高效存储大量小文件 ●不支持多用户写入及任意修改文件
531块 HDFS采用抽象的块概念可以带来以下几个明显的好处: ●支持大规模文件存储:文件以块为单位进行存储,一个大规模文件 可以被分拆成若干个文件块,不同的文件块可以被分发到不同的节点上, 因此,一个文件的大小不会受到单个节点的存储容量的限制,可以远远 大于网络中任意节点的存储容量 ●简化系统设计:首先,大大简化了存储管理,因为文件块大小是固 定的,这样就可以很容易计算出一个节点可以存储多少文件块;其次 方便了元数据的管理,元数据不需要和文件块一起存储,可以由其他系 统负责管理元数据 ●适合数据备份:每个文件块都可以冗余存储到多个节点上,大大提 高了系统的容错性和可用性
5.3.1 块 HDFS采用抽象的块概念可以带来以下几个明显的好处: ● 支持大规模文件存储:文件以块为单位进行存储,一个大规模文件 可以被分拆成若干个文件块,不同的文件块可以被分发到不同的节点上, 因此,一个文件的大小不会受到单个节点的存储容量的限制,可以远远 大于网络中任意节点的存储容量 ● 简化系统设计:首先,大大简化了存储管理,因为文件块大小是固 定的,这样就可以很容易计算出一个节点可以存储多少文件块;其次, 方便了元数据的管理,元数据不需要和文件块一起存储,可以由其他系 统负责管理元数据 ● 适合数据备份:每个文件块都可以冗余存储到多个节点上,大大提 高了系统的容错性和可用性