FI Spark jar包替换指南
【摘要】 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包
- 使用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用户的密码
- 进入“/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)