FI Spark jar包替换指南

举报
小兔子615 发表于 2021/10/30 15:38:13 2021/10/30
【摘要】 1、注意替换Spark jar包为高危操作!替换jar包有误可能导致Spark任务异常,非必要情况请勿随意替换。替换的jar包需要先修改属组为:omm:wheel 。 2、具体步骤 2、1替换服务端jar包使用PuTTY以root用户登录主管理节点,进入“/opt/FusionInsight_SetupTool/preinstall/tools/cluster”目录,执行vi cluste...

1、注意

替换Spark jar包为高危操作!替换jar包有误可能导致Spark任务异常,非必要情况请勿随意替换。
替换的jar包需要先修改属组为:omm:wheel 。

2、具体步骤

2、1替换服务端jar包

  1. 使用PuTTY以root用户登录主管理节点,进入“/opt/FusionInsight_SetupTool/preinstall/tools/cluster”目录,执行vi cluster.ini命令,修改分发配置文件。
  • 设置“g_hosts”参数值为所有Spark2x服务所有实例的IP地址,不连续的IP地址以逗号隔开。
  • 设置“g_user_name”配置项为“omm”。
  • 设置“g_password”为各节点的用户密码信息存储文件,需要自行创建,文件格式参考注释说明。
  • “g_timeout”参数为各节点执行超时时间,建议设置大于或等于300。
    例如:
g_hosts="10.120.205.[10-20]"
g_user_name="omm"
g_password="/opt/passwd"
g_port=22
g_timeout=300

其中“/opt/passwd”文件需手动创建且修改用户权限为omm:wheel,文件中不能有多余空行,内容格式如下:

10.120.205.[10-20]
omm用户的密码
  1. 进入“/opt/FusionInsight_SetupTool/preinstall/tools/cluster”目录,执行以下命令
# 替换jar包路径(以replace.jar为例)
replace_jar=/opt/replace.jar
replace_jar_name=${replace_jar##*/}
 
# 修改权限以替换jar包
sh clustercmd.sh "chmod 700 ${BIGDATA_HOME}/FusionInsight_Spark2x_*/install/FusionInsight-Spark2x-*/spark/jars/${replace_jar_name}"
 
sh clusterscp.sh put ${replace_jar} ${BIGDATA_HOME}/FusionInsight_Spark2x_*/install/FusionInsight-Spark2x-*/spark/jars/
 
sh clustercmd.sh "chmod 500 ${BIGDATA_HOME}/FusionInsight_Spark2x_*/install/FusionInsight-Spark2x-*/spark/jars/${replace_jar_name}"
 
# 检查Spark2x程序目录下的补丁jar文件修改时间是否为当前时间,文件属组及权限是否正确,确保文件替换成功
sh clustercmd.sh "ls -l ${BIGDATA_HOME}/FusionInsight_Spark2x_*/install/FusionInsight-Spark2x-*/spark/jars/${replace_jar_name}"

2.2 替换HDFS上的spark-archive-2x.zip

在spark on yarn模式下,为了分发spark依赖的jar包,会将Spark依赖的必要jar包打包成zip包并放置在hdfs上(默认命名为spark-archive-2x.zip),在运行任务时分发到各个节点。在某些情况下,如果需要修改分发到各个节点的jar包,则需要修改spark-archive-2x.zip压缩包中的jar包。

​ 替换前需要登录客户端所在节点,配置环境变量并完成认证(用户需要加入supergroup用户组,具备HDFS文件删除权限)

​ 切换到omm用户,进行以下操作

# 操作目录(以/opt/tmp/为例)
tmp_dir=/opt/tmp
 
# 替换jar包路径(以replace.jar为例)
replace_jar=/opt/replace.jar
replace_jar_name=${replace_jar##*/}
 
# 获取压缩包地址
spark_yarn_archive=$(grep "spark.yarn.archive" "${SPARK_HOME}"/conf/spark-defaults.conf)
zip_path=${spark_yarn_archive##*=}
 
#若操作目录不存在,则创建目录
mkdir -p ${tmp_dir}
 
# 下载压缩包到本地
hdfs dfs -get ${zip_path} ${tmp_dir}
 
# 解压并替换jar包
mkdir ${tmp_dir}/spark-archive-2x
unzip -d ${tmp_dir}/spark-archive-2x ${tmp_dir}/spark-archive-2x.zip
cp -f ${replace_jar} ${tmp_dir}/spark-archive-2x/${replace_jar_name}
cd ${tmp_dir}/spark-archive-2x
zip -qr spark-archive-2x.zip ./*
 
# 备份压缩包
hdfs dfs -cp ${zip_path} /user/spark2x/jars${fi_version}/spark-archive-2x.zip.bak
 
# 上传压缩包
hdfs dfs -put -f ${tmp_dir}/spark-archive-2x/spark-archive-2x.zip ${zip_path}
 
# 修改权限 属组
hdfs dfs -chown spark2x:hadoop ${zip_path}
hdfs dfs -chmod 744 ${zip_path}
 
# 确认 spark-archive-2x.zip 压缩包已上传且权限正确。
hdfs dfs -ls ${zip_path}
 
# 删除临时文件
rm -rf ${tmp_dir}/spark-archive-2x ${tmp_dir}/spark-archive-2x.zip
rmdir ${tmp_dir}

2.3 替换客户端jar包

注意: 替换jar包权限需要与客户端目录权限一致

#客户端目录(以/opt/client为例)
client=/opt/client
 
# 替换jar包路径(以replace.jar为例)
replace_jar=/opt/replace.jar
 
cp -fr ${replace_jar} ${client}/Spark2x/spark/jars

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。