hadoop1.x 升级到hadoop2.2

本文參考了博客:http://blog.csdn.net/ajax_jquery/article/details/27311671,对一些地方做了改动。并具体做了说明
HDFS升级,是hadoop集群升级到2.0的关键,而hdfs升级,最重要的是namenode的升级。

首先声明:hadoop1.x不能直接升级到 HA 模式下,namenode是不能升级成功的。这里也借助hadoop2.x兼容hadoop1.x的配置文件来升级。

假设直接升级hadoop2.x HA模式可能会出现例如以下错误

FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Exception in namenode join

org.apache.hadoop.HadoopIllegalArgumentException: Invalid startup option. Cannot perform DFS upgrade with HA enabled

以下是升级hadoop2.x HA 模式的流程,详细为什么要选用HA而不採用HA+Federation 的方式,不是这里要说的问题

先在hadoop1.x模式下将namenode的元数据升级:

step 1: 做下saveNamespace操作,停掉集群。并备份下 HDFS 的 Metadata,操作例如以下:

     1.1 namenode进入safe mode状态

            $ bin/hadoop dfsadmin -safemode enter

     1.2  运行saveNamespace操作

            $ bin/hadoop dfsadmin -saveNamespace

     1.3 离开安全模式

            $ bin/hadoop dfsadmin -safemode leave

     1.4 stop 集群

     1.5 备份 dfs.name.dir 以下的元数据

            cp -r name /data/zhoulei/bak.name.20140916

step2:

      2.1 将集群中hadoop环境换成2.2(注意:这是配置文件必须选用hadoop1.x中/conf/ 中的配置文件。

否则会报上面的错误),运行例如以下升级namenode命令:      

            hadoop-daemon.sh start namenode -upgrade

step3:

     namenode升级完毕后,将datanode启动,datanode会自己主动升级到与namenode同样版本号

            hadoop-daemons.sh start datanode  此时注意,要启动全部的datanode, 不然也不会出现多大问题,可是其他节点的datanode 却不会自己主动升级。

     3.1 关闭集群

           sbin/stop-dfs.sh

     3.2 将配置文件升级为2的配置

           此时将配置文件所有替换为hadoop2.2的配置文件

     3.3 将升级完的namenode元数据一些參数改动一下,改成ha模式:

            这时须要将journalnode的元文件的VERSION文件的參数改动。改成与namenode的元数据同样或者使用命令:

    I、    先启动 journalnode:sbin/hadoop-daemon.sh start journalnode 此时要注意,全部的Journalnode 都要启动否则以下步骤报错

    II、   给namenode安装journalnode共享文件夹bin/hdfs namenode -initializeSharedEdits 、

            假设上面一步没有所有启动,则出现例如以下错误    

14/09/17 10:13:06 ERROR namenode.NameNode: Could not initialize shared edits dirorg.apache.hadoop.hdfs.qjournal.client.QuorumException: Unable to check
if JNs are ready for formatting. 1 successful responses
    III、  启动namenode:sbin/hadoop-daemon.sh start namenode

    IV、 启动datanode:sbin/hadoop-daemons.sh start datanode   启动全部datanode 节点,或者逐个节点分别启动

此时注意 并没有 active namenode 或是 standby 节点的差别,仅仅有一个节点。

     3.4 将active namenode的 {dfs.namenode.name.dir} 文件夹的内容拷贝到 standby namenode的{dfs.namenode.name.dir} 文件夹下然后启动 standby namenode

            或者使用命令:

            在另外一个 namenode 节点下下运行bin/hdfs namenode -bootstrapStandby   作用与直接拷贝元数据类似

     3.5 格式化ZK(在hadoop01上运行就可以):bin/hdfs zkfc -formatZK

     3.6 又一次启动hdfs:sbin/start-dfs.sh(一定要又一次启动。否则会出现两个namenode同一时候都是standby的状态)

           此时发现即使重新启动dfs 可是两个namnode 都为standby 的状态,这是由于 zkfc 并没有启动,此时我们须要做的两个动作

           1)分别为每一个zookeeper 节点 启动 QuorumPeerMain

               zookeeper-3.4.5/bin/zkServer.sh start

            2)  在主节点启动zkfc(不一定是主节点)

                 sbin/hadoop-daemon.sh start zkfc

            此时再看两个namenode 守护进程的状态 就会出现一个 active ,一个standby 的状态。



     3.7 升级完成后,namenode和datanode的${ dfs.data.dir}/文件夹下会多出一个文件夹previous/。这是升级之前数据的备份。

假设确定升级成功。能够使用:bin/hadoop dfsadmin -finalizeUpgrade(要在active的namenode上运行) 终于提交升级

hadoop1.0.4升级到hadoop2.2 具体流程步骤的更多相关文章

  1. Hadoop-1.2.1 升级到Hadoop-2.6.0 HA

      Hadoop-1.2.1到Hadoop-2.6.0升级指南   作者 陈雪冰 修改日期 2015-04-24 版本 1.0     本文以hadoop-1.2.1升级到hadoop-2.6.0 Z ...

  2. Hadoop1.0 与Hadoop2.0

    Hadoop1.0的局限-MapReduce •扩展性 –集群最大节点数–4000 –最大并发任务数–40000 (当 map-reduce job 非常多的时候,会造成很大的内存开销,潜在来说,也增 ...

  3. Hadoop1.0 和 Hadoop2.0

    date: 2018-11-16 18:54:37 updated: 2018-11-16 18:54:37 1.从Hadoop整体框架来说 1.1 Hadoop1.0即第一代Hadoop,由分布式存 ...

  4. hadoop1.0 和 Hadoop 2.0 的区别

    1.Hadoop概述 在Google三篇大数据论文发表之后,Cloudera公司在这几篇论文的基础上,开发出了现在的Hadoop.但Hadoop开发出来也并非一帆风顺的,Hadoop1.0版本有诸多局 ...

  5. Hadoop1.0.3环境搭建流程

    0x00 大数据平台相关链接 官网:http://hadoop.apache.org/ 主要参考教程:http://www.cnblogs.com/xia520pi/archive/2012/05/1 ...

  6. Hadoop1.0.3安装部署

    0x00 大数据平台相关链接 官网:http://hadoop.apache.org/ 主要参考教程:http://www.cnblogs.com/xia520pi/archive/2012/05/1 ...

  7. Linux下Oracle 10.2.0.1升级到10.2.0.4总结

    最近部署测试环境时,将测试环境ORACLE数据库从10.2.0.1升级到了10.2.0.4,顺便整理记录一下升级过程. 实验环境: 操作系统:Oracle Linux Server release 5 ...

  8. Asp.net Core 1.0.1升级到Asp.net Core 1.1.0 Preview版本发布到Windows Server2008 R2 IIS中的各种坑

    Asp.net Core 1.0.1升级到Asp.net Core 1.1.0后,程序无法运行了 解决方案:在project.json中加入runtime节点 "runtimes" ...

  9. 编译hadoop eclipse的插件(hadoop1.0)

    原创文章,转载请注明: 转载自工学1号馆 欢迎关注我的个人博客:www.wuyudong.com, 更多云计算与大数据的精彩文章 在hadoop-1.0中,不像0.20.2版本,有现成的eclipse ...

随机推荐

  1. Cuckoo for Hashing

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2719 #include <stdio.h ...

  2. HDU1043 Eight

    题目: 简单介绍一下八数码问题:        在一个3×3的九宫格上,填有1~8八个数字,空余一个位置,例如下图: 1 2 3 4 5 6 7 8           在上图中,由于右下角位置是空的 ...

  3. 【POJ2248、LOJ#10021】 Addition Chains

    事先预警:由于我太蒻了,本做法只能在POJ.LOJ等小数据(N<=100)平台上通过,在UVa(洛谷)上大数据并不能通过 戳我获得更好的观看效果 本题不用看,爆搜就是了,但是纯爆搜显然会爆时间, ...

  4. BZOJ 1914 计算几何

    思路: 我们可以算不合法的 如果三个点都在同一侧 就不合法.. 用总方案数减掉就可以了 (有神奇的实现方法...) //By SiriusRen #include <cmath> #inc ...

  5. BZOJ 4332 FFT+快速幂

    思路: 最裸的方程:f[i][j]=Σf[i-1][j-k]*F[k] 诶呦 这不是卷积嘛 f[i]就可以用f[i-1]卷F 求到 但是这样还是很慢 设p[i] 为Σ f[j](1<=j< ...

  6. itext 生成pdf文档 小结(自己备忘)

    1.引入maven <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf& ...

  7. Linux学习笔记--文件夹结构

    暂时先上一张图学习吧,先大致了解好,再进行深入的学习.

  8. 《CSS Mastery》读书笔记(4)

    第七章 布局   CSS得到一个不好的名声,比较难懂, 一方面由于浏览器的不兼容,另一方面由于网上大量的技巧,每个CSS作者都可以有自己的方法去创建多列布局, 新的CSS开发者只是使用一种方法而不去理 ...

  9. ie8及其以下版本兼容性问题之圆角

    解决办法:在http://css3pie.com/页面下载一个PIE.htc的文件,加载到根目录下,然后在css中加上一句behavior:url(../js/PIE.htc);如下: .border ...

  10. 用DIV遮罩解决checkbox勾选无效的问题

    在前端开发的过程中,遇到一种情况,需要勾选,为了用户的操作便捷就将click事件放到了DIV上.(其中使用了knockout.js) 代码大概如下: <div id="one" ...