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

ARM环境python pipeline运行报139错误码规避方案

问题

在TaiShan服务器上,使用python插件的pipeline报错显示139错误。具体报错如下:

subprocess exited with status 139

回答

该python程序既使用了libcrypto.so,也使用了libssl.so。而一旦LD_LIBRARY_PATH添加了hadoop的native库目录,则使用的就是hadoop native库中的libcrypto.so,而使用系统自带的libssl.so(因为hadoop native目录没有带该包) 。由于这两个库版本不匹配,导致了python文件运行时出现段错误。

解决方案

方案一:

修改Spark2x客户端conf目录下spark-default.conf文件,清空(直接赋值为空) 配置项spark.driver.extraLibraryPath、spark.yarn.cluster.driver.extraLibraryPath和spark.executor.extraLibraryPath的值。

方案二:

在FusionInsight Mnanager中Spark2x界面中修改上述三个参数然后重启Spark2x实例之后重新下载客户端,具体步骤如下:

  1. 登录FusionInsight Mnanager界面,选择“集群 > 待操作集群的名称 > 服务 > Spark2x > 配置 > 全部配置”,搜索参数spark.driver.extraLibraryPath和spark.executor.extraLibraryPath,并清空其参数值。
  2. 在“全部配置”中选择“ SparkResource2x”。 在SparkResource2x中的custom中添加方案一中的三个参数,如下图所示:

  3. 单击“保存”,完成后重启过期的spark2x实例,并重新下载安装客户端。