библиотека native-lzo недоступна на узлах данных Hadoop

Я написал простой LzoWordCount в свой Gateway/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 | grep native' ничего не возвращает?


person Carl Sagan    schedule 05.08.2013    source источник
comment
Это нормально, но возвращает ли он что-то с hadoop classpath | grep lzo ??   -  person Brugere    schedule 06.08.2013
comment
путь к классам Hadoop | grep lzo мне ничего не возвращает   -  person Carl Sagan    schedule 06.08.2013


Ответы (4)


Проблема оказалась в том, что у нас не был установлен lzop на датанодах. Я исправил это, используя:

sudo apt-get install lzop
person Carl Sagan    schedule 07.08.2013

1.установить лзо

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.копировать банку

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

4 копии библиотеки

cp /opt/hadoopgpl/native/Linux-amd64-64/* $HADOOP_HOME/lib/native/
person hustljian    schedule 15.06.2016

перейти: https://code.google.com/p/hadoop-gpl-packing/downloads/list

загрузите банку и 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/

будьте утомлены приведенными выше командами, чтобы не переопределять файлы, которые вы не хотите. поэтому сначала сделайте резервную копию целевой папки, прежде чем запускать это.

person Tomer Ben David    schedule 07.06.2015

Значит, твоего hadoop-lzo-***.jar нет в твоем HADOOP_CLASSPATH

Затем вы можете скопировать свою банку в папку hadoop/lib или добавить путь к себе hadoop/bin/hadoop-env.sh, вы должны сделать это на ВСЕХ ваших узлах.

надеюсь решит ;-)

person Brugere    schedule 07.08.2013