在CentOS上编译总是有错,最后发现原来是Maven版本的问题。刚开始使用的是Maven3.1.0,与Maven3.0.x存在兼容性问题,所以老是出现java.lang.NoClassDefFoundError: org/sonatype/aether/graph/DependencyFilter之类的错误。
由于所建CentOS虚拟机安装的软件包比较少,所以需要下载如下软件包并安装后才能编译:
Ant
Maven
ProtocolBuffer
findbugs
CMake
下载以上软件包并放置在/app/soft/hadoop目录下,开始如下安装步骤:
- [root@hadoop1 ~]# cd /app/soft/hadoop
- [root@hadoop1 hadoop]# yum -y install lzo-devel zlib-devel gcc autoconf automake libtool
- [root@hadoop1 hadoop]# tar zxf protobuf-2.5.0.tar.gz
- [root@hadoop1 hadoop]# cd protobuf-2.5.0
- [root@hadoop1 protobuf-2.5.0]# ./configure
- [root@hadoop1 protobuf-2.5.0]# make
- [root@hadoop1 protobuf-2.5.0]# make check
- [root@hadoop1 protobuf-2.5.0]# make install
- [root@hadoop1 protobuf-2.5.0]# cd ..
- [root@hadoop1 hadoop]# tar apache-ant-1.9.2-bin.tar.gz
- [root@hadoop1 hadoop]# mv apache-ant-1.9.2 /app/ant192
- [root@hadoop1 hadoop]# tar apache-maven-3.0.5-bin.tar.gz
- [root@hadoop1 hadoop]# mv apache-maven-3.0.5 /app/maven305
- [root@hadoop1 hadoop]# tar zxf findbugs-2.0.2.tar.gz
- [root@hadoop1 hadoop]# mv findbugs-2.0.2 /app/findbugs202
- [root@hadoop1 hadoop]# tar zxf cmake-2.8.6.tar.gz
- [root@hadoop1 hadoop]# cd cmake-2.8.6
- [root@hadoop1 cmake-2.8.6]# ./bootstrap; make; make install
- [root@hadoop1 cmake-2.8.6]# cd ..
- [root@hadoop1 hadoop]# tar zxf hadoop-2.2.0-src.tar.gz
- [root@hadoop1 hadoop]# mv hadoop-2.2.0-src /app/hadoop220_src
- [root@hadoop1 hadoop]# chown -R hadoop:hadoop /app/hadoop220_src
- [root@hadoop1 hadoop]# vi /etc/profile
- export ANT_HOME=/app/ant192
- export MAVEN_HOME=/app/maven305
- export FINDBUGS_HOME=/app/findbugs202
- export PATH=${ANT_HOME}/bin:${MAVEN_HOME}/bin:${FINDBUGS_HOME}/bin:$PATH
- [root@hadoop1 hadoop]# source /etc/profile
- [root@hadoop1 ~]# su - hadoop
- [hadoop@hadoop1 ~]$ cd /app/hadoop220_src
- [hadoop@hadoop1 hadoop220_src]$ mvn clean package -DskipTests -Pdist,native,docs -Dtar
复制代码
编译成功后开始查看安装包:
可以使用自己的安装包了,配置到虚拟机,然后格式化,上传文件,终于和可恶的native提示说拜拜了。
|