+13 votes
in Big Data Hadoop & Spark by (250 points)

I installed Hadoop on the server running CentOs. As I run start-dfs.shor stop-dfs.sh I got the following error :

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

I am using Hadoop 2.2.0 Version. Ihadoop-env.sh I have also added these two environment variables.  

export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=/usr/local/hadoop/lib/"

export HADOOP_COMMON_LIB_NATIVE_DIR="/usr/local/hadoop/lib/native/"

Any solution what I have to do? 

2 Answers

+12 votes
by (13.2k points)
edited by

This error arises as the native library of Hadoop is build in for 32 bit system, your system maybe 64 bit.

export HADOOP_COMMON_LIB_NATIVE_DIR="/usr/local/hadoop/lib/native/" 

So, it is giving a warning but not much of Hadoop functionalities will be affected.You can ignore the warning or if you want to remove it then :

Either replace the 32 bit library by downloading Hadoop source code and recompiling it.

Or in hadoop-env.sh where you have added environment variables,

add the word NATIVE like this :

  export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_HOME/lib/native"

+1 vote
by (31.4k points)
edited by

There can be two reasons for this warning:

1. You have installed the wrong Java JDK8 package.

Please ensure that you have downloaded the 64-bit JDK8 and remove your current 32-bit JDK8.

2. It's a warning due to the Hadoop libraries being compiled for 32bits. You are probably running on a 64bit OS.

It's safe to ignore this warning.

For more information regarding the same, refer the following video:

Welcome to Intellipaat Community. Get your technical queries answered by top developers !