ubuntu

如何升级 Ubuntu Hadoop 系统

小樊
49
2025-09-23 12:44:23
栏目: 智能运维

如何升级Ubuntu上的Hadoop系统

升级Hadoop系统需谨慎操作,以避免数据丢失或服务中断。以下是基于Ubuntu环境的详细升级步骤及注意事项:

一、升级前准备

  1. 备份关键数据与配置
    升级前必须备份HDFS中的业务数据(如/user目录下的文件)和集群配置文件(core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xml等),建议备份至本地磁盘或远程存储(如S3)。可使用hadoop fs -cp命令备份HDFS数据,用cp -r命令备份配置目录。
  2. 检查版本兼容性
    查阅新版本Hadoop的官方升级指南(如从2.x升级到3.x),确认新版本与Ubuntu系统版本(如22.04/24.04)、Java版本(推荐OpenJDK 11+)及其他依赖组件(如ZooKeeper、Hive)的兼容性。
  3. 检查系统依赖
    确保Ubuntu系统已安装新版本Hadoop所需的依赖库(如libsnappy1v5zlib1g等),避免因依赖缺失导致启动失败。可通过sudo apt-get install libsnappy1v5 libsnappy-dev zlib1g zlib1g-dev安装常用依赖。

二、停止Hadoop集群

在升级前,需完全停止集群中的所有服务,避免数据损坏。执行以下命令:

cd /path/to/hadoop/bin  # 进入Hadoop bin目录
./stop-all.sh           # 停止所有Hadoop服务(包括NameNode、DataNode、ResourceManager等)

使用jps命令确认所有Hadoop守护进程(如NameNode、DataNode)已停止。

三、下载并解压新版本Hadoop

  1. 下载新版本
    访问Apache Hadoop官方网站(https://hadoop.apache.org/releases.html),下载所需版本的安装包(如hadoop-3.3.6.tar.gz)。
  2. 解压安装包
    将下载的安装包解压至目标目录(如/usr/local/),并重命名文件夹为hadoop
    sudo tar -zxvf hadoop-3.3.6.tar.gz -C /usr/local/
    sudo mv /usr/local/hadoop-3.3.6 /usr/local/hadoop
    
  3. 更新环境变量
    编辑/etc/profile文件,添加或修改以下变量(指向新版本Hadoop目录):
    export HADOOP_HOME=/usr/local/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    执行source /etc/profile使环境变量生效。

四、迁移与更新配置文件

  1. 备份旧配置
    将旧版本的配置目录备份至conf.old
    cp -r $HADOOP_HOME/conf $HADOOP_HOME/conf.old
    
  2. 替换新配置文件
    将新版本conf目录下的配置文件(core-site.xmlhdfs-site.xmlyarn-site.xml等)复制到旧配置目录,覆盖原有文件。需重点检查以下配置:
    • core-site.xml:确认fs.defaultFS(HDFS地址)是否正确;
    • hdfs-site.xml:检查dfs.replication(副本数)、dfs.namenode.name.dir(NameNode元数据目录)等参数;
    • yarn-site.xml:调整yarn.nodemanager.aux-services(如mapreduce_shuffle)等参数。

五、执行HDFS滚动升级(关键步骤)

若从Hadoop 2.x升级到3.x,需使用滚动升级(Rolling Upgrade)功能,逐步升级集群中的每个节点,避免停机。步骤如下:

  1. 准备滚动升级
    在Standby NameNode上执行:
    hdfs dfsadmin -rollingUpgrade prepare
    
    使用hdfs dfsadmin -rollingUpgrade query检查状态,若返回“Proceed with rolling upgrade”,则可继续。
  2. 启动滚动升级
    在Active NameNode上执行:
    hdfs dfsadmin -rollingUpgrade start
    
  3. 逐个升级DataNode
    登录每个DataNode节点,依次执行:
    hdfs dfsadmin -shutdownDatanode <datanode_host>:<ipc_port> upgrade  # 关闭DataNode
    hadoop-daemon.sh start datanode                                   # 重启DataNode(自动升级)
    
    重复上述步骤,直到所有DataNode均升级完成。

六、启动新版本集群并验证

  1. 启动Hadoop服务
    执行以下命令启动HDFS和YARN服务:
    $HADOOP_HOME/sbin/start-dfs.sh    # 启动HDFS
    $HADOOP_HOME/sbin/start-yarn.sh   # 启动YARN
    
  2. 检查服务状态
    使用jps命令确认所有守护进程(NameNode、DataNode、ResourceManager、NodeManager)已启动。访问NameNode Web界面(如http://<namenode_host>:9870),查看集群状态是否正常。
  3. 验证功能
    运行简单测试任务(如hadoop fs -put上传文件、hadoop jar hadoop-mapreduce-examples.jar wordcount执行WordCount),确认Hadoop功能正常。

七、完成升级(可选)

若无需回滚,可执行以下命令完成升级(清理旧版本元数据):

hdfs dfsadmin -rollingUpgrade finalize

此操作不可逆,执行后无法回滚到旧版本。

八、回滚计划(应对问题)

若升级后出现异常(如服务无法启动、数据损坏),可立即执行回滚:

  1. 停止集群./stop-all.sh
  2. 回滚HDFShdfs dfsadmin -rollingUpgrade rollback
  3. 重启旧版本:使用旧版本的start-dfs.shstart-yarn.sh启动集群。

通过以上步骤,可安全地将Ubuntu上的Hadoop系统升级到新版本。升级过程中需密切关注日志($HADOOP_HOME/logs),及时处理异常情况。

0
看了该问题的人还看了