大数据学习笔记 第三章 分布式文件系统 HDFS

分布式文件系统HDFS 简介

HDFS实现目标:
①兼容廉价的硬件设备
②实现流数据的读写
③支持大数据集
④支持简单的文件模型
⑤强大的跨平台兼容性

HDFS自身的局限性
① 不适合低延迟数据访问
②无法高效存储大量小文件
③不支持多用户写入及任意修改文件

HDFS相关概念

1.块
整个HDFS中最核心的概念

为了分摊磁盘读写开销
HDFS的一个块要比普通文件大

缺点:如果块过大,会导致MapReduce 就一两个任务在执行完全牺牲了MapReduce的并行度,发挥不了分布式并行处理的效果。

好处:①支持大规模文件存储②简化系统设计③适合数据备份

2.名称节点与数据节点

名称节点(主节点)
相当于整个HDFS的管家,数据目录

数据目录:①文件是什么②文件被分成多少块③每个块和文件是怎么映射的④每个块被存储在哪个服务器上面

内容:
①FsImage 保存系统文件树
文件的复制等级、修改和访问时间、访问权限、块大小以及组成文件的块
②EditLog 记录对数据进行的创建删除重命名操作
大数据学习笔记 第三章 分布式文件系统 HDFS_第1张图片
第二名称节点:
① 名称节点的冷备份 ② 对Editlog的处理

数据节点:
存:保存在本地Linux

HDFS体系架构

1. HDFS命名空间
目录、文件、块
/+目录结构
通讯协议:TCP/IP

2.局限性
HDFS1.0
①命名空间限制:名称节点都是保存在内存中。名称节点能够容纳的对象(文件块)的格数会受到限制。
②性能的瓶颈:整个分布式文件的吞吐量,受限于单个名称节点的吞吐量
③隔离问题:由于集群中只有一个名称节点,只有一个命名空间,因此无法对不同应用程序进行隔离
④集群的可用性:一旦这个唯一的名称节点发生故障,会导致整个集群变的不可用 (SecondaryNamenode 是冷备份,不能立即代替NameNode)

HDFS存储原理

1.数据冗余保存问题:
底层→缺陷(不断出故障)→冗余数据保存

好处:①加快数据传输速度②检查数据错误③保证数据可靠性

HDFS提供一个APU可以确定一个数据节点所属的机架ID,客户端可以调用API获取自己所属的机架ID。

2.数据的错误和恢复

名称节点出错
大数据学习笔记 第三章 分布式文件系统 HDFS_第2张图片

数据节点出错

大数据学习笔记 第三章 分布式文件系统 HDFS_第3张图片
数据出错:

通过检验码判断数据是否错误大数据学习笔记 第三章 分布式文件系统 HDFS_第4张图片

HDFS数据读写过程

读数据:
第一步:打开文件
HDFS客户端 →用Distributed FileSystem 类声明一个实例对象fs:
FileSystem.get(conf)
创建FsData Input Stream

第二步:获取数据块信息

由DFInputStream 查找下一个数据块

第三步:读取请求
第四步:读取数据
第五步:获取数据块信息

写数据
第一步:创建文件请求

第三步:写入数据
第四步:写入数据包
第五步:接受确认包

HDFS编程实践

大数据学习笔记 第三章 分布式文件系统 HDFS_第5张图片
fs:
①Is:显示指定文件的详细信息
②mkdir:创建相关文件夹
③cat:指定文件内容输出到标准输出

hadoop fs -cp 本地文件 HDFS :将本地文件传输到HDFS中

利用JAVA API 和HDFS进行交互
实例:分布式文件系统HDFS上是否存在某个文件
准备工作:在Ubuntu系统中安装和配置Eclipse
第一步:放置配置文件到当前工程下面(eclipse工作目录的bin文件夹下面)
第二步:编写实现代码

你可能感兴趣的:(大数据学习笔记 第三章 分布式文件系统 HDFS)