首页 / 浏览问题 / 云GIS / 问题详情
搭建spark集群,在iserve上执行拷贝作业出错
hqd
13EXP 2022年07月06日
iserver9.1.2  iobject for spark 9.1.2

centos7.8

具体报错原因:

2022-7-6 22:00:45 - WARN - 分布式分析作业a0b1e73b_9e7e_4174_8b0f_d68826394571分析失败,原因是:Job aborted due to stage failure: Task 2 in stage 1.0 failed 4 times, most recent failure: Lost task 2.3 in stage 1.0 (TID 13, 172.18.196.165, executor 2): java.lang.UnsatisfiedLinkError: com.supermap.data.DatasourceConnectionInfoNative.jni_New()J

at com.supermap.data.DatasourceConnectionInfoNative.jni_New(Native Method)

at com.supermap.data.DatasourceConnectionInfo.<init>(Unknown Source)

at com.supermap.bdt.io.sdx.DSConnectionInfo.toDsInfo(DSConnectionInfo.scala:23)

at com.supermap.bdt.io.sdx.SDXReader$.getDatasource(SDXReader.scala:435)

at com.supermap.bdt.io.sdx.SDXFeatureRDD.compute(SDXFeatureRDD.scala:563)

at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)

at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)

at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)

at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)

at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)

at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)

at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)

at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)

at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)

at org.apache.spark.scheduler.Task.run(Task.scala:99)

at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:282)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:750)

2 个回答

你好,请问是自行大家的spark外部集群吗?在集群节点机器上有配置iobjects java组件bin包吗,以及是否将java组件bin路径配置到系统环境变量中啊?

从报错提示分析原因:是因为172.18.196.165节点机器在计算时没找到iobject java组件依赖库,导致链接so失败抛出异常。

解决方案:

1、在spark集群各worker几点机器配置iobject java组件包。(iobjects java组件版本与iobjects spark bdt jar版本保持一致)

2、将iobject java组件的bin全路径配置到系统环境变量 LD_LIBRARY_PATH环境变量里。

3、确保spark执行用户有权限访问到bin包文件和系统环境变量。
1,520EXP 2022年07月07日
电话:19181988854
按照你之前的方法都试过了,还是不行,报同样的错
还是报相同的错
再远程看看部署的包对不对。
通过远程已解决,解决方案:

1、将iobjects java组件版本更新为与bdt jar版本一致,均为10.2.1。

2、iobjects java组件bin配置到固定目录,/opt/SuperMap/iobjects/1021/Bin 目录下,用户权限保持与spark集群一致。

3、各集群节点机器的依赖库的缺失,通过iserver的sh dependencies_check_and_install.sh install -y脚本安装,检查依赖缺失命令 ldd libWrapjCore.so |grep not
问题已解决,集群每个节点检查环境变量配置,避免包冲突。

使用命令:ldd /opt/SuperMap/iobjects/1021/Bin/libWrapjCore.so |grep not 检查每个节点的依赖,若缺少记得配置
hqd
13EXP 2022年07月08日
...