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. Spark底层原理简化版

    目录 Spark SQL/DF的执行过程 集群运行部分 Aggregation Join Shuffle Tungsten 内存管理机制 缓存敏感计算(Cacheaware computation) ...

  2. c++调用DOS命令,不显示黑屏

    WinExec("Cmd.exe /C md c://12", SW_HIDE); 注释:/c是什么意思,不用/C会报错 CMD [/A | /U] [/Q] [/D] [/E:O ...

  3. IP地址库

    吐槽 前两天一个线上的IP地址库除了点幺蛾子,一查代码,发现用的库早就不更新了,遂决定换库,有几个方案: 纯真数据库 IPIP数据库 GeoIP 纯真数据库是大码农的福音,免费,但是精度一般:IPIP ...

  4. 题解报告:hdu 1847 Good Luck in CET-4 Everybody!(入门SG值)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1847 Problem Description 大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧 ...

  5. Java中的常用类有哪些

    1NumberFormat 2DecimalFormat 3BigDecimal 4Math 5Random 6DateFormat 7SimpleDateFormat 8Calendar 9Date ...

  6. WPF TextBox 仅允许输入数字

    因为在 IValueConverter 实现中,当文本不能转换为目标类型时返回 DependencyProperty.UnsetValue ,Validation.GetHasError 返回 tru ...

  7. inline-block默认间距解决方法

    方法一: 父元素设置font-size: 0;  行内块元素有文字时再在该元素上设置font-size 方法二: 父元素设置word-spacing为负 方法三: Inline-block   元素浮 ...

  8. 利用MediaSession发送信息到蓝牙音箱

    1.利用MediaSession发送信息到蓝牙音箱,如:播放音乐时接收的歌曲信息,但是每一首歌连续播放时,再次发送的重复信息会被丢弃.则利用MediaSession发现信息时,要保证信息的不重复性. ...

  9. Deutsch lernen (15)

    1.    unterscheiden - unterschied - unterschieden  区别,区分:(能够)分清 Die beiden Begriffe sind nur schwer ...

  10. 三维重建:多点透视cvSolvePNP的替代函数(Code)

           在调试JNI程序时,所有的Shell都已经加载完成,而唯一真正核心的cv::SolvePnP却不能在JNI里面获得通行证,经过反复测试都不能运行,因此只能忍痛舍弃,自行编写一个具有相 ...