zoukankan      html  css  js  c++  java
  • 从SecondaryNameNode恢复Namenode

    hadoop集群管理之 Namenode恢复

    1.修改conf/core-site.xml,增加

    <property> 
      <name>fs.checkpoint.period</name> 
      <value>3600</value> 
      <description>表示多长时间记录一次hdfs的镜像。默认是1小时</description> 
    </property> 
    <property>   <name>fs.checkpoint.size</name>   <value>67108864</value>   <description>表示一次记录多大的size,默认64M </description> </property> <property>   <name>fs.checkpoint.dir</name>   <value>/data/work/hdfs/namesecondary</value>   <description>导出数据存放的目录</description> </property>

    fs.checkpoint.period表示多长时间记录一次hdfs的镜像。默认是1小时。
    fs.checkpoint.size表示一次记录多大的size,默认64M

    2.修改conf/hdfs-site.xml,增加

    <property> 
      <name>dfs.http.address</name> 
      <value>master:50070</value> 
      <description> The address and the base port where the dfs namenode web ui will listen on. If the port is 0 then the server will start on a free port. </description> 
    </property>

    3.恢复 

    制造namenode宕机的情况
    1) kill 掉namenode的进程

    [root@master name]# jps 
    11749 NameNode 
    12339 Jps 
    11905 JobTracker 
    [root@master name]# kill 11749

    2)删除dfs.name.dir所指向的文件夹,这里是/data/work/hdfs/name

    [root@master name]# rm -rf *

    删除name目录下的所有内容,但是必须保证name这个目录是存在的

    3)从secondarynamenode远程拷贝namesecondary文件到namenode的namesecondary

    [root@master hdfs]# scp -r slave-001:/data/work/hdfs/namesecondary/ ./


    4)启动namenode

    [root@master /data]# hadoop namenode –importCheckpoint

    正常启动以后,屏幕上会显示很多log,这个时候namenode就可以正常访问了

    5)使用hadoop fsck /user命令检查文件Block的完整性

    6)停止namenode,使用crrl+C或者会话结束

    7)删除namesecondary目录下的文件(保存干净)

    [root@master namesecondary]# rm -rf *

    8)正式启动namenode

    [root@master bin]# ./hadoop-daemon.sh start namenode

    恢复工作完成,检查hdfs的数据

    balancer

    在使用start-balancer.sh时,
    默认使用1M/S(1048576)的速度移动数据(so slowly...)
    修改hdfs-site.xml配置,这里我们使用的是20m/S

    <property> 
      <name>dfs.balance.bandwidthPerSec</name> 
      <value>20971520</value> 
      <description>设置均衡器在不同节点之间复制数据的带宽</description> 
    </property>

    然后结果是导致job运行变得不稳定,出现一些意外的长map单元,某些reduce时间处理变长(整个集群负载满满的情况下,外加20m/s的balance),据说淘宝的为10m/s,需要调整后实验,看看情况如何。

    hadoop balancer -threshold 5

    安全模式
    有两个方法离开这种安全模式:
    (1)修改dfs.safemode.threshold.pct为一个比较小的值,缺省是0.999。
    dfs.safemode.threshold.pct(缺省值0.999f)
    HDFS启动的时候,如果DataNode上报的block个数达到了元数据记录的block个数的0.999倍才可以离开安全模式,否则一直是这种只读模式。如果设为1则HDFS永远是处于SafeMode。

    (2)hadoop dfsadmin -safemode leave命令强制离开

    dfsadmin -safemode value 参数value的说明: 
    enter - 进入安全模式 
    leave - 强制NameNode离开安全模式 
    get - 返回安全模式是否开启的信息 
    wait - 等待,一直到安全模式结束。
  • 相关阅读:
    Docker 部署net5程序
    如何将Docker升级到最新版本
    IntelliJ IDEA修改maven默认仓库地址
    PowerDesigner 导出表结构 到Excel
    gradle加载项目过慢
    linux安装docker配置阿里云镜像
    svn 新建文件不能直接提交终于解决了
    Vs2017 NPM 安装 部署
    MYSQL日期时间字符串互转
    消除svn选定(checkout)桌面上文件显示一大堆问号。
  • 原文地址:https://www.cnblogs.com/rilley/p/2875309.html
Copyright © 2011-2022 走看看