本文为您介绍新版控制台上EMR集群JindoSDK的升级流程。
背景信息
如果您在新版控制台上创建的EMR-5.6.0及以上版本或EMR-3.40.0及以上版本集群中,遇到JindoData版本已知问题或需要使用新功能(详情请参见JindoData版本说明),可以将JindoSDK进行升级。
准备软件包和升级脚本
登录EMR集群的Master节点,并将下载的patch包放在emr-user用户的HOME目录下,将patch包解压缩后,使用emr-user用户执行操作。
su - emr-user
cd /home/emr-user/
wget https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/resources/emr-taihao/jindosdk-patches.tar.gz
tar zxf jindosdk-patches.tar.gz
下载JindoSDK软件包jindosdk-{VERSION}.tar.gz,放在解压后的目录。
cd jindosdk-patches
wget https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/4.6.2/jindosdk-4.6.2.tar.gz
ls -l
jindosdk-patches内容示例如下:
-rwxrwxr-x 1 emr-user emr-user 575 May 01 00:00 apply_all.sh
-rwxrwxr-x 1 emr-user emr-user 4047 May 01 00:00 apply.sh
-rw-rw-r-- 1 emr-user emr-user 40 May 01 00:00 hosts
-rw-r----- 1 emr-user emr-user xxxxxxxxx May 01 00:00 jindosdk-4.6.2.tar.gz
配置升级节点信息
编辑patch包下的hosts文件,添加集群所有节点的host name,例如master-1-1或core-1-1,文件内容以行分割。
cd jindosdk-patches
vim hosts
hosts文件内容示例如下:master-1-1
core-1-1
core-1-2
执行升级
通过apply_all.sh脚本执行升级操作。
./apply_all.sh $NEW_JINDOSDK_VERSION $OLD_JINDOSDK_VERSION
例如./apply_all.sh 4.6.2 4.5.1
脚本执行完成后,返回如下提示信息。>>> updating ... master-1-1
>>> updating ... core-1-1
>>> updating ... core-1-2
### DONE
说明 对于已经在运行的YARN作业(Application,例如:Spark Streaming或Flink作业),需要停止作业后,批量滚动重启YARN NodeManager。
升级后重启服务
升级完成后在EMR控制台上重启JindoData服务的Hive、Presto、Impala、Druid、Flink、Solr、Ranger、Storm、Oozie、Spark和Zeppelin组件,完成升级。以Hive组件为例,在EMR集群的Hive服务页面,选择右上角的
完成重启。新建集群和扩容已有集群
新建EMR集群时在EMR控制台添加引导操作,或扩容已有集群时自动升级修复。具体操作步骤如下:
- 制作引导升级包。
- 上传引导升级包。
将patch包和bootstrap脚本上传到OSS上。EMR集群内可以通过Hadoop命令上传,也可以通过阿里云对象存储OSS控制台、ossutil或OSS Browser等工具上传。
hadoop dfs -mkdir -p oss://<bucket-name>/path/to/patch/ cd /home/hadoop/patch/ hadoop dfs -put jindosdk-bootstrap-patches.tar.gz oss://<bucket-name>/path/to/patch/ hadoop dfs -put bootstrap_jindosdk.sh oss://<bucket-name>/path/to/patch/ hadoop dfs -ls oss://<bucket-name>/path/to/patch/
返回内容示例如下:
Found 2 items -rw-rw-rw- 1 2634 2022-05-13 14:07 oss://<bucket-name>/.../bootstrap_jindosdk.sh -rw-rw-rw- 1 597342992 2022-05-13 13:41 oss://<bucket-name>/.../jindosdk-bootstrap-patches.tar.gz
例如,上传到OSS的路径为
oss://<bucket-name>/path/to/bootstrap_jindosdk.sh
和oss://<bucket-name>/path/to/jindosdk-bootstrap-patches.tar.gz
。 - 在EMR控制台添加引导操作。具体步骤,请参见管理引导操作。
需添加的配置项如下所示:
参数 描述 示例 名称 引导操作的名称。例如:升级JINDOSDK。 update_jindosdk 脚本位置 选择脚本所在OSS的位置。脚本路径格式必须为 oss://**/*.sh
格式。oss:///path/to/patch/bootstrap_jindosdk.sh
参数 引导操作脚本的参数,指定脚本中所引用的变量的值。 -bootstrap oss:///path/to/patch/jindosdk-bootstrap-patches.tar.gz
执行范围 选择集群。 集群 执行时间 选择组件启动后。 组件启动后 执行失败策略 选择继续执行。 继续执行 - 重启相关组件,确保加载到最新的修复。
- 如果是新建集群,则需要重启Hive、Presto、Impala、Druid、Flink、Solr、Ranger、Storm、Oozie、Spark和Zeppelin等组件。
- 如果是扩容新节点,则需要重启对应节点上的Hive、Presto、Impala、Druid、Flink、Solr、Ranger、Storm、Oozie、Spark和Zeppelin等组件。