本机lzo库在hadoop数据节点上不可用

6rvt4ljy  于 2021-06-03  发布在  Hadoop
关注(0)|答案(4)|浏览(335)

我在我的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”没有返回任何内容?

hyrbngr7

hyrbngr71#

问题是我们没有在datanodes上安装lzop。我用以下方法修复了它:

sudo apt-get install lzop
apeeds0o

apeeds0o2#

所以这意味着你的 hadoop-lzo-***.jar 不在你的房间里 HADOOP_CLASSPATH 然后可以将jar复制到 hadoop/lib 文件夹或向您添加路径 hadoop/bin/hadoop-env.sh ,必须在所有节点上执行此操作
我希望它能解决这个问题;—)

xpcnnkqh

xpcnnkqh3#

1.安装lzo

yum install lzo -y

2.安装hadoop gpl包

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.复制jar

cp /opt/hadoopgpl/lib/hadoop-lzo-*.jar $HADOOP_HOME/share/hadoop/common/

4复制库

cp /opt/hadoopgpl/native/Linux-amd64-64/* $HADOOP_HOME/lib/native/
z9gpfhce

z9gpfhce4#

转到:https://code.google.com/p/hadoop-gpl-packing/downloads/list
下载jar并安装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/

厌倦了上面的命令,不要覆盖你不想覆盖的文件。因此,在运行此操作之前,请先对目标文件夹进行备份。

相关问题