更新时间:2024-08-03 GMT+08:00

第三方jar包跨平台(x86、TaiShan)支持

问题

用户自己写的jar包(比如自定义udf包)区分x86和TaiShan版本,如何让spark2x支持其正常运行。

回答

第三方jar包(例如自定义udf)区分x86和TaiShan版本时,混合使用方案:

  1. 进入到服务端spark2x sparkResource的安装目录(这个集群安装过程中可能会安装在多个节点上,随便进入一个安装节点,cd到sparkResource的安装目录)。
  2. 准备好自己的jar包例如xx.jar的x86版本和TaiShan版本。将x86版本和TaiShan版本的xx.jar分别复制到当前目录的x86文件夹和TaiShan文件夹里面。
  3. 在当前目录下执行以下命令将jar包打包:

    zip -qDj spark-archive-2x-x86.zip x86/*

    zip -qDj spark-archive-2x-arm.zip arm/*

  4. 执行以下命令查看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

  5. 上传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文件。

  6. 对其他的SparkResource安装节点执行1~2
  7. 进入WebUI重启Spark的JDBCServer实例。
  8. 重启后,需要更新客户端配置。按照客户端所在的机器类型(x86、TaiShan)复制xx.jar的相应版本到客户端的spark2x安装目录${install_home}/Spark2x/spark/jars文件夹中。${install_home}是用户的客户端安装路径,用户需要填写实际的安装目录;若本地的安装目录为/opt/hadoopclient,那么就复制相应版本xx.jar到/opt/hadoopclient/Spark2x/spark/jars文件夹里。