二、 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. 对Vector3.Lerp 插值的理解

    有时,我们在做游戏时会发现有些跟随动作不够圆滑或者需要一个缓冲的效果,这时,一般会考虑到插值.所以对插值的理解是必需的.(比如摄像机跟随主角) 插值是数学上的一个概念,在这里用公式表示就是:from  ...

  2. cotex_m3内核提供的ITM串口打印调试

    cotex_m3内核的ARM提供了ITM串口打印观测的功能,可以不用ARM单片机自己的串口就可在开发时候串口打印调试.节约了宝贵的内部资源,同时也为调试提供了方便.使用方法如下: 1 将下面的SWO_ ...

  3. Mac下java编译乱码(适用于maven , ant)

    将~/.bash_profile中添加如下即可 export LC_ALL=en

  4. ylbtech-Unitity-CS:Generics

    ylbtech-Unitity-CS:Generics 1.A,效果图返回顶部 Unsorted List: Raul:35 Alessandro:30 Maria:72 Hiroyuki:108 A ...

  5. JAVA用户数据输入

    数据输入 首先需要导入扫描仪 然后声明扫描仪 输出输入提示 接收用户数据的数据 输出用户数据的数据 实例: import java.util.Scanner; //导入扫描仪 public class ...

  6. SQL Server 2005中的分区表(一):什么是分区表?为什么要用分区表?如何创建分区表?(转)

      如果你的数据库中某一个表中的数据满足以下几个条件,那么你就要考虑创建分区表了. 1.数据库中某个表中的数据很多.很多是什么概念?一万条?两万条?还是十万条.一百万条?这个,我觉得是仁者见仁.智者见 ...

  7. request.setCharacterEncoding 和常用内置对象 跳转

    1.直接转码 new String(name.getBytes("ISO8859_1"),"GBK") 2. request.setCharactorEncod ...

  8. 批处理操作mysql数据库

    批处理操作mysql数据库 1.使用批处理自动登录mysql数据库 @echo offcd C:\program files\mysql\mysql server 5.5\binmysql -u ro ...

  9. CodeForces 602E【概率DP】【树状数组优化】

    题意:有n个人进行m次比赛,每次比赛有一个排名,最后的排名是把所有排名都加起来然后找到比自己的分数绝对小的人数加一就是最终排名. 给了其中一个人的所有比赛的名次.求这个人最终排名的期望. 思路: 渣渣 ...

  10. A - Red and Black(3.2.1)(小递归)

    Description There is a rectangular room, covered with square tiles. Each tile is colored either red ...