查看hadoop2.4.1版本是32bit or 64bit?
[hadoop@master-hadoop hadoop-2.4.1]$ls lib/native
libhadoop.a libhadoop.so.1.0.0 libhdfs.so
libhadooppipes.a libhadooputils.a libhdfs.so.0.0.0
使用file命令查看libhadoop.so.1.0.0:是32-bit
[hadoop@master-hadoop hadoop-2.4.1]$ filelib/native/libhadoop.so.1.0.0
lib/native/libhadoop.so.1.0.0lib/native/libhadoop.so.1.0.0: ELF 32-bitLSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, notstripped
必须下载重新编译需要的软件包
findbugs-3.0.0.tar.gz (忽略)
protobuf-2.5.0.tar.gz
apache-maven-3.0.5-bin.tar.gz
hadoop-2.4.1-src.tar.gz
查看这个文件BUILDING.txt
[root@master-hadoop hadoop-2.4.1-src]# more BUILDING.txt
官方编译说明:
*JDK 1.6+
* Maven 3.0 or later
* Findbugs 1.3.9 (if running findbugs)
* ProtocolBuffer 2.5.0
* CMake 2.6 or newer (if compiling nativecode)
* Internet connection for first build (tofetch all Maven and Hadoop dependencies)
a. 安装依赖软件(必须能上网哦!)
[root@master-hadoop hadoop]# yum install gcc*
[root@master-hadoop hadoop]# yum install ncurses-devel
[root@master-hadoop hadoop]# yum install openssl-devel
[root@master-hadoop hadoop]# yum install cmake
b. 解压缩(注意压缩文件后缀,protobuf-2.5.0.安装包是—gzip文件,解压时需加–z)
[hadoop@master-hadoopsoftware]$tar –zxvf protobuf-2.5.0.tar.gz
c. 安装 通常建议安装到/usr/local目录下,执行configure时,指定--prefix=/usr/local/protoc即可
解压之后的文件protobuf-2.5.0到opt/modules目录下
[root@master-hadoop hadoop]# mvopt/software/protobuf-2.5.0 opt/modules/
进入protobuf-2.5.0目录
[root@master-hadoop hadoop]# cdopt/modules/protobuf-2.5.0
进入configure配置文件
[root@master-hadoopprotobuf-2.5.0]# ./configure--prefix=/usr/local/protoc
安装protobuf-2.5.0
[root@master-hadoopprotobuf-2.5.0]# make
[root@master-hadoopprotobuf-2.5.0]# make check
[root@master-hadoopprotobuf-2.5.0]# make install
添加环境变量 vim /etc/profile,添加
[root@master-hadoop/]# vi /etc/profile
export PATH=$PATH:/usr/local/protobuf/bin/
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
[root@master-hadoop/]# source /etc/profile --保存
同时在~/.profile中添加上面两行代码,否则会出现登录用户找不到protoc命令。
[root@master-hadoop /]# protoc –-version 查看是否安装成功
libprotoc 2.5.0
(2)解压hadoop-2.4.1-src.tar.gz文件
进入hadoop-2.4.1-src.tar.gz源文件
[hadoop@master-hadoop ~]$ cd opt/software/hadoop-2.4.1-src
下载hadoop-2.4.1-src.tar.gz源文件 上传之后解压
[root@master-hadoop software]# tar zxvf hadoop-2.4.1-src.tar.gz
在源文件pom.xml中修改如下:
(3)编译hadoop
[root@master-hadoop hadoop-2.4.1-src]# mvn package-Pdist,native -DskipTests -Dtar
..............
[INFO] BUILDSUCCESS
[INFO]------------------------------------------------------------------------
[INFO] Total time:1:40:59.407s
[INFO] Finished at:Mon Feb 20 11:42:58 CST 2017
[INFO] FinalMemory: 87M/239M
[INFO]------------------------------------------------------------------------
..编译需要较长时间大概1个半小时左右...........
返回到根目录
[root@master-hadoophadoop]# cd ../../..
将编译好的64位覆盖32位的文件夹
[root@master-hadoop /]# mv
/home/hadoop/opt/software/hadoop-2.4.1-src/hadoop-dist/target/hadoop-2.4.1/lib/native
/home/hadoop/usr/local/hadoop/hadoop-2.4.1/lib
重启hadoop
[root@master-hadooplib]# reboot
再次查看的版本是64位
[hadoop@master-hadoop hadoop-2.4.1]$ filelib/native/libhadoop.so.1.0.0
lib/native/libhadoop.so.1.0.0: ELF 64-bitLSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped