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:
>>>sudo aptitude install zlib1g zlib1g-dbg zlib1g-dev zlibc libssl-dev lbzip2 libzip-dev libzip2 pbzip2
>>>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
>>>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
>>>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