不多说,直接上干货!

HDFS升级和回滚机制

  作为一个大型的分布式系统,Hadoop内部实现了一套升级机制,当在一个集群上升级Hadoop时,像其他的软件升级一样,可能会有新的bug或一些会影响现有应用的非兼容性变更出现。在任何有实际意义的HDFS系统中,丢失数据是不允许的,更不用说重新搭建启动HDFS了。当然,升级可能成功,也可能失败。如果失败了,那就用rollback进行回滚;如果过了一段时间,系统运行正常,那就可以通过finalize正式提交这次升级。

相关升级和回滚命令如下:

  bin/hadoop namenode一upgrade             //升级bin/hadoop namenode一rollback           //回滚bin/hadoop namenode一finalize           //提交bin/hadoop namenode一importCheckpoint    //从Checkpoint恢复

  上述命令的importCheckpoint参数用于NameNode发生故障后,从某个检查点恢复。HDFS允许管理员退回到之前的Hadoop版木,将集群的状态回滚到升级之前。

  在升级之前,管理员需要用以下命令删除已存在的备份文件

 bin/hadoop dfsadmin-finalizeUpgrade          //升级终结操作

  下面简单介绍一下一般的升级过程。
  在升级Hadoop软件之前,检查是否已经存在一个备份,如果备份存在,可执行升级终结操作删除这个备份。通过以下命令能够知道是否需要对一个集群执行升级终结操作:

 dfsadmin -upgradeProgress status

  1) 停止集群并部署Hadoop的新版本。
  2) 使用upgrade选项运行新的版本(bin/start-dfs.sh -upgrade)
  在大多数情况下,集群都能够正常运行。一旦我们认为新的HDFS运行正常(也许经过几天的操作之后),就可以对其执行升级终结操作。需要注意的是,在对一个集群执行升级终结操作之前,删除那些升级前就已经存在的文件并不会真正地释放DataNode上的磁盘空间。

  如果需要退回到老版本,执行步骤如下:
  1) 停止集群并部署Hadoop的老版本。

  2) 用回滚选项启动集群,命令如下:
  bin/start-dfs.h  -rolback
  上面介绍了HDFS的升级和回滚的基本机制,其实可以从状态转移的角度来理解理解HDFS的升级和回滚机制。整个HDFS的状态有:Normal, Upgraded, Rollbacking, Upgrading,Finalizing五种,HDFS集群的状态转移示意图,如下图所示。

  从上图可以看出,升级、回滚、提交都不可能一下完成,这也就是说,在HDFS系统出现故障时,集群可能处于上图右侧图中某一个状态中,特别是在分布式的各个节点上,甚至可能出现有些节点已经升级成功,但有些节点可能处干中间状态的情况,所以Hadoop采用类似于数据库事务的升级机制也就很容易理解了。

欢迎大家,加入我的微信公众号:大数据躺过的坑        人工智能躺过的坑
 

同时,大家可以关注我的个人博客

   http://www.cnblogs.com/zlslch/   和     http://www.cnblogs.com/lchzls/      http://www.cnblogs.com/sunnyDream/

   详情请见:http://www.cnblogs.com/zlslch/p/7473861.html

  人生苦短,我愿分享。本公众号将秉持活到老学到老学习无休止的交流分享开源精神,汇聚于互联网和个人学习工作的精华干货知识,一切来于互联网,反馈回互联网。
  目前研究领域:大数据、机器学习、深度学习、人工智能、数据挖掘、数据分析。 语言涉及:Java、Scala、Python、Shell、Linux等 。同时还涉及平常所使用的手机、电脑和互联网上的使用技巧、问题和实用软件。 只要你一直关注和呆在群里,每天必须有收获

对应本平台的讨论和答疑QQ群:大数据和人工智能躺过的坑(总群)(161156071) 

转载于:https://www.cnblogs.com/zlslch/p/5081721.html

Hadoop HDFS概念学习系列之HDFS升级和回滚机制(十二)相关推荐

  1. Hadoop Hive概念学习系列之HDFS、Hive、MySQL、Sqoop之间的数据导入导出(强烈建议去看)(十八)...

    把MySQL里的数据导入到HDFS 1.使用MySQL工具手工导入 把MySQL的导出数据导入到HDFS的最简单方法就是,使用命令行工具和MySQL语句. 为了导出整个数据表或整个数据库的内容,MyS ...

  2. Hadoop Hive概念学习系列之hive里的HiveQL——查询语言(十五)

    Hive的操作与传统关系型数据库SQL操作十分类似. Hive主要支持以下几类操作: DDL 1.DDL:数据定义语句,包括CREATE.ALTER.SHOW.DESCRIBE.DROP等. 详细点, ...

  3. Hadoop HDFS概念学习系列之熟练掌握HDFS的Shell访问(十五)

    调用文件系统(FS)Shell命令应使用 $HADOOP_HOME/bin/hadoop fs  *** 的形式!!! 所有的FS Shell命令使用URI路径作为参数. URI格式是scheme:/ ...

  4. Hadoop HDFS概念学习系列之shell命令使用HDFS的一些其他命令(十九)

    其他相关命令还包括以下这些: NameNode  -format :  格式化DFS文件系统 secondaryNameNode :   运行DFS的SecndaryNameNode进程 NameNo ...

  5. 基于S32K的油门踏板检测项目(基于CAN的Bootloader覆盖升级、回滚升级)

    文章目录 项目概述 要求 Bootloader介绍 原理设计 功能设计 硬件设计 软件设计 主机 主机流程 Xmodem协议 代码 从机 从机流程 升级方案 区域划分 Boot链接文件修改 APP A ...

  6. Hadoop Hive概念学习系列之hive的数据压缩(七)

    Hive文件存储格式包括以下几类: 1.TEXTFILE 2.SEQUENCEFILE 3.RCFILE 4.ORCFILE 其中TEXTFILE为默认格式,建表时不指定默认为这个格式,导入数据时会直 ...

  7. Hadoop HDFS概念学习系列之两个和HDFS读写操作最为密切的Hadoop包(二十)

    是org.apache.hadoop.fs和org.apache.hadoop.conf. fs包主要是文件系统的抽象,可以理解为支持多种文件系统实现的统一文件访问接口: conf用于读conf包,就 ...

  8. Hadoop HBase概念学习系列之HRegion服务器(三)

    所有的数据库数据一般是保存在Hadoop分布式系统上面的,用户通过一系列HRegion服务器获取这些数据.一台机器上一般只运行一个HRegion服务器,而且每一分区段的HRegion也只会被一个HRe ...

  9. Hadoop Hive概念学习系列之hive的正则表达式初步(六)

    说在前面的话 hive的正则表达式,是非常重要!作为大数据开发人员,用好hive,正则表达式,是必须品! Hive中的正则表达式还是很强大的.数据工作者平时也离不开正则表达式.对此,特意做了个hive ...

最新文章

  1. 相对于硬件计算机软件就是,计算机的软件是将解决问题的方法,软件是相对于硬件来说的...
  2. 排序学习(LTR)经典算法:RankNet、LambdaRank和LambdaMart
  3. 【Android】进程
  4. 一个由于Pricing RFC引起的UI超时问题
  5. 机器学习的练功心法(一)——机器学习概述
  6. php和asp渲染页面,Vue.js与 ASP.NET Core 服务端渲染功能
  7. 数据意识崛起,从企业应用看BI软件的未来发展 1
  8. OpenVINO安装步骤
  9. JAVA运行环境设置
  10. IsPostBack结论
  11. java课程设计报告_JAVA课程设计报告_完整版.doc
  12. 【物联大师】之物联网智能网关
  13. Hadoop HA架构图
  14. jQuery和CSS3超酷二级下拉菜单插件
  15. TL-WR886N路由器+树莓派绑定IP地址
  16. ESP32基础应用之使用两个ESP32通过阿里云物联网平台实现相互通信
  17. 解决iPhone 浏览器上的圆角问题
  18. 八、CSS3的美化背景与边框
  19. WorkFlow .Net 流程介绍
  20. 普氏分析在生信中的应用

热门文章

  1. 【qduoj - 1012】反转数字(模拟,水题)
  2. 详解车道线检测数据集和模型 VIL-100: A New Dataset and A Baseline Model for Video Instance Lane Detection
  3. 渲染服务器位置,如何用服务器做渲染
  4. java 调用动态链接库_JAVA技巧:JNative调用动态链接库问题(SOS)
  5. 载winpcap4.1.1_最常用的11个电缆载流量数据表,建议收藏备用
  6. Python(21)--变量进阶
  7. 机器学习算法分类总结
  8. linux+shell+func,Linux shell编程笔记总结
  9. python虚拟环境打包deb_可以为python脚本创建deb包吗?
  10. frame中src怎么设置成一个变量_Go 语言设计哲学之七:变量声明须一致