最笨的方法解决 使用Snappy 压缩方式报错“java.lang.UnsatisfiedLinkError: no snappyjava in java.library.path”
2015-08-31 16:56
633 查看
之前写过一篇这个文章:/article/1810556.html,那个时候 linux环境 spark 使用snappy方式压缩任然不好用,而今天我同事hive on hadoop 使用snappy压缩方式也报这个错,此刻的我,感觉这个问题 一定要解决
我想了想,只能使用最笨的方式先解决这个问题了,将libsnappyjava.so文件放到$J***A_HOME/jre/lib/amd64/下了
操作过程如下:
首先把$HADOOP_HOME/share/hadoop/common/lib/snappy-java-1.1.1.7.jar copy到临时目录下,然后unzip snappy-java-1.1.1.7.jar
解压后会有如下目录:
4096 Aug 31 15:58 META-INF
4096 Apr 14 16:05 org
进入libsnappyjava.so所在目录:
$cd org/xerial/snappy/native/Linux/x86_64/
就可以看到如下文件:
libsnappyjava.so
copy 到$J***A_HOME/jre/lib/amd64/
测试程序如下:
编译:javac -classpath ./snappy-java-1.1.1.7.jar TestSnappy.java
执行:java TestSnappy
执行结果:
Hello snappy-java! Snappy-java is a JNI-based wrapper of Snappy, a fast compresser/decompresser.
将“libsnappyjava.so”文件copy到 hadoop集群:$J***A_HOME/jre/lib/amd64/下,hive on hadoop,使用snappy方式压缩不在报错,搞定了
将SPARK_HOME/conf/spark-defaults.conf
spark.io.compression.codec lzf 注释或者去掉这行,spark将使用默认snappy压缩方式,也不再报错了
PS:
目前用最笨的方式解决了,但还是要进一步排查此问题
我想了想,只能使用最笨的方式先解决这个问题了,将libsnappyjava.so文件放到$J***A_HOME/jre/lib/amd64/下了
操作过程如下:
首先把$HADOOP_HOME/share/hadoop/common/lib/snappy-java-1.1.1.7.jar copy到临时目录下,然后unzip snappy-java-1.1.1.7.jar
解压后会有如下目录:
4096 Aug 31 15:58 META-INF
4096 Apr 14 16:05 org
进入libsnappyjava.so所在目录:
$cd org/xerial/snappy/native/Linux/x86_64/
就可以看到如下文件:
libsnappyjava.so
copy 到$J***A_HOME/jre/lib/amd64/
测试程序如下:
import org.xerial.snappy.Snappy; /** * * Created by stark_summer on 15/8/8. * */ public class TestSnappy { public static void main(String[] args) throws Exception{ String input = "Hello snappy-java! Snappy-java is a JNI-based wrapper of " + "Snappy, a fast compresser/decompresser."; byte[] compressed = Snappy.compress(input.getBytes("UTF-8")); byte[] uncompressed = Snappy.uncompress(compressed); String result = new String(uncompressed, "UTF-8"); System.out.println(result); } }
编译:javac -classpath ./snappy-java-1.1.1.7.jar TestSnappy.java
执行:java TestSnappy
执行结果:
Hello snappy-java! Snappy-java is a JNI-based wrapper of Snappy, a fast compresser/decompresser.
将“libsnappyjava.so”文件copy到 hadoop集群:$J***A_HOME/jre/lib/amd64/下,hive on hadoop,使用snappy方式压缩不在报错,搞定了
将SPARK_HOME/conf/spark-defaults.conf
spark.io.compression.codec lzf 注释或者去掉这行,spark将使用默认snappy压缩方式,也不再报错了
PS:
目前用最笨的方式解决了,但还是要进一步排查此问题
相关文章推荐
- log4j:WARN No appenders could be found for logger
- 最笨的方法解决 使用Snappy 压缩方式报错“java.lang.UnsatisfiedLinkError: no snappyjava in java.library.path”
- swift 创建单例模式
- iOS —— MagicalRecord的使用
- COCOS2dx 3.5 实现带白色边框圆形头像功能
- Android开发工具--Android studio开发常用插件和工具
- Android Fragment 和 Activity
- JEECMS的微信插件MessageAct组件冲突
- CheckBox选择框和文字设置间距
- Android audio framework的一些业务流程
- Unity3D学习笔记《Roll-a-Ball》一
- Android与js交互实例
- Android 在线更新apk
- cocos2dx value vector map
- android 轻量级的友好的交互对话框库,EasyDialog,实现已详细标注
- android 轻量级的友好的交互对话框库,EasyDialog,实现已详细标注
- (Android系列之Fragment(一)----Fragment加载到Activity当中)
- 对Android初学者的10个建议
- Android5.0 铃声免打扰设置源码浅析
- Cocos2d-x从入门到精通第五课《Cocos2d-x中的Node》