博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(12) Hadoop 升级技能
阅读量:2211 次
发布时间:2019-05-06

本文共 2927 字,大约阅读时间需要 9 分钟。

NameNode 元数据管理 (重点)

0. fsimage/edits

  • edits 存储的是对HDFS操作记录

  • fsimage 存储的是hdfs上面文件信息

  • nameNode 存储的数据的元数据信息,datanode的节点状态,block块的状态

    这里写图片描述

1. 元数据目录

  • 元素据目录所在/home/hadoop-2.7.4/tmp/dfs/name/current

  • Hadoop 格式化 是为了初始化整个文件系统,目录结构

  • 目录结构贴图

    这里写图片描述

version 文件

namespaceID=934548976   // dataNode 节点表示    clusterID=CID-cdff7d73-93cd-4783-9399-0a22e6dce196 // 整个集群的表示    cTime=0  // 集群的创建时间    storageType=NAME_NODE  //数据结构信息(如果是 DataNode,storageType=DATA_NODE);    blockpoolID=BP-893790215-192.168.24.72-1383809616115  //Namenode节点 主备关系     layoutVersion=-47  //数据结构变更,版本号也要递减

seen_txid

seen_txid - edits   = ?  判断集群是否还原彻底      seen_txid  对HDFS操作记录      edits 存储的操作记录       当集群出现问题 还原的时候会用到 来判断整个集群的恢复状态

2. Checkpoint 合并

  • secondnaryNode 它的职责是合并 NameNode 的 edit

    logs 到 fsimage 文件中,减小edits文件大小,得到最新的fsimage文件 。 这么做的目的一个是备份元数据信息,另一个是减小edits文件数据,节省内存 .这么做的目的也是数据备份还原

  • 合并流程图

    这里写图片描述

  • 触发条件

    Checkpoint 操作受两个参数控制,可以通过 core-site.xml 进行配置:
    dfs.namenode.checkpoint.period
    3600
    两次连续的 checkpoint 之间的时间间隔。默认 1 小时
    dfs.namenode.checkpoint.txns
    1000000
    最大的没有执行 checkpoint 事务的数量,满足将强制执行紧急 checkpoint,即使尚未达到检查点周期。默认设置为 100 万。

3. hadoop 动态添加节点

  • 看下面的资料内容

    基础准备-----------------------在基础准备部分,主要是设置hadoop运行的系统环境修改系统hostname(通过hostname和/etc/sysconfig/network进行修改)修改hosts文件,将集群所有节点hosts配置进去(集群所有节点保持hosts文件统一)设置NameNode到DataNode的免密码登录(ssh-copy-id命令实现)修改主节点slave文件,添加新增节点的ip信息(集群重启时使用)将hadoop的配置文件scp到新的节点上---------------------------添加DataNode---------------------------对于新添加的DataNode节点,需要启动datanode进程,从而将其添加入集群在新增的节点上,运行sbin/hadoop-daemon.sh start datanode即可然后在namenode通过hdfs dfsadmin -report查看集群情况最后还需要对hdfs负载设置均衡,因为默认的数据传输带宽比较低,可以设置为64M,即hdfs dfsadmin -setBalancerBandwidth 67108864即可默认balancer的threshold为10%,即各个节点与集群总的存储使用率相差不超过10%,我们可将其设置为5%然后启动Balancer,sbin/start-balancer.sh -threshold 5,等待集群自均衡完成即可---------------------------添加Nodemanager---------------------------由于Hadoop 2.X引入了YARN框架,所以对于每个计算节点都可以通过NodeManager进行管理,同理启动NodeManager进程后,即可将其加入集群在新增节点,运行sbin/yarn-daemon.sh start nodemanager即可在ResourceManager,通过yarn node -list查看集群情况

HDFS 安全启动模式

  • 什么情况用安全? 重要性 ? 特征? 针对谁?

  • 当启动HDFS集群的时候会开启一种特殊的状态 就叫做安全模式 ,在安全模式下 只读模式 - 不可以上传 修改 删除 只能查 满足三个条件。

  • 安全模式就为了集群的稳定性,只有在稳定的时候才可以操作HDFS。

  • 安全模式的启动条件

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

      dfs.namenode.replication.min: 最小的文件 block 副本数量比例,默认为 1.
    • 2 可以用的节点数 满足配置要求

      dfs.namenode.safemode.threshold-pct: 指定应有多少比例的数据块满足最小副本数

      要求。默认为 0.999f,大于这个比例就离开安全模式

      1. 1、2 两个条件满足后维持36秒达到配置的要求
  • 安全模式命令

    手动进入安全模式hdfs dfsadmin -safemode enterhdfs dfsadmin -safemode leavehdfs dfsadmin -safemode get  //可以在50070查看

hadoop archives

  • 由于在HDFS系统在设计的时候就决定不适合去存储大数据文本文件,因为小文件会占用nameNode节点大量的内存信息。通过archives这个方法将小文件打包,底层调用MR算法将打包后的文件进行分区 。依然使其可以访问每个文件 。

  • 使用方法

    hadoop archive -archiveName test.har -p /input -r 3 /outputdir在/outputdir 目录下创建一个名为 test.har 的存档文件。

Hadoop HA (重点 面试必问)

解决了单独故障问题

主备 NameNode HA

YARN HA?

集群高可用

Hadoop Federation (了解)

  • NameNode扩展 ?

CDH (了解 属于商业版)

离线中介

你可能感兴趣的文章
【数据结构】简单不带环迷宫的实现(用栈实现)
查看>>
【C语言】简单的了解递归(求斐波那契,n的阶乘,字符串长度,把一个整型(无符号),转化为字符型并打印出来)
查看>>
【数据结构】动态栈的实现
查看>>
【数据结构】简单的迷宫(用递归实现)
查看>>
【数据结构】队列的基本认识和队列的基本操作
查看>>
【数据结构】循环队列的认识和基本操作
查看>>
【LeetCode】无重复字符的最长子串
查看>>
时间复杂度
查看>>
【C++】动态内存管理 new和delete的理解
查看>>
【Linux】了解根目录下每个文件的作用
查看>>
【Linux】进程的理解(一)
查看>>
【Linux】进程的理解(二)
查看>>
【C语言】深度理解函数的调用(栈帧)
查看>>
【Linux】进程的理解(三)
查看>>
【C++】带头节点的双向线链表的实现
查看>>
【C++】STL -- Vector容器的用法
查看>>
【Linux】Linux中的0644 和 0755的权限
查看>>
【数据结构】有关二叉树的面试题
查看>>
【Linux】内核态和用户态
查看>>
【Linux】HTTP的理解
查看>>