网上有关Hadoop编译的博客和教程遍地都是,但是如果小伙伴你不注意编译时候的各个版本的编号,那就会像我这样,东凑西凑,最后仍然一堆错误,全是错,不得不说,这个Hadoop编译真的是一个大坑。
注意:版本一定要和各个博主博客编译成功的版本相对应,不然真的会浪费非常非常多的时间。
这次我编译的版本是hadoop-2.6.5, 编译的目的就是为了更好地使用编译后的压缩
如果你想编译2.7.3或者CDH2.6.0版本的,可以参考这个https://my.oschina.net/u/4005872/blog/3031371
首先你的下载安装一个gcc(开始我用的是4.7,后来改成4.8成功了)
[root@DS-VM-Node239 ~]# curl -Lks http://www.hop5.in/yum/el6/hop5.repo > /etc/yum.repos.d/hop5.repo
[root@DS-VM-Node239 ~]# yum install gcc gcc-g++ -y
[root@DS-VM-Node239 ~]# gcc --version
gcc (GCC) 4.8.2 20131212 (Red Hat 4.8.2-8)
Copyright © 2013 Free Software Foundation, Inc.
[root@DS-VM-Node239 ~]# g++ --version
g++ (GCC) 4.8.2 20131212 (Red Hat 4.8.2-8)
Jdk要1.7(1.8的报错,我找了很久,改到1.7就ok了)
maven 3.6.0 (我的版本有点高,3以上的都可以,settiing的镜像源最好是改成aliyun的,不然贼慢)
bzip2以及各种依赖
yum -y install wget gcc gcc-c++ bzip2 bzip2-devel zlib zlib-devel openssl-devel curl curl-devel
安装cmake
版本为3.11.0
ar -zxvf cmake-3.11.0.tar.gz
安装cmake
进入解压好的cmake-3.11.0目录
[root@hadoop cmake-3.11.0]# ./bootstrap && make && make install
安装protobuf
步骤如下:
①下载protobuf安装包
[root@hadoop ~]# wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
②解压安装包
[root@hadoop ~]# tar -zxvf protobuf-2.5.0.tar.gz
③安装protubuf
[root@hadoop ~]# cd protobuf-2.5.0
[root@hadoop protobuf-2.5.0]# ./configure
[root@hadoop protobuf-2.5.0]# make && make install
④配置环境变量
[root@hadoop bin]# pwd 【安装文件在--profix指定的/protobuf-2.5.0/ 文件夹下】
/protobuf-2.5.0/bin
[root@hadoop bin]# vim /etc/profile
export PATH=/protobuf-2.5.0/bin:$PATH
[root@hadoop bin]# source /etc/profile
[root@hadoop bin]# protoc --version
libprotoc 2.5.0
安装snappy
步骤如下:
①下载上传snappy-1.1.1.tar.gz安装包
自己网上找
②解压安装包
[root@hadoop ~]# tar -zxvf snappy-1.1.1.tar.gz
③安装snappy
[root@hadoop ~]# cd snappy-1.1.1/
[root@hadoop snappy-1.1.1]# ./configure
[root@hadoop snappy-1.1.1]# make && make install
④检查snappy是否安装完成
[root@hadoop snappy-1.1.1]# ll /usr/local/lib/ | grep snappy
-rw-r--r-- 1 root root 329988 Apr 2 12:58 libsnappy.a
-rwxr-xr-x 1 root root 953 Apr 2 12:58 libsnappy.la
lrwxrwxrwx 1 root root 18 Apr 2 12:58 libsnappy.so -> libsnappy.so.1.2.0
lrwxrwxrwx 1 root root 18 Apr 2 12:58 libsnappy.so.1 -> libsnappy.so.1.2.0
-rwxr-xr-x 1 root root 164296 Apr 2 12:58 libsnappy.so.1.2.0
编译Hadoop
步骤如下:
①hadoop 编译前将hadoop本地库加入到环境变量
[root@hadoop snappy-1.1.1]# vim /etc/profile
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
[root@hadoop snappy-1.1.1]# source /etc/profile
②从官网下载hadoop的源码包,解压
[root@hadoop ~]# tar -zxvf hadoop-2.6.5-src.tar.gz
③输入如下命令开始编译,编译过程较长,耐心等待
[root@hadoop ~]# cd hadoop-2.6.5-src/
[root@hadoop hadoop-2.6.5-src]# mvn package -DskipTests -Pdist,native -Dtar -Drequire.snappy -e -X
如果看到BUILD SUCCESS,且没有异常信息,说明hadoop已经编译成功
编译完成后可以看到hadoop的压缩包
编译好的Hadoop位置:/root/hadoop-2.6.5-src/hadoop-dist/target
编译好后记得修改编译后的hadoop路径
成功后