我想在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客户机程序?
3条答案
按热度按时间wmtdaxz31#
您需要设置“mesos\u native\u library”环境变量,即libmesos.so的位置。它通常是/usr/local/lib/libmesos.so。
我建议您也将这一行添加到您的.bashrc中,以避免每次都这样做。
gg0vcinb2#
如果您想在mesos中使用spark,项目网站上有一些说明,包括如何在osx上找到mesos库的路径。
正如您所注意到的,还有其他部署模式,包括
local
模式,不需要安装mesos。根据stacktrace,您可能正在使用旧版本的spark。自spark 0.8.0+以来,软件包已被移入
org.apache.spark
命名空间,所以如果不想升级,可能需要使用文档的早期版本。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:没有这样的文件或目录”