首页 百科知识 源代码分析(一零)

源代码分析(一零)

时间:2023-09-22 百科知识 版权反馈
【摘要】:在继续分析DataNode之前,我们有必要看一下系统的工作状态。upgrade参数就是为了这个目的而存在的,当然,升级可能成功,也可能失败。如果失败了,那就用rollback进行回滚;如果过了一段时间,系统运行正常,那就可以通过finalize,正式提交这次升级。特别是分布式的各个节点上,甚至可能出现某些节点已经升级成功,但有些节点可能处于中间状态的情况,所以Hadoop采用类似于数据库事务的升级机制也就不是很奇怪。


在继续分析DataNode之前,我们有必要看一下系统的工作状态。启动HDFS的时候,我们可以选择以下启动参数:

FORMAT("-format"):格式化系统

REGULAR("-regular"):正常启动

UPGRADE("-upgrade"):升级

ROLLBACK("-rollback"):回滚

FINALIZE("-finalize"):提交

IMPORT("-importCheckpoint"):从Checkpoint恢复。

作为一个大型的分布式系统,Hadoop内部实现了一套升级机制(http://wiki.apache.org/hadoop/Hadoop_Upgrade)。upgrade参数就是为了这个目的而存在的,当然,升级可能成功,也可能失败。如果失败了,那就用rollback进行回滚;如果过了一段时间,系统运行正常,那就可以通过finalize,正式提交这次升级(跟数据库有点像啊)。

importCheckpoint选项用于NameNode发生故障后,从某个检查点恢复。

有了上面的描述,我们得到下面左边的状态图:

mhtml:file://I:\技术文章下载\2010-4-23整理到notebook\Hadoop汇总2010-4-22\Hadoop源码分析\Hadoop源代码分析(一零)%20-%20-%20JavaEye技术网站.mht!http://caibinbupt.javaeye.com/upload/attachment/54507/665faa54-4334-3735-8e65-daa6fd14b5a4.jpg

大家应该注意到,上面的升级/回滚/提交都不可能一下就搞定,就是说,系统故障时,它可能处于上面右边状态中的某一个。特别是分布式的各个节点上,甚至可能出现某些节点已经升级成功,但有些节点可能处于中间状态的情况,所以Hadoop采用类似于数据库事务的升级机制也就不是很奇怪。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈