一、什么是安全模式

  hadoop安全模式是name node的一种状态,处于该状态时有种量特性:

    1.namenode不接受任何对hfds文件系统的改变操作(即此时整个文件系统处于只读状态);

    2.不执行block的replica和delete动作。

二、安全模式的原理

  安全模式实在name node启动时默认进入的,当然也可以手动开启或关闭安全模式。

  在name node启动后自动进入安全模式,这时data nodes向name node汇报各自节点的block信息。要想自动离开安全模式需要满足三个条件:

    (1)threshold of blocks      blocks检查率阈值

    (2)minimal replication condition      每一个块必须满足最少replicas

    (3)extends time    延迟时间

  具体逻辑为:name node收集到满足threshold of blocks值的block汇报信息,而这些block的备份数都必须满足minimal replication condition值,当这两个条件都满足后,name node会在extends time时间之后退出安全模式(在extends time这段时间里,name node让没汇报完的数据节点继续检查block信息)对丢失block进行replica和接收客户端请求操作。

  以上三个对应的配置参数为:

    dfs.safemode.threshold.pct 
    dfs.safemode.extension 
    dfs.replication.min

三、特殊设置

  当dfs.safemode.threshold.pct=0时,name node启动不会进去安全模式

  当dfs.safemode.threshold.pct=1时,所有的块必须有至少dfs.replication.min个replication才能自动退出安全模式

  当dfs.safemode.threshold.pct>1时,name node永远不会自动退出安全模式

四、手动设置开启、退出安全模式

  见org.apache.hadoop.hdfs.protocol.ClientProtocol接口的setSafeMode方法。

hadoop源码剖析--hdfs安全模式的更多相关文章

  1. Hadoop源码之HDFS(1)--------通信方式

    说起hadoop这个东西,只能说真是个伟大的发明,而本人对cutting大神也是无比的崇拜,记得刚接触hadoop的时候,还觉得这个东西挺多余的,但是现在想想,这个想法略傻逼...... 2006-2 ...

  2. hadoop源码剖析--$HADOOP_HOME/bin/hadoop脚本文件分析

    1. $HADOOP_HOME/bin/ hadoop #!/usr/bin/env bash# Licensed to the Apache Software Foundation (ASF) un ...

  3. hadoop源码剖析--RawLocalFileSystem

    RawLocalFileSystem是hadoop中实现的本地文件系统,在该类中与文件元数据和目录相关的操作,都是通过适配方式适配到java.io.File的对应API来完成的,适配过程简单,代码清晰 ...

  4. (升级版)Spark从入门到精通(Scala编程、案例实战、高级特性、Spark内核源码剖析、Hadoop高端)

    本课程主要讲解目前大数据领域最热门.最火爆.最有前景的技术——Spark.在本课程中,会从浅入深,基于大量案例实战,深度剖析和讲解Spark,并且会包含完全从企业真实复杂业务需求中抽取出的案例实战.课 ...

  5. Hadoop源码学习笔记之NameNode启动场景流程二:http server启动源码剖析

    NameNodeHttpServer启动源码剖析,这一部分主要按以下步骤进行: 一.源码调用分析 二.伪代码调用流程梳理 三.http server服务流程图解 第一步,源码调用分析 前一篇文章已经锁 ...

  6. Hadoop源码学习笔记之NameNode启动场景流程一:源码环境搭建和项目模块及NameNode结构简单介绍

    最近在跟着一个大佬学习Hadoop底层源码及架构等知识点,觉得有必要记录下来这个学习过程.想到了这个废弃已久的blog账号,决定重新开始更新. 主要分以下几步来进行源码学习: 一.搭建源码阅读环境二. ...

  7. Apache Spark源码剖析

    Apache Spark源码剖析(全面系统介绍Spark源码,提供分析源码的实用技巧和合理的阅读顺序,充分了解Spark的设计思想和运行机理) 许鹏 著   ISBN 978-7-121-25420- ...

  8. Hadoop源码编译过程

    一.           为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通 ...

  9. 如何导入hadoop源码到eclipse

    需要进一步学习hadoop.需要看看内部源码实现,因此需要将hadoop源码导入都eclipse中. 简单总结一下,具体步骤如下: 首先确保已经安装了git.maven3.protobuf2.5.如果 ...

随机推荐

  1. EMI-CLK信号串电阻并电容

    一般DMIC的CLK都会EMI超标,所以看到的案子这个DMIC CLK信号都会源端串接电阻和并电容 1,串电阻是为了信号的完整性,考虑到匹配的,一般说来这个电阻不是固定的,要随实际的PCB的走线的阻抗 ...

  2. adb 功能大全

    当然首先是须要进入cmd命令行,执行 adb shell的. 以下介绍一些我们常常须要可是不怎么会用的命令 1. df -sh 查看当前目录占用空间大小 2. du 查看系统如今的内存使用情况 3. ...

  3. URL Handle in Swift (二) — 响应链处理 URL

    最后更新: Swift4时候的博客,以前在 CMD markdown 上编辑的,现在搬到这里 在上篇文章-URL Handle in Swift (一) -- URL 分解中,我们已经将URL进行了分 ...

  4. Shell脚本笔记 1

    函数别名 设置别名 alias name="command" alias ll="ls -laS" 取消别名 unalias name 求取数学表达式 valu ...

  5. Hadoop起源

    本文来自Doug Cutting为<Hadoop权威指南>所作之序,感觉读一下还是挺有收获的. Hadoop 起源于Nutch项目.我们几个人有一段时间一直在尝试构建一个开源的Web搜索引 ...

  6. 五个知识体系之-SQL学习-第二天

    创建数据:INSERT INTO userinfo(userid,username,job,level1,companyage) VALUES ('001','xl001','test','P1',' ...

  7. 【BZOJ1115】[POI2009]石子游戏Kam 阶梯博弈

    [BZOJ1115][POI2009]石子游戏Kam Description 有N堆石子,除了第一堆外,每堆石子个数都不少于前一堆的石子个数.两人轮流操作每次操作可以从一堆石子中移走任意多石子,但是要 ...

  8. 九度OJ 1176:树查找 (完全二叉树)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5209 解决:2193 题目描述: 有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY.该树是完全二叉树. 输入: 输入 ...

  9. CNN延拓至 复数域

  10. 【网络与系统安全】20179209 利用metasploit对windows系统的渗透

    这次实验的主角是素有"内网杀手"之称的metasploit.还是少说一些夸赞它的话(因为即使功能再强大,不明白它的原理,不会灵活使用它集成的功能,一样没有用),我们直入主题.简单说 ...