MAC Spark no snappyjava in java.library.path

软件版本:

Mac:10.12.1,Spark:1.6.0-cdh5.7.3,JDK:1.7.0_79 ; IDEA:14;

问题描述:

在Mac上运行Spark程序时(采用local 生成SparkContext的方式,具体参考:https://github.com/fansy1990/Spark_MLlib_Algorithm_1.6.0/blob/master/src/test/scala/com/fz/classification/SVMTest.scala),提示如下错误:
MAC Spark no snappyjava in java.library.path_第1张图片

这个错误网上查,StackOverFlow上的一些帖子好像说是Mac上面的JDK1.7的版本有点问题,代码是lz实验的一种解决方案;

解决方案:

1. 确认Spark使用的snappy版本,由于我的项目是maven的,所以直接查看其依赖即可,如下:
MAC Spark no snappyjava in java.library.path_第2张图片

2. 查看版本后,在本地maven库中找到这个jar包,如下:
MAC Spark no snappyjava in java.library.path_第3张图片
然后解压这个jar包 :
unzip snappy-java-1.0.4.1.jar
接着,在本地目录就会有一个org目录了,去下面找到:


3.复制文件
网上有说把文件拷贝到/usr/lib下面,不过我mac上使用sudo也拷贝不了,当然也有说拷贝到/usr/local/lib下面的,有些人这个目录是系统目录,不过我的不是,而且其实我的压根就没有这个目录;
不过,我仍然是把libsnappyjava.jnilib拷贝到了/usr/local/lib下面,接下来是重命名,需要把这个文件命名为libsnappyjava.dylib ;

4. 配置idea
上面吧libsnappyjava.jnilib拷贝到/usr/local/lib下面后,再重命名到libsnappyjava.dylib下面还是不行的,直接运行idea还是会报错,所以还需要配置下idea,我的配置方式是:
如果要运行某个类,那么添加其vm参数,如下:
MAC Spark no snappyjava in java.library.path_第4张图片 
上面的路径就是拷贝libsnappyjava.dylib所在的路径了,所以上面拷贝这个文件到/usr/local/lib这个路径不一定一定要是这个路径;
其配置如下:
-Djava.library.path=/usr/local/lib
再次运行程序,发现程序可以正常运行;如下:
MAC Spark no snappyjava in java.library.path_第5张图片


分享,成长,快乐

转载请注明blog地址:http://blog.csdn.net/fansy1990








你可能感兴趣的:(spark,intellij,idea,cdh,mac)