编译环境:
OS: Ubuntu 13.10 64-bit
Java: Jdk1.7.0_51
软件版本:
hadoop version: 2.2.0
hbase version:0.96.1
安装前的准备工作
安装依赖包:
sudo apt-get install g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
安装cmake:
apt-get install cmake
安装maven:
网上说不要使用最新的 Maven3.1.1,与Maven3.0.x存在兼容性问题,编译过程会报如下错误:
java.lang.NoClassDefFoundError: org/sonatype/aether/graph/DependencyFilter
我之前装过Apache Maven 3.1.0,没到这个问题,建议安装3.0.5版本,下载地址:
http://mirrors.cnnic.cn/apache/maven/maven-3/
打patch:
不打patch会报如下错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile) on project hadoop-auth: Compilation failure: Compilation failure:
[ERROR] /home/chuan/trunk/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/client/AuthenticatorTestCase.java:[84,13] cannot access org.mortbay.component.AbstractLifeCycle
[ERROR] class file for org.mortbay.component.AbstractLifeCycle not found
地址: https://issues.apache.org/jira/browse/HADOOP-10110
执行命令:
patch -p0 < HADOOP-10110.patch
安装protoc 2.5.0:
$ wget https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz
$ tar -zxvf protobuf-2.5.0.tar.gz
$ cd protobuf-2.5.0
$ ./configure
$ make
$ sudo make install
再次编译hadoop报错:
not found at: protoc
执行命令:protoc --version 出现以下错误:
protoc: error while loading shared libraries: libprotoc.so.8: cannot open shared object file: No such file or directory
解决办法:
执行命令或者加到.bashrc中:export LD_LIBRARY_PATH=/usr/local/lib/
再次执行命令:
$ protoc --version
libprotoc 2.5.0
修复pom文件中maven版本过低问题:
错误信息:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.0:site (default-site) on project hadoop-main: Execution default-site of goal org.apache.maven.plugins:maven-site-plugin:3.0:site failed: A required class was missing while executing org.apache.maven.plugins:maven-site-plugin:3.0:site: org/sonatype/aether/graph/DependencyFilter
解决办法:
http://dougchang333.blogspot.jp/2013/11/hadoop-build-error-javalangnoclassdeffo.html
安装Findbugs:
不安装会报如下错误信息:
hadoop-common-project/hadoop-common/${env.FINDBUGS_HOME}/src/xsl/default.xsl doesn’t exist. -> [Help 1]
软件地址:http://sourceforge.jp/projects/sfnet_findbugs/releases/
使用ant命令编译,后来编译还会报错,去掉了docs就没报了
编译Hadoop
执行命令:mvn clean package -Pdist,native -DskipTests -Dtar
编译hbase
执行命令:
mvn -e -Dmaven.test.skip.exec=true -Dhadoop.profile=2.0 package -Dtar -DskipTests assembly:single -Prelease -Drequire.snappy
hbase需要替换的包:
hadoop-common-2.2.0.jar
hadoop-hdfs-2.2.0.jar
hadoop-auth-2.2.0.jar
参数配置:
http://www.linuxidc.com/Linux/2013-11/93077p2.htm
参考:
http://blog.csdn.net/bamuta/article/details/13506893
http://blog.csdn.net/bamuta/article/details/13506843
http://blog.csdn.net/codepeak/article/details/13170601
http://blog.csdn.net/li385805776/article/details/17269497
http://www.kankanews.com/ICkengine/archives/81647.shtml
http://blog.csdn.net/w13770269691/article/details/16883663
http://blog.csdn.net/lalaguozhe/article/details/10580727
http://www.yanjiuyanjiu.com/blog/20140214/
http://f.dataguru.cn/thread-189176-1-1.html
http://blog.changecong.com/2013/10/ubuntu-%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85-hadoop-2-2-0/