hadoop运行报错:
在运行hadoop的时候,出现警告:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable原因:
hadoop官方编译的tar包是32位的,我们的系统是64位的,故运行时报错。
解决方案:
到官方下载hadoop源码自行编译再进行安装。
以2.6为例:
下载源码包hadoop-2.6.0-src.tar.gz
解压,然后查看hadoop-2.6.0-src下面的BUILDING.txt编译文档。
编译环境安装:
JDK和GCC安装:
直接使用yum即可。
maven安装配置。
下载 wget http://www.eng.lsu.edu/mirrors/apache/maven/maven-3/3.2.1/binaries/apache-maven-3.2.1-bin.tar.gz解压 tar -zxvf apache-maven-3.2.1-bin.tar.gz
配置环境变量,编辑/etc/profile或者~/.bashrc文件
export MAVEN_HOME=/usr/local/soft/apache-maven-3.2.1
export PATH=$PATH:$MAVEN_HOME/bin
最后要source /etc/profile
通过mvn --version来检查是否安装正常
findbugs安装配置:
下载:可到官网自行下砸到本地,然后解压到/usr/local/soft目录(目录可自行创建决定)
配置方法和maven相同。
配置到、etc/profile
export FINDBUGS_HOME=/usr/local/soft/xxxxxxx
export PATH=$PATH:$MAVEN_HOME/bin
export PATH=$PATH:$MAVEN_HOME/bin
配置成功查看:findbugs -version
安装protobuf:
Hadoop使用protocol buffer进行通信,需要下载和安装 protobuf-2.5.0.tar.gz。由于 现在 protobuf-2.5.0.tar.gz已经无法在官网 https://code.google.com/p/protobuf/downloads/list中 下载了,故本人已上传该文件。
此安装和上面不同,需要用make指令安装,
首先进入到它的目录,
运行脚本:./configure
然后通过make指令安装:make install 但是这样有一个问题,系统默认没有安装make所以会显示make没有装。
我们需要手动安装它,还需要安装一些系统依赖。
可以使用以下命令一键安装所有依赖:
yum -y install autoconf automake libtool cmake ncurses-devel openssl-devel lzo-devel zlib-devel gcc gcc-c++
根据BUILDING.txt文档,还需要cmake等一些依赖,但是我们安装make的时候已经一键安装完成,故不用在继续安装了。
编译hadoop-2.6.0:
进入到源码目录hadoop-2.6.0-src
运行命令:
mvn package -Pdist,native,docs -DskipTests -Dtar
如果只需要编译本地代码:
mvn package -Pdist,native -DskipTests -Dtar
这样编译会更快些。
这个过程约30分钟,时间要看网速决定,然后坐待编译完成。