如何在独立OS/X上设置运行spark的mesos

jav*_*dba 5 macos scala mesos apache-spark

我想在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)
Run Code Online (Sandbox Code Playgroud)

为了运行spark客户端程序,os/x除了spark服务器本身之外还需要什么设置?

moh*_*oni 9

您需要设置'MESOS_NATIVE_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'
Run Code Online (Sandbox Code Playgroud)

我建议将该行添加到.bashrc中,以避免每次都这样做.


Jos*_*sen 5

如果要将Spark与Mesos一起使用,项目网站上说明,包括如何在OS X上查找Mesos库路径的说明.

正如您所注意到的,还有其他部署模式,包括local模式,不需要安装Mesos.

基于您的堆栈跟踪,看起来您可能正在使用旧版本的Spark.从Spark 0.8.0+开始,这些包已经被移动到org.apache.spark命名空间中,因此如果您不想升级,可能需要使用早期版本的文档.