2015-09-21 21:46:14

If you try to download and install the binary packages of Apache Hadoop 2.7.1 on a Raspberry PI 2 B, you will get some ugly warnings about the native libs being all wrong, something along:

Unable to load native-hadoop library for your platform... using builtin-java classes
where applicable...
warning: You have loaded library
/usr/local/hadoop/lib/native/libhadoop.so.1.0.0 which might have
disabled stack guard. The VM will try to fix the stack guard now. It's
highly recommended that you fix the library with 'execstack -c
<libfile>', or link it with '-z noexecstack'.

Those warnings also mess up the start-all.sh script for starting a cluster of several machines.

From searching on the web it looks like the cleanes option to remove the warnings is to compile hadoop natively on your Raspberry. A good source of information is

http://www.instructables.com/id/Native-Hadoop-260-Build-on-Pi/?ALLSTEPS

Which is a tutorial for compiling Hadoop 2.6.0, but it is still valid for 2.7.1 it seems.

When compiling the current version, I got out-of-memory errors, so I disabled javadoc generation. Afterwards, it worked:

mvn package -Pdist,native -DskipTests -Dtar -Dmaven.javadoc.skip=true