HDFS的可靠性

1、冗余副本策略   2、机架策略    3、心跳机制    4、安全模式

5、校验和           6、回收站       7、元数据保护    8、快照机制

1、冗余副本策略

可以在hdfs-site.xml中设置复制因子指定副本数量
 所有数据块都有副本
 Datanode启动时,遍历本地文件系统,产生一份hdfs数据块和本地文件的对应关系列表(blockreport)汇报给namenode

2、机架策略

集群一般放在不同机架上,机架间带宽要比机架内带宽要小
 HDFS的“机架感知”
 一般在本机架存放一个副本,在其它机架再存放别的副本,这样可以防止机架失效时
丢失数据,也可以提高带宽利用率

3、心跳机制

Namenode周期性从datanode接收心跳信号和块报告
 Namenode根据块报告验证元数据
 没有按时发送心跳的datanode会被标记为宕机,不会再给它任何I/O请求
 如果datanode失效造成副本数量下降,并且低于预先设置的阈值,namenode会检测出这些数据块,并在合适的时机进行重新复制
 引发重新复制的原因还包括数据副本本身损坏、磁盘错误,复制因子被增大等

4、安全模式

Namenode启动时会先经过一个“安全模式”阶段
 安全模式阶段不会产生数据写
 在此阶段Namenode收集各个datanode的报告,当数据块达到最小副本数以上时,
会被认为是“安全”的
 在一定比例(可设置)的数据块被确定为“安全”后,再过若干时间,安全模式结束
 当检测到副本数不足的数据块时,该块会被复制直到达到最小副本数

5、校验和

在文件创立时,每个数据块都产生校验和
 校验和会作为单独一个隐藏文件保存在命名空间下
 客户端获取数据时可以检查校验和是否相同,从而发现数据块是否损坏
 如果正在读取的数据块损坏,则可以继续读取其它副本

6、回收站

删除文件时,其实是放入回收站/trash
 回收站里的文件可以快速恢复
 可以设置一个时间阈值,当回收站里文件的存放时间超过这个阈值,就被彻底删除,并且释放占用的数据块

7、元数据保护

映像文件刚和事务日志是Namenode的核心数据。可以配置为拥有多个副本
 副本会降低Namenode的处理速度,但增加安全性
 Namenode依然是单点,如果发生故障要手工切换

8、快照机制

支持存储某个时间点的映像,需要时可以使数据重返这个时间点的状态
 Hadoop目前还不支持快照,已经列入开发计划

怎样添加新节点?

在新节点安装好hadoop
 把namenode的有关配置文件复制到该节点
 修改masters和slaves文件,增加该节点
 设置ssh免密码进出该节点
 单独启动该节点上的datanode和tasktracker(hadoop-daemon.sh start datanode/tasktracker)
 运行start -balancer.sh进行数据负载均衡

负载均衡:

作用:当节点出现故障,或新增加节点时,数据块分布可能不均匀,负载均衡可以重新平衡各个datanode上数据块的分布

HDFS的可靠性的更多相关文章

  1. HDFS 的可靠性

    HDFS 的可靠性主要有一下几点: 冗余副本策略 机架策略 心跳机制 安全模式 效验和 回收站 元数据保护 快照机制 1.冗余副本策略 可以在hdfs-site.xml中设置复制因子指定副本数量 所有 ...

  2. 何为HDFS?

    该文来自百度百科,自我收藏. Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.它和现有的分布式文件系统有很多共同点.但同时, ...

  3. Hadoop学习笔记—2.不怕故障的海量存储:HDFS基础入门

    一.HDFS出现的背景 随着社会的进步,需要处理数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是却不方便管理和维护—>因此,迫切需要一种系统来管理多 ...

  4. Hadoop官方文档翻译——HDFS Architecture 2.7.3

    HDFS Architecture HDFS Architecture(HDFS 架构) Introduction(简介) Assumptions and Goals(假设和目标) Hardware ...

  5. hdfs工作原理

    一.NameNode和DataNode (1)NameNode NameNode的作用是管理文件目录结构,是管理数据节点的.NameNode维护两套数据:一套是文件目录与数据块之间的关系,另一套是数据 ...

  6. Hadoop第三天---分布式文件系统HDFS(大数据存储实战)

    1.开机启动Hadoop,输入命令:  检查相关进程的启动情况: 2.对Hadoop集群做一个测试:   可以看到新建的test1.txt和test2.txt已经成功地拷贝到节点上(伪分布式只有一个节 ...

  7. hadoop笔记之hdfs

    1.HDFS设计基础与目标 1.HDFS设计基础与目标 (1)硬件错误是常态,因此需要冗余. (2)流式数据访问.即数据批量读取而非随机读写,Hadoop擅长做的是数据分析而不是事务处理. (3)大规 ...

  8. 每天收获一点点------Hadoop之HDFS基础入门

    一.HDFS出现的背景 随着社会的进步,需要处理数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是却不方便管理和维护—>因此,迫切需要一种系统来管理多 ...

  9. HDFS概述(1)————HDFS架构

    概述 Hadoop分布式文件系统(HDFS)是一种分布式文件系统,用于在普通商用硬件上运行.它与现有的分布式文件系统有许多相似之处.然而,与其他分布式文件系统的区别很大.HDFS具有高度的容错能力,旨 ...

随机推荐

  1. Mvc4_ActionResult应用

    通常我们在一个ASP.NET MVC项目中创建一个Controller的时候,Index()方法默认的返回类型都是ActionResult,通过查看UML图,ActionResult实际上是一个抽象类 ...

  2. 基因组组装工具之 SOAPdenovo 使用方法

    SOAPdenovo是一个新颖的适用于组装短reads的方法,能组装出类似人类基因组大小的de novo草图. 该软件特地设计用来组装Illumina GA short reads,新的版本减少了在图 ...

  3. oracel数据库基本知识和基本查询方法

    Oracel数据库学习1.小型数据库 access,foxbase 中型数据库 mysql,sqlserver,informix 大型数据库 sybase,Oracle,db2 Oracle数据库需求 ...

  4. EF Core » 关系

    对初学者理解关系很有用,先留下来,有时间边看边翻译. Caution 注意 This documentation is for EF Core. For EF6.x and earlier relea ...

  5. 阿里Linux Shell脚本面试25个经典问答

    转载: 阿里Linux Shell脚本面试25个经典问答 Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命 ...

  6. 关于http响应内容压缩的一点小积累。

    1.在tomcat的server.xml配置文件中,添加上背景颜色为绿色的配置,服务器就会自动压缩 <Connector port="80" maxHttpHeaderSiz ...

  7. ajax正确的简单封装“姿势”

    window.meng = window.meng || {}; (function ($) { function getAjaxDate(url, apikey) { var datas; $.aj ...

  8. Qt之QCustomPlot(图形库)

    简述 QCustomPlot是一个基于Qt C++的图形库,用于绘制和数据可视化 - 制作漂亮的2D图 - 曲线图.趋势图.坐标图.柱状图等,并为实时可视化应用程序提供高性能服务.它没有进一步的依赖关 ...

  9. Runner站立会议之个人记录

    备注: 为方便记录,此随笔每日更新(因会议在晚上开,所以将昨天今天改成了今天明天) 2016.4.19  站立会议 今天学习到了:文件创建,adt基本知识,分别在虚拟机和手机上运行软件 明天要:继续学 ...

  10. python中字符串与列表的相互转换

    列表转字符串 list1 = ['abc' , 'def' , 'ghi'] str1 = ','.join(list1) str1 = '##'.join(list1) 字符串转列表 str1 = ...