我在我的gateway/hadoop-env.sh中编写了一个简单的lzowordcount:
HADOOP_CLASSPATH=/opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/hadoop-lzo-cdh4-0.4.15-gplextras.jar
JAVA_LIBRARY_PATH=/opt/cloudera/parcels/HADOOP_LZO-0.4.15-1.gplextras.p0.105/lib/hadoop/lib/native/
当我执行mr任务时,我得到:
mapred.JobClient: Task Id : attempt_201307311800_0020_m_000002_2, Status : FAILED java.lang.RuntimeException: native-lzo library not available
有什么办法解决这个问题吗?我注意到“hadoop classpath | grep native”没有返回任何内容?
4条答案
按热度按时间hyrbngr71#
问题是我们没有在datanodes上安装lzop。我用以下方法修复了它:
apeeds0o2#
所以这意味着你的
hadoop-lzo-***.jar
不在你的房间里HADOOP_CLASSPATH
然后可以将jar复制到hadoop/lib
文件夹或向您添加路径hadoop/bin/hadoop-env.sh
,必须在所有节点上执行此操作我希望它能解决这个问题;—)
xpcnnkqh3#
1.安装lzo
2.安装hadoop gpl包
3.复制jar
4复制库
z9gpfhce4#
转到:https://code.google.com/p/hadoop-gpl-packing/downloads/list
下载jar并安装rpm(当时:
hadoop-gpl-packaging-0.6.1-1.x86_64.rpm
)然后呢厌倦了上面的命令,不要覆盖你不想覆盖的文件。因此,在运行此操作之前,请先对目标文件夹进行备份。