栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

进一步走近HDFS

进一步走近HDFS

1.定义

HDFS是Hadoop Distribute File System的缩写,它是Google公司的GFS分布式文件系统的开源实现,是Apache Hadoop项目的一个子项目。支持海量数据的存储,成百上千的计算机组成存储集群,HDFS可以运行在低成本的硬件之上,具有的高容错、高可靠性、高可扩展性、高吞吐率等特征,非常适合大规模数据集上的应用。

1.1优点
    数据冗余 ,高容错性 数据自动保存多个副本 副本丢失后,自动恢复 可构建在廉价机器上流式文件访问 一次性写入,多次读取 保证数据一致性适合大数据处理 GB、TB、甚至PB级数据适合批处理 吞吐量高
1.2缺点
    不适合低延迟数据访问 比如毫秒级 低延迟与高吞吐率不适合小文件存取 占用NameNode大量内存 寻道时间超过读取时间不适合并发写入、文件随机修改 一个文件只能有一个写入者 仅支持append
2.HDFS组成与架构

 1.NameNode的职责(Master)

管理维护HDFS

接收客户端的请求:上传、下载、创建目录等

维护了两个非常重要的文件:edits日志文件和fsimage镜像文件

HDFS的元信息:fsimage文件

就跟edits文件在一起

记录:数据块的位置、冗余信息、文件属性等

二进制-Protobuf编码格式

HDFS提供一个 image viewer ----> 文本或者xml


edits记录了HDFS的操作日志

最新的操作日志:edits_inprogress****

都是二进制

HDFS提供一个工具:edits viewer 日志查看器 ----> XML

2.Secondary NameNode的职责

工作:把edits中最新的状态信息合并到fsimage文件中

目的:防止edits过大

1)每隔60分钟 2)当edits文件达到100万条事务,即进行合并。

 3.DataNode的职责(Slave)

职责:保存文件内容(数据块,默认128M块大小)

例子:上传一个大于128M的文件(例子为206M)

hdfs dfs -put hadoop-2.7.3.tar.gz

上传完成,打印文件的Block报告

hdfs fsck /user/hadoop/hadoop-2.7.3.tar.gz -files -blocks

 为什么分块?

一个巨大的文件一块磁盘空间不够  利于备份  提高吞吐量

 数据块冗余存储

DataNode选择机制:

第一个副本:放置在上传文件的数据节点;如果是集群外提交,则随机挑选一台磁盘不太满、CPU不太忙的节点第二个副本:放置在与第一个副本相同的机架的节点上 第三个副本:与第二个副本不同机架的其他节点上更多副本:随机节点

 3.HDFS读写文件流程 3.1读文件流程

3.2写文件流程    3.3HDFS容错

HDFS具有较高的容错性,可以兼容廉价的硬件,它把硬件出错看作一种常态,而不是异常,并设计了相应的机制检测数据错误和进行自动恢复,主要包括以下几种情形:

名称节点出错 数据节点出错 数据出错

1、NameNode出错:用Secondary NameNode备份的fsimage恢复

2、DataNode出错:DataNode与NameNode通过“心跳”报告状态(每个数据节点会定期向名称节点发送“心跳”信息,向名称节点汇报自己的状态;当数据节点发生故障或者网络断网,名称节点就无法收到来自数据节点的心跳信息),失效后会启动数据冗余复制。 3、数据出错:采用md5和sha1对数据块进行校验。

4.安全模式-Safe Mode

4.1安全模式下:

文件系统只接受读数据请求

不能对数据进行修改、删除等写的操作

NameNode 主节点启动进入安全模式

离开安全模式,需要满足以下条件:     

1. 达到副本数量要求的block比例满足要求;   

 2. 可用的datanode节点数满足配置的数量要求;     

3. 1、2 两个条件满足后维持的时间达到配置的要求

command功能
get查看当前状态
enter进入安全模式
leave强制离开安全模式
wait一直等待直到安全模式结束
4.2回收站

HDFS为每一个用户都创建了回收站,这个类似操作系统的回收站。

位置是/user/用户名/.Trash/。

操作演示:

1、列出某目录下的文件:hdfs dfs -ls

2、把其中的一个文件file1删除:hdfs dfs -rm file1

3、到回收站可看到刚才删除的file1 hdfs dfs -ls /user/hadoop/.Trash/Current/tmp

4、把file1从回收站移动到/home/haoop/目录下

hdfs dfs -mv   /user/hadoop/.Trash/Current/tmp/file1   /home/hadoop/

5、到/home/hadoop/查看即可看到恢复的文件file1 hdfs dfs -ls /tmp/sqoop1

4.3快照

快照:基于某时间点的数据的备份复制

作用:数据损坏时恢复到过去一个正确的时间点

4.4HA(High Availability高可用)

NameNode是集群的主,有单点失效的问题。

 配置两个NameNode,一个为活跃状态,一个为备用状态。故障时马上切换

 4.5联邦Federation

使用联邦的原因:

(1) 系统扩展性方面,元数据存储在NN内存中,受内存上限的制约。

(2) 整体性能方面,吞吐量受单个NN的影响。

(3) 隔离性方面,一个程序可能会影响其他运行的程序,如一个程序消耗过多资源导致其他程序无法顺利运行。HDFS HA本质上还是单名称节点。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/775901.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号