【问题标题】:Spark with Mesos : java.lang.UnsatisfiedLinkError: libsvn_delta-1.so.0: cannot open shared object file: No such file or directorySpark with Mesos:java.lang.UnsatisfiedLinkError:libsvn_delta-1.so.0:无法打开共享对象文件:没有这样的文件或目录
【发布时间】:2019-08-12 19:03:37
【问题描述】:

我设置了一个包含 1 个主 (192.168.2.1) 和 2 个从 (192.168.2.2, 192.168.2.3) 的 mesos 集群。

我可以使用http://192.168.2.1:5050 成功访问 mesos,并且我可以看到两个从站都注册为代理。然后我在这 3 个节点上设置 spark。

然后我从 /usr/local/lib 下载了 libmesos.so (libmesos-1.8.1.so) 并将我的本地开发机器设置为

export MESOS_NATIVE_JAVA_LIBRARY=/mylocallibs/libmesos.so

当我尝试使用此 SparkConfig 连接到主服务器时

SparkConf sparkConf = new SparkConf()
      .setMaster("mesos://192.168.2.1:5050")
      .setAppName("My app")
      .set("spark.executor.uri", <http url to spark tgz>)
      .set("spark.submit.deployMode", "cluster");

我收到以下错误

java.lang.UnsatisfiedLinkError: libsvn_delta-1.so.0: cannot open shared object file: No such file or directory

我在这 3 个节点上设置 spark 的方式如下:

# Download spark executable
wget http://www-us.apache.org/dist/spark/spark-2.4.3/spark-2.4.3-bin-hadoop2.7.tgz -O /opt/spark-2.4.3-bin-hadoop2.7.tgz

# Extract
cd /opt; tar xzf /opt/spark-2.4.3-bin-hadoop2.7.tgz

# Setup link for upgrades
ln -s /opt/spark-2.4.3-bin-hadoop2.7 /opt/spark

# Set spark_home
export SPARK_HOME=/opt/spark

cp $SPARK_HOME/conf/spark-env.sh.template $SPARK_HOME/conf/spark.env.sh

# Edit spark-env.sh and set variables
vi $SPARK_HOME/conf/spark-env.sh

export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so

export SPARK_EXECUTOR_URI=<http url to spark tgz>

cp $SPARK_HOME/conf/spark-defaults.conf.template $SPARK_HOME/conf/spark-defaults.conf

# Edit spark defaults and set variables
vi $SPARK_HOME/conf/spark-defaults.conf

export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so

export SPARK_EXECUTOR_URI=<http url to spark tgz>

我尝试在本地开发机器上设置 LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/mylocallibs/

我下载了更高版本的 libsvn_delta-1.so.0 -> libsvn_delta-1.so.1 并将其重命名为 /mylocallibs 中的 libsvn_delta-1.so.0,因为我被困了很长时间。

这只是开始了一系列其他不满意的库文件。

我在这里遗漏了什么明显的东西吗?

【问题讨论】:

    标签: apache-spark mesos mesosphere


    【解决方案1】:

    你的应用程序已经加载了库并且应用程序尝试再次加载它,UnsatisfiedLinkError 将被 JVM 抛出

    由于您使用的是集群模式,您可能需要发送库 文件通过--files 选项访问它.. 或复制 lib 文件夹 到 hdfs 并尝试以集群模式从 hdfs 访问 它可以读取 高清晰度电视。 see this

    在集群模式下,驱动程序在执行程序节点之一中运行,它无法识别您的本地路径。

    为了确保它正在工作,将部署模式更改为客户端以查看其是否正常工作。

    或看到这个,类似的问题已在此处修复。看看那个。

    Installing libcurl4-nss-dev fix the problem.

    【讨论】:

    • 成功了!我必须将这些罐子放在一个目录中并导出 LD_LIBRARY_PATH
    猜你喜欢
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 2021-12-20
    • 2012-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多