Open IT Experts for Enterprise

Zylk empresa de desarrollo de ecommerce

Cargando librerias nativas para hadoop 2, come evitar el WARNING Unable to load native-hadoop library

Gustavo Fernández
Gustavo Fernández

Siguiendo con los posts anteriores (I,
II)
relacionados con el laboratorio de hadoop 2, el
primer post dejé un warning en el arranque de hdfs sin resolver. El
warning está relacionado con el uso de librerías nativas del sistema
operativo para los procesos de compresión y descompresión. Parece que
estos procesos realizados por medio de código java son un 40% más
lentos que si los realizan los comandos nativos del sistema operativo.
Así que hemos montado el laboratiorio para que haga uso de esas
librerías nativas. Para ello hemos tenido que recompilar el producto
para poder generar unas librerías .so y .a que hacen de pasarela
(supongo que por JNI), a las librerías nativas. Hadoop al arrancar las
detecta y las carga en vez de cargar las implementaciones nativas 100% java.

Los pasos han sido los siguientes:

  • Instalar las dependencias necesarias (usamos ubuntu)

>>>sudo aptitude install  zlib1g zlib1g-dbg
zlib1g-dev zlibc libssl-dev lbzip2  libzip-dev libzip2 pbzip2

  • Instalamos las dependencias para poder compilar con make, maven etc.

>>>sudo apt-get install build-essential
>>>sudo apt-get install g++ autoconf
automake libtool cmake zlib1g-dev pkg-config libssl-dev
>>>sudo apt-get install maven

  • descargamos protobuf y lo compilamos

>>>wget https://protobuf.googlecode.com/svn/rc/protobuf-2.5.0.tar.gz
>>>tar xzf protobuf-2.5.0.tar.gz
>>>cd protobuf-2.5.0
>>>./configure
>>>make
>>>sudo make install
>>>sudo ldconfig

  • descargamos el código fuente de hadoop.-2.5.0 y lo compilamos con maven

>>>mvn package -Pdist,native -DskipTests -Dtar

Ahora ya podemos usar las nuevea libs para arquitecturas
iguales, cada nodo de arquitectura distinta… a recompilar.

Y ya no sale el warning en el arranque de hdfs

WARN util.NativeCodeLoader: Unable to load native-hadoop
library for your platform… using builtin-java classes where applicable

Si te ha parecido interesante comparte este post en RRS

Facebook
LinkedIn
Telegram
Email

Leer más sobre temas relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *