java.lang.RuntimeException: native snappy library not available: this version of libhadoop was built without snappy support. 解决方案
原因是snappy本地库不可用,在编译libhadoop的时候需要制定支持snappy,这一点不同于hadoop1.0,haodop2.0只需要将snappy本地库往指定目录copy就行了,不需要重新编译libhadoop本地库文件。
解决方法:
方法一:【推荐】指定libhadoop路径,这样程序就可以动态链接libhadoop运行了。具体路径根据自己环境的路径填写。
export LD_LIBRARY_PATH=~/CDH/lib/hadoop/lib/native
方法二:粗暴一点,直接初始化环境配置。运行hadoop-config.sh,这个是hadoop自带的脚本,包含了很多hadoop的环境变量
export HADOOP_LIBEXEC_DIR=~/CDH/lib/hadoop/libexec
. ${HADOOP_LIBEXEC_DIR}/hadoop-config.sh