二、 namenode故障恢复(importCheckpoint)
*注意事项:
(1) 为了便于将随便一台datanode临时用作namenode,datanode和namenode配置需要一模一样包括conf目录下的所有文件、目录结构、环境变量
(2) 新namenode的主机名要与原namenode保持一致,主机名若是在hosts写死,需要批量替换datanode hosts文件 (用内部域名服务最好,改下域名指向即可)
(3) fs.checkpoint.dir的内容非常重要,无法保证secondnamenode不出故障,所以需要定期对secondnamenode fs.checkpoint.dir的内容做备份
(4) 最近一次check至故障发生这段时间的内容将丢失,fs.checkpoint.period参数值需要权衡,既不太频繁又尽可能保证数据完整,默认1小时
恢复步骤:
(0) 可选,当namenode主机名发生变化时(为了不影响应用,最好不好发生变化),需修改:
    [core-site.xml] fs.default.name = 新namenode
    [hdfs-site.xml] dfs.http.address = 新namenode
    [mapred-site.xml]mapred.job.tracker = 新jobtracker, 如果jobtracker与namenode在同一台机器上
(1) 确保新namenode ${dfs.name.dir}目录存在,且清空其内容
(2) 把SecondaryNameNode节点中 ${fs.checkpoint.dir} 的所有内容拷贝到新的NameNode节点的 ${fs.checkpoint.dir} 目录中
(3) 在新机器上执行 
        hadoop namenode -importCheckpoint 
     该步会从${fs.checkpoint.dir}中恢复${dfs.name.dir},并请动namenode
(4) 检查文件block完整性
        hadoop fsck /
(5) 停止namenode,使用crrl+C或者会话结束
(6) 删除新namenode ${fs.checkpoint.dir}目录下的文件(保持干净)
(7) 正式启动namenode,恢复工作完成
        sh $HADOOP_HOME/bin/hadoop_daemon.sh start namenode

利用SecondaryNameNode文件恢复Namenode-实践可行的更多相关文章

  1. 利用日志文件恢复MYSQL数据库

    利用日志文件恢复MYSQL数据库 650) this.width=650;" onclick='window.open("http://blog.51cto.com/viewpic ...

  2. 从 secondarynamenode 中恢复 namenode

    1.修改 conf/core-site.xml,增加 Xml代码 <property> <name>fs.checkpoint.period</name> < ...

  3. 利用bak文件恢复数据库问题小结

    对备份的基础理解: --完整备份:完整备份会备份所有数据的区和少量的日志(日志文件用于恢复数据保持数据一致性).由于差异备份需要依据最后一次完整备份,因此完整备份会清楚一些分配位图数据. --差异备份 ...

  4. 利用data文件恢复MySQL数据库

    背景:测试服务器 MySQL 数据库不知何种原因宕机,且无法启动,而原先的数据库并没有备份,重新搭建一个新服务器把原data 复制出来 进行恢复 1 尽量把原data复制出来(一个都不要少以防意外 其 ...

  5. 利用.swp文件恢复源文件

    使用命令 vim -r filename.swp 保存即可

  6. MySQL 利用frm文件和ibd文件恢复表结构和表数据

    文章目录 frm文件和ibd文件简介 frm文件恢复表结构 ibd文件恢复表数据 通过脚本利用ibd文件恢复数据 通过shell脚本导出mysql所有库的所有表的表结构 frm文件和ibd文件简介 在 ...

  7. T-sql 根据bak文件恢复新建数据库

    利用bak文件恢复新建数据库: 1:利用sqlserver界面管理工具恢复,在操作2005以上的版本可以讲界面的操作过程生成sql语句(本人在此徘徊了好久,得一位博友提醒才恍然大悟); 2:利用sql ...

  8. hadoop 根据SecondaryNameNode恢复Namenode

    1.修改conf/core-site.xml 增加 <property> <name>fs.checkpoint.period</name> <value&g ...

  9. hadoop 根据secondary namenode恢复namenode

    refer to http://www.cnblogs.com/Richardzhu/p/3435989.html http://blog.csdn.net/wuzhilon88/article/de ...

随机推荐

  1. Uvision5不能进行软件仿真

    Uvision5不能进行软件仿真不能进行软件仿真,报错: error 65: access violation at 0x40021000 : no 'read' permission(软件仿真出错) ...

  2. get/close not same thread Druid 连接池一个设置

    我就郁闷了,1000W+数据审核每次总是到一半就出这么个错,仔细找找原来是一个配置项的小问题,removeAbandonedTimeout 这个代表你从连接池取出一个连接多少秒之后你还没还回来,那就强 ...

  3. jquery实现的下拉和收缩代码实例

    <!DOCTYPE html>  <html>  <head>  <meta charset=" utf-8">  <meta ...

  4. SVN---脱离SVN控制

    创建一个记事本文件,然后吧这句话复制进去for /r . %%a in (.) do @if exist "%%a\.svn" rd /s /q "%%a\.svn&qu ...

  5. Python标准库08 多线程与同步 (threading包)

    Python主要通过标准库中的threading包来实现多线程.在当今网络时代,每个服务器都会接收到大量的请求.服务器可以利用多线程的方式来处理这些请求,以提高对网络端口的读写效率.Python是一种 ...

  6. R如何检验类别变量(nominal variable)与其他变量之间的相关性

    1.使用Pearson积差相关系性进行检验的话可以判断两个变量之间的相关性是否显著以及相关性的强度 显著性检验 (significant test) 连续变量 vs 类别变量 (continuous ...

  7. tomcat 内存溢出

    PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入Perm ...

  8. Java中this关键字在构造方法中的使用

    1. Java中this关键字代表对象本身.用this关键字可以在类的内部调用属性和方法,这样代码的可读性比较高,因为它明确的指出了这个属性或方法的来源. 2. 同时在构造函数中也可以使用this关键 ...

  9. javascript闭包的一个例子

    <html> <head> <title>elementFromPoint</title> <script type="text/jav ...

  10. cocos2dx一个场景添加多个层

    首先创建两个layer,以下是头文件 #pragma once#include "cocos2d.h"USING_NS_CC;class BackgroundLayer : pub ...