Hadoop下载页面提供两种下载文件包,一个是已经编译好的(32位)Hadoop压缩包,另一个是Hadoop-src源代码压缩包。一般我们直接下载Hadoop压缩包直接使用即可。但是在Ubuntu 64位上成功运行Hadoop或执行Hadoop Shell命令,都会出现以下提醒:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
这是因为官网提供的Hadoop压缩包是32位,而我们使用Linux系统是64位,这就导致系统本地库不一致的提醒。当然这个提醒,并不会影响Hadoop的正常使用。要解决这个方法,只需要下载Hadoop官网提供Hadoop-src源代码压缩包在本地64位系统上重新编译即可。
- 安装JDK
sudo apt-get install default-jdk -y
- 安装openssh-server
sudo apt-get install openssh-server -y
- 安装maven
sudo apt-get install maven -y
- 安装依赖库
sudo apt-get install g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
- 安装protoc
sudo apt-get install protobuf-compiler
查看protoc版本
protoc -version
- 编译hadoop-src源代码
这里我从官网下载的hadoop-src源代码压缩包版本是2.7.3,文件名:hadoop-2.7.3-src.tar.gz
其他版本同样可以用以下方法进行编译。tar -zxf ~/Downloads/hadoop-2.7.3-src.tar.gz -C ~/Downloads cd hadoop-2.7.3-src mvn package -Pdist,native -DskipTests -Dtar
第一次编译需要下载依赖包,等待编译即可.
如果编译错误,出现错误:Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.7.3:protoc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecutionException: protoc version is 'libprotoc 2.6.1', expected version is '2.5.0' -> [Help 1]
说明你安装protoc版本错误,需要的版本是2.5.0版本,从谷歌代码库中下载2.5.0的版本 。
下载解压后,进入文件夹,执行如下命令重新安装protocsudo ./configure sudo make sudo make check sudo make install protoc --version