我只是按照 Cloudera 文档中的步骤,在集群上安装了 GPL Extras Parcel,并通过 Cloudera Manager 配置了 HDFS 服务。但是尝试读取 HDFS 上的 .lzo 文件时出现错误:
$hadoop fs -text /tmp/Lzo/log.txt.lzo
INFO lzo.GPLNativeCodecLoader: Loaded native gpl library
WARN lzo.LzoCompressor: java.lang.NoSuchFiledError: lzoCompressLevelFunc
ERROR lzo.LzoCodec: Failed to load/initialize native-lzo library
-text: Fatal internal error
java.lang.RuntimeException: native-lzo library not available
我已经阅读了十几篇文章,并且知道这是由于 JNI 加载 lzo 库失败引起的,但是没有一个可以正确解决我的问题。以下是我所做的努力:
1.所有datanodes都安装了lzop。
2.mapred-site.xml中的JAVA_LIBRARY_PATH设置为/opt/cloudera/parcels/CDH/lib/hadoop/lib/native,其中包含liblzo2.*文件。
3.HADOOP_CLASSPATH 设置为包含 hadoop-lzo.jar 文件的 /usr/local/lib。
我还可以做些什么?任何建议,将不胜感激!