更新时间:2024-08-05 GMT+08:00
第三方jar包跨平台(x86、TaiShan)支持
问题
用户自己写的jar包(例如自定义udf包)区分x86和TaiShan版本,如何让Spark2x支持其正常运行。
回答
第三方jar包(例如自定义udf)区分x86和TaiShan版本时,混合使用方案:
- 进入到服务端Spark2x SparkResource的安装目录(集群安装时,SparkResource可能会安装在多个节点上,登录任意一个SparkResource节点,进入到SparkResource的安装目录)。
- 准备好自己的jar包,例如xx.jar的x86版本和TaiShan版本。将x86版本和TaiShan版本的xx.jar分别复制到当前目录的x86文件夹和TaiShan文件夹里面。
- 在当前目录下执行以下命令将jar包打包:
zip -qDj spark-archive-2x-x86.zip x86/*
zip -qDj spark-archive-2x-arm.zip arm/*
- 执行以下命令查看hdfs上的spark2x依赖的jar包:
hdfs dfs -ls /user/spark2x/jars/8.1.0.1
8.1.0.1是版本号,不同版本不同。
执行以下命令移动hdfs上旧的jar包文件到其他目录,例如移动到“tmp”目录。
hdfs dfs -mv /user/spark2x/jars/8.1.0.1/spark-archive-2x-arm.zip /tmp
hdfs dfs -mv /user/spark2x/jars/8.1.0.1/spark-archive-2x-x86.zip /tmp
- 上传3中打包的spark-archive-2x-arm.zip和spark-archive-2x-x86.zip到hdfs的/user/spark2x/jars/8.1.0.1目录下,上传命令如下:
hdfs dfs -put spark-archive-2x-arm.zip /user/spark2x/jars/8.1.0.1/
hdfs dfs -put spark-archive-2x-x86.zip /user/spark2x/jars/8.1.0.1/
上传完毕后删除本地的spark-archive-2x-arm.zip,spark-archive-2x-x86.zip文件。
- 对其他的sparkResource安装节点执行1~2。
- 进入webUI重启spark2x的jdbcServer实例。
- 重启后,需要更新客户端配置。按照客户端所在的机器类型(x86、TaiShan)复制xx.jar的相应版本到客户端的Spark2x安装目录“${install_home}/Spark2x/spark/jars”文件夹中。${install_home}是用户的客户端安装路径,用户需要填写实际的安装目录;若本地的安装目录为“/opt/hadoopclient”,那么就复制相应版本xx.jar到“/opt/hadoopclient/Spark2x/spark/jars”文件夹里。
父主题: Spark应用开发常见问题