近期对Hadoop很感兴趣,下面是在CentOS系统上进行编译的分享
系统情况如下:
1. CentOS 6.2 64位
2. hadoop-2.2.0
3. jdk 1.6.0_31
4. maven 3.1.0
5. protobuf-2.5.0
6. cmake 2.8.12.1
系统中已经安装好了JDK,并正确进行了设置,这里不说明JDK的安装与设置,请自行查阅
第一步:安装maven
1.1 下载文件 apache-maven-3.1.0-alpha-1-bin.tar.gz
1.2 执行命令 tar zvxf apache-maven-3.1.0-alpha-1-bin.tar.gz
1.3 配置环境变量,编辑etc/profile文件,添加如下代码
MAVEN_HOME=/home/youUser/apache-maven-3.1.0-alpha-1 PATH=$MAVEN_HOME/bin:$PATH export MAVEN_HOME export PATH
1.4 保存文件,并运行如下命令使环境变量生效
source /etc/profile
1.5 通过如下命令可以查看是否安装正常
mvn -version
第二步:安装protobuf
2.1 下载文件 protobuf-2.5.0.tar.gz
2.2 执行命令 tar zvxf protobuf-2.5.0.tar.gz
2.3 进入 protobuf-2.5.0 目录,执行下面的命令
./configure make make check make install
2.4 通过如下命令可以查看是否安装正常
protoc --version
第三步:安装cmake
3.1 下载安装文件 cmake-2.8.12.1.tar.gz
3.2 执行如下命令 tar zvxf cmake-2.8.12.1.tar.gz
3.3 进人 cmake-2.8.12.1 目录,执行如下命令
./bootstrap make make install
3.4 通过如下命令检查安装是否正常
cmake -version
第四步:安装必要的包
4.1 执行如下命令,安装 autotool
yum install autoconf automake libtool
4.2 执行如下命令,安装 openssl-devel
yum install openssl-devel
第五步:正式编译hadoop
5.1 下载源码包 hadoop-2.2.0-src.tar.gz
5.2 执行解包命令 tar zvxf hadoop-2.2.0-src.tar.gz
5.3 由于源码有问题,需要进行修改,修改 hadoop-common-project/hadoop-auth/pom.xml 文件,添加如下内容
</dependency> <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-util</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty</artifactId> <scope>test</scope> </dependency>
5.4 进入 hadoop-2.2.0-src 目录,执行如下命令
mvn clean package -Pdist,native -DskipTests -Dtar
5.5 如果能看到类型下面的输出就证明编程成功,这个过程中要保证网络通畅,需要下载很多包。
5.6 进入 hadoop-dist/target 目录,看一下编译成果吧
注明:
有人说可能还需要安装 ncurses-devel , 可以通过 yum install ncurses-devel 进行安装