【发布时间】:2016-07-07 06:35:58
【问题描述】:
我只是按照 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.所有datanode都安装了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。
我还能做什么?任何建议将不胜感激!
【问题讨论】:
-
感谢您的建议!我的集群与此略有不同,因为我使用的 CDH 5.6 与存储库中任何版本的 HADOOP_LZO 包不匹配,而是包含 hadoop-lzo-0.4.15-cdh5 的 GPL EXTRAS 包。 6.0.jar。我想知道他们是否平等?
标签: hadoop cloudera-cdh lzo