Hadoop HDFS概念学习系列之HDFS升级和回滚机制(十二)
不多说,直接上干货!
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升级和回滚机制(十二)相关推荐
- Hadoop Hive概念学习系列之HDFS、Hive、MySQL、Sqoop之间的数据导入导出(强烈建议去看)(十八)...
把MySQL里的数据导入到HDFS 1.使用MySQL工具手工导入 把MySQL的导出数据导入到HDFS的最简单方法就是,使用命令行工具和MySQL语句. 为了导出整个数据表或整个数据库的内容,MyS ...
- Hadoop Hive概念学习系列之hive里的HiveQL——查询语言(十五)
Hive的操作与传统关系型数据库SQL操作十分类似. Hive主要支持以下几类操作: DDL 1.DDL:数据定义语句,包括CREATE.ALTER.SHOW.DESCRIBE.DROP等. 详细点, ...
- Hadoop HDFS概念学习系列之熟练掌握HDFS的Shell访问(十五)
调用文件系统(FS)Shell命令应使用 $HADOOP_HOME/bin/hadoop fs *** 的形式!!! 所有的FS Shell命令使用URI路径作为参数. URI格式是scheme:/ ...
- Hadoop HDFS概念学习系列之shell命令使用HDFS的一些其他命令(十九)
其他相关命令还包括以下这些: NameNode -format : 格式化DFS文件系统 secondaryNameNode : 运行DFS的SecndaryNameNode进程 NameNo ...
- 基于S32K的油门踏板检测项目(基于CAN的Bootloader覆盖升级、回滚升级)
文章目录 项目概述 要求 Bootloader介绍 原理设计 功能设计 硬件设计 软件设计 主机 主机流程 Xmodem协议 代码 从机 从机流程 升级方案 区域划分 Boot链接文件修改 APP A ...
- Hadoop Hive概念学习系列之hive的数据压缩(七)
Hive文件存储格式包括以下几类: 1.TEXTFILE 2.SEQUENCEFILE 3.RCFILE 4.ORCFILE 其中TEXTFILE为默认格式,建表时不指定默认为这个格式,导入数据时会直 ...
- Hadoop HDFS概念学习系列之两个和HDFS读写操作最为密切的Hadoop包(二十)
是org.apache.hadoop.fs和org.apache.hadoop.conf. fs包主要是文件系统的抽象,可以理解为支持多种文件系统实现的统一文件访问接口: conf用于读conf包,就 ...
- Hadoop HBase概念学习系列之HRegion服务器(三)
所有的数据库数据一般是保存在Hadoop分布式系统上面的,用户通过一系列HRegion服务器获取这些数据.一台机器上一般只运行一个HRegion服务器,而且每一分区段的HRegion也只会被一个HRe ...
- Hadoop Hive概念学习系列之hive的正则表达式初步(六)
说在前面的话 hive的正则表达式,是非常重要!作为大数据开发人员,用好hive,正则表达式,是必须品! Hive中的正则表达式还是很强大的.数据工作者平时也离不开正则表达式.对此,特意做了个hive ...
最新文章
- 相对于硬件计算机软件就是,计算机的软件是将解决问题的方法,软件是相对于硬件来说的...
- 排序学习(LTR)经典算法:RankNet、LambdaRank和LambdaMart
- 【Android】进程
- 一个由于Pricing RFC引起的UI超时问题
- 机器学习的练功心法(一)——机器学习概述
- php和asp渲染页面,Vue.js与 ASP.NET Core 服务端渲染功能
- 数据意识崛起,从企业应用看BI软件的未来发展 1
- OpenVINO安装步骤
- JAVA运行环境设置
- IsPostBack结论
- java课程设计报告_JAVA课程设计报告_完整版.doc
- 【物联大师】之物联网智能网关
- Hadoop HA架构图
- jQuery和CSS3超酷二级下拉菜单插件
- TL-WR886N路由器+树莓派绑定IP地址
- ESP32基础应用之使用两个ESP32通过阿里云物联网平台实现相互通信
- 解决iPhone 浏览器上的圆角问题
- 八、CSS3的美化背景与边框
- WorkFlow .Net 流程介绍
- 普氏分析在生信中的应用
热门文章
- 【qduoj - 1012】反转数字(模拟,水题)
- 详解车道线检测数据集和模型 VIL-100: A New Dataset and A Baseline Model for Video Instance Lane Detection
- 渲染服务器位置,如何用服务器做渲染
- java 调用动态链接库_JAVA技巧:JNative调用动态链接库问题(SOS)
- 载winpcap4.1.1_最常用的11个电缆载流量数据表,建议收藏备用
- Python(21)--变量进阶
- 机器学习算法分类总结
- linux+shell+func,Linux shell编程笔记总结
- python虚拟环境打包deb_可以为python脚本创建deb包吗?
- frame中src怎么设置成一个变量_Go 语言设计哲学之七:变量声明须一致