Hadoop 1.2.1升级2.6.0的一次崎岖之旅(包括Hive、HBase对应的升级)

为了跟进大数据技术趋势,作者详细记录了将线上环境的Hadoop从1.2.1升级到2.6.0的过程,同时涉及HBase和Hive的升级。尽管已预先在测试环境中踩坑,线上升级仍遇到了如HDFS文件系统修改、HBase的Hadoop兼容性、Hive依赖配置等问题。升级步骤包括Hadoop、HBase的分发、配置修改、校验及启动,以及Hive的依赖配置。文章特别提到了HBase无法加载libsnappy.so的问题及其原因分析。
摘要由CSDN通过智能技术生成

 为了更好地紧跟大数据发展先进性的技术趋势,追赶业界最顶尖的发展技术,我们把线上环境的Hadoop 1.2.1升级到2.6.0版本。这次的升级其实早有预谋,但鉴于升级过程较为繁琐,并且不但涉及HDFS的底层存储的升级,还涉及Hive、Hbase等上层系统的使用,有一定的风险,因此一直都在等待一个合适的时机。直到最近,我们的利用了Hadoop2.6.0和HBase的0.98.8的API的ETL系统正式完成开发,要在线上环境进行部署的时候,我们才决心要升级。

    虽然之前已经在测试环境进行了一次升级的尝试,并且已经踩过不少的坑,但在线上环境进行升级的过程,还是出现了各种问题,不过最终还是顺利完成了整个升级过程。我们的线上环境之前总共13个节点,其中有12个DataNode和TaskTracker,另外还有1个NameNode和JobTracker,在这次的升级之前,刚好有一台新机器可以一并部署,于是就决定全部14台机器一并升级。另外集群升级之前,所有DataNode节点总共约有60TB的HDFS空间,并且已经使用其中的26TB来存放HDFS数据。

    整个升级步骤总体分为三步:

1、Hadoop升级。Hadoop 1.2.1 -> Hadoop 2.6.0

2、HBase升级。HBase 0.94.17 -> HBase 0.96.2 -> HBase 0.98.8

3、Hive依赖配置。

    另外要说明的是,这次的升级没有进行HDFS的HA特性的配置升级,由于考虑到HA特性需要更改相关的Hive、HBase相关元数据,所以还是用回旧的secondary namenode特性。建议在参考本文升级步骤之前,请先在官网阅读相关文档,理解相关特性。

Hadoop升级   

  • 准备

(1)停止相关服务。包括HBase,HiveServer2。

        首先停止上层系统,防止升级过程中对Hadoop的影响。

(2)进入安全模式。

        Hadoop有一个安全模式,进入安全模式之后,会禁止HDFS系统的文件进行修改和删除,一般是在系统启动的时候,进入初始化的过程中会进入该状态。由于我们在之后的备份需要读取HDFS节点的状态,因此进入安全模式防止对文件系统的修改。相关命令:

[hadoop@namenode]$ hadoop dfsadmin -safemode enter

(3)备份相关数据。

   运行这些命令来进行相关HDFS状态的备份。

//文件块数情况
[hadoop@namenode]$ hadoop fsck / -files -blocks -locations > dfs-old-fsck-1.log
//目录情况
[hadoop@namenode]$ hadoop dfs -lsr / > dfs-old-lsr-1.log
//HDFS结点情况
[hadoop@namenode]$ hadoop dfsadmin -report > dfs-old-report-1.log
//把NameNode在内存中的HDFS节点情况保存到硬盘里
[hadoop@namenode]$ hadoop dfsadmin -saveNamespace
//手动备份NameNode数据目录,{dfs.name.dir}是hdfs-site.xml设置的路径
[hadoop@namenode]$ cp {dfs.name.dir} .

    fsck命令会在最后输出HDFS是否为健康状态(Status: HEALTHY),若有损坏block则要进行恢复。

(4)终结之前的升级状态。

    防止在升级过程中,存有上次升级过程遗留的状态,需要清理掉。

[hadoop@namenode]$ hadoop namenode -finalize

(5)备份Hive元数据(可选)

    我们集群使用了mysql来保留,因此对mysql进行数据库备份。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值