我已将以下简单的LzoWordCount写入我的网关/ hadoop-env.sh:
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'没有回报?
答案 0 :(得分:3)
问题是我们没有在datanode上安装lzop。我用它修复了它:
sudo apt-get install lzop
答案 1 :(得分:2)
1.install lzo
yum install lzo -y
2.install hadoop-gpl-packaging
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/hadoop-gpl-packing/hadoop-gpl-packaging-0.6.1-1.x86_64.rpm
rpm -i hadoop-gpl-packaging-0.6.1-1.x86_64.rpm
3.copy jar
cp /opt/hadoopgpl/lib/hadoop-lzo-*.jar $HADOOP_HOME/share/hadoop/common/
4 copy lib
cp /opt/hadoopgpl/native/Linux-amd64-64/* $HADOOP_HOME/lib/native/
答案 2 :(得分:1)
转到:https://code.google.com/p/hadoop-gpl-packing/downloads/list
下载jar并且rpm安装rpm(当时:hadoop-gpl-packaging-0.6.1-1.x86_64.rpm
)然后
yum install install lzop
rpm -i hadoop-gpl-packaging-0.6.1-1.x86_64.rpm
sudo cp /opt/hadoopgpl/native/Linux-amd64-64/* /usr/lib/hadoop/lib/native/
sudo cp /opt/hadoopgpl/lib/*lzo* /usr/lib/hadoop/lib/
对上述命令感到厌倦,不要覆盖你不想要的文件。所以在运行之前首先制作一个目标文件夹的背面。
答案 3 :(得分:0)
这意味着您的hadoop-lzo-***.jar
不在HADOOP_CLASSPATH
然后,您可以将jar文件复制到hadoop/lib
文件夹或添加路径hadoop/bin/hadoop-env.sh
,您必须在所有您的节点上执行此操作
我希望它能解决它; - )