如何设置mesos以在独立os/x上运行spark

pgvzfuti  于 2021-06-21  发布在  Mesos
关注(0)|答案(3)|浏览(507)

我想在mac上测试spark程序。spark正在运行,我的spark scala程序正在编译:但运行时出现库(mesos.so?)错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no mesos in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1045)
    at org.apache.mesos.MesosNativeLibrary.load(MesosNativeLibrary.java:46)
    at spark.SparkContext.<init>(SparkContext.scala:170)
    at com.blazedb.scala.ccp.spark.LoadRDD$.main(LoadRDD.scala:14)

除了spark服务器本身,mesos在os/x上还需要什么设置才能运行spark客户机程序?

wmtdaxz3

wmtdaxz31#

您需要设置“mesos\u native\u library”环境变量,即libmesos.so的位置。它通常是/usr/local/lib/libmesos.so。


# For Linux

$ export MESOS_NATIVE_LIBRARY='/usr/local/lib/libmesos.so'

# For OSX

$ export MESOS_NATIVE_LIBRARY='/usr/local/lib/libmesos.dylib'

我建议您也将这一行添加到您的.bashrc中,以避免每次都这样做。

gg0vcinb

gg0vcinb2#

如果您想在mesos中使用spark,项目网站上有一些说明,包括如何在osx上找到mesos库的路径。
正如您所注意到的,还有其他部署模式,包括 local 模式,不需要安装mesos。
根据stacktrace,您可能正在使用旧版本的spark。自spark 0.8.0+以来,软件包已被移入 org.apache.spark 命名空间,所以如果不想升级,可能需要使用文档的早期版本。

pcww981p

pcww981p3#

如果您从源代码构建mesos,那么所有生成的lib都将在[mesos\u home]/src/.libs文件夹中生成。必须删除空的[mesos\u home]/.libs文件夹,并创建指向[mesos\u home]/src/.libs的符号链接
使用的命令有:
rm-r[mesos\u home]/src/.libs
ln-s[mesos\u home]/src/.libs[mesos\u home]/.libs
丢失了我的问题“g++:错误:../.libs/libmesos.so:没有这样的文件或目录”

相关问题