没有合适的资源?快使用搜索试试~ 我知道了~
HDFS及优化综述_朱紫钰_20192622781
需积分: 0 0 下载量 176 浏览量
2022-08-08
18:08:26
上传
评论
收藏 1.69MB DOCX 举报
温馨提示
试读
21页
摘要:DHFS作为Hadoop分布式存储系统,具有高容错,高吞吐量,一致性的特点,但是对于小文件存储、缓存和通信方面还有许多可优化之处。小文件存储;缓存;通信优
资源详情
资源评论
资源推荐
研究生课程考试答题册
得 分:
学 号 2019262278
姓 名 朱紫钰
考试课目 Design and Development of Large Scale Software
考试日期 2019.01.10
西北工业大学研究生院
1
HDFS 及优化综述
朱紫钰
(西北工业大学 计算机学院,西安 710072)
摘 要:DHFS 作为 Hadoop 分布式存储系统,具有高容错,高吞吐量,一致性的特点,但是
对于小文件存储、缓存和通信方面还有许多可优化之处。
关 键 词:HDFS;小文件存储;缓存;通信优化
1 HDFS 简介
Hadoop 分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上
的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式
文件系统的区别也是很明显的。它是一个高度容错性的系统,支持多异构机器,适合部署在
廉价的机器上。HDFS 能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。同时,
HDFS 放宽了一部分 POSIX 约束,来实现流式读取文件系统数据的目的。HDFS 在最开始是
作为 Apache Nutch 搜索引擎项目的基础架构而开发的。HDFS 是 Apache Hadoop Core 项目
的一部分。但是现在可以作为单独的应用使用。HDFS 包含 Java 和 C++等多种语言接口。
HDFS 具体包含的优点如下:
1. 高度容错性。由于 HDFS 适合大文件存储,并且 HDFS 可能由成百上千的服务器
所构成,每个服务器上存储着文件系统的部分数据,因此机器失效的情况不可避免,进而此
错误检测和快速、自动的恢复是 HDFS 最核心的架构目标。
2. 支持流式数据访问,高吞吐量。
3. 支持大规模数据集。一个部署在 HDFS 上的文件单位可能是 G 甚至是 T,因此
HDFS 限定最小的结点单位为 64M,HDFS 文件大小总是最小节点单元的整数倍。一个节点
不可跨机器。
4. 支持简单的一致性模型。在文件创作之后,不再改变。因此要支持一次写入,多次
读取的特性。
5. 移动计算优于移动数据。优于数据拷贝巨大,因此将计算程序分布于不同机器。
6. 异构性。对机器要求低,跨机器忽略硬件,能够搭建逻辑集群。
2 HDFS 架构
2
图 1:HDFS 基础架构
图 1 是基础架构。Namenode 和 Datanode 被设计成可以在普通的商用机器上运行。这些
机器一般运行着 GNU/Linux 操作系统(OS)。HDFS 采用 Java 语言开发,因此任何支持 Java
的机器都可以部署 Namenode 或 Datanode。由于采用了可移植性极强的 Java 语言,使得
HDFS 可以部署到多种类型的机器上。一个典型的部署场景是一台机器上只运行一个
Namenode 实例,而集群中的其它机器分别运行一个 Datanode 实例。这种架构并不排斥在一
台机器上运行多个 Datanode。HDFS 是标准的列存储结构,列存储结构的示意图如下:
图 2:HDFS 列存储结构
3 HDFS 的压缩算法对比
3
HDFS 中常用的数据压缩算法分为可拆分和不可拆分两类。Snappy 具有高压缩速度和
较好的压缩率。它在速度和压缩率之间作了较好的权衡。由于 Snappy 是不可拆分算法,即压
缩后的文件不可拆分,它需要在一个特定的文件格式(如 Parquet、ORC)中使用。LZO 和
Snappy 类似,比较注重压缩速度。不同的是 LZO 压缩后的文件是可拆分的.因此相对于
Snappy,LZO 更适合用作一个独立的压缩格式来对 HDFS 上的文本格式的文件进行压
缩.Gzip 提供了较高的压缩性能,平均达到 Snappy 的 2.5 倍,但是它的写入性能不如 Snappy.
在读性能方面,Gzip 和 Snappy 接近。Gzip 同样是不可拆分算法,因此也需要嵌入在一个文
件格式中使用。在部分情况下 Gzip 的压缩效果太好,导致压缩出的数据很小、数据块数很少,
所以在执行数据处理任务时的并行度可能会偏低,从而导致数据处理的速度反而降低[38].
这个问题可以通过使用较小的数据块来避免.bzip2 提供了非常好的压缩性能,但是其解压性
能较差,通常只用于存储空间非常有限的情况。
4 HDFS 的应用、分析及改进
HDFS 改进方案 1:通过改进 HDFS 元数据管理方案,来负责存储和管理大数据。由于
当前的 HDFS 基于元数据管理,因此 HDFS 在系统利用率方面还存在许多问题。现有一种
基于 RDBMS 的方式改善 HDFS 的功能方面。众所周知,现有的 HDFS 存在五个问题。第
一个问题是,因为现有的 HDFS 加载了所有元数据进入 NameNode,因此主内存中的文件
(或目录)数可能会受到限制。二是现有的 HDFS 管理的元数据在复杂的映像和日志文件
中,这会导致较长的引导时间去查找元数据。三是现有系统只能通过命令来搜索或修改元数
据,并且这种基于命令的方案对于分布式的环境具有很高的依赖性。四是由于 Hadoop 管理
元数据在单个 NameNode(或在联合模式下的一个或多个单独的 NameNode)中,对 HDFS
的所有访问请求都需要通过相应的 NameNode。这种访问结构严重限制了 Hadoop 的可扩展
性。五是所有对文件的查看都需要通过 HDFS,不能用户单独操作文件。综合起来即鲁棒性,
依赖性和可扩展性三项问题。现我们考虑一种新型的 HDFS 架构,如图:
剩余20页未读,继续阅读
白羊带你成长
- 粉丝: 21
- 资源: 329
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0