• HDFS启动过程概述及集群安全模式操作


    1.启动过程概述

    Namenode启动时,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsimage文件和一个空的编辑日志。此时,namenode开始监听datanode请求。但是此刻,namenode运行在安全模式,即namenode的文件系统对于客户端来说是只读的。

    系统中的数据块的位置并不是由namenode维护的,而是以块列表的形式存储在datanode中。在系统的正常操作期间,namenode会在内存中保留所有块位置的映射信息。在安全模式下,各个datanode会向namenode发送最新的块列表信息,namenode了解到足够多的块位置信息之后,即可高效运行文件系统。

    如果满足“最小副本条件”,namenode会在30秒钟之后就退出安全模式。所谓的最小副本条件指的是在整个文件系统中99.9%的块满足最小副本级别(默认值:dfs.replication.min=1)。在启动一个刚刚格式化的HDFS集群时,因为系统中还没有任何块,所以namenode不会进入安全模式。

    2.基本语法

    集群处于安全模式,不能执行重要操作(写操作)。集群启动完成后,自动退出安全模式。

    (1)bin/hdfs dfsadmin -safemode get        (功能描述:查看安全模式状态)

    (2)bin/hdfs dfsadmin -safemode enter    (功能描述:进入安全模式状态)

    (3)bin/hdfs dfsadmin -safemode leave     (功能描述:离开安全模式状态)

    (4)bin/hdfs dfsadmin -safemode wait      (功能描述:等待安全模式状态)

    3.案例

           模拟等待安全模式

           1)先进入安全模式

    bin/hdfs dfsadmin -safemode enter

           2)执行下面的脚本

    编辑一个脚本

    #!/bin/bash
    bin/hdfs dfsadmin -safemode wait
    bin/hdfs dfs -put ~/hello.txt /root/hello.txt

    3)再打开一个窗口,执行

    bin/hdfs dfsadmin -safemode leave

  • 相关阅读:
    vue 数字滚动的插件 vue-count-to
    ASP.NET Core EF 查询获取导航属性值,使用Include封装
    nginx在asp.net mvc项目中 配置 初步快速入门
    JQuery EasyUI 扩展方法 日期控件 设置时间段函数
    JQueryEasyUI easyui-combobox 单击文本区域显示下拉菜单
    Jquery Easy UI Datagrid 上下移动批量保存数据
    ASP.NET MVC BundleConfig介绍和使用
    ASP.NET MVC5 视图相关学习
    SqlDependency数据库同步+signalr 推送消息
    T4 模板自动生成带注释的实体类文件
  • 原文地址:https://www.cnblogs.com/MWCloud/p/11237056.html
Copyright © 2020-2023  润新知