hadoop2.2.0编译
今天尝试了一下搭建hadoop、hbase、hive的环境,但是因为装的是64位的ubuntu13.10系统,所以,注定要多走许多的弯路。
且记录下来今天走的弯路。
首先我下载了hadoop官网上的tar.gz格式,解压后按http://my.oschina.net/mynote/blog/93735该博主的说的方式安装hadoop伪分布式,(至于为什么伪分布式呢,因为集群和单机还是有区别的,使用伪分布式比较符合集群的运行方式,以后测试的东西也是在集群上,所以还是使用伪分布式比较好)。后来发现namenode或者datanode老是启动不了,查看日志,报错为什么库的原因。忘记记录下来了,反正就是64位和32位库的区别,导致启动出错。
然后看到有的人说是有hadoop有问题,需要一个补丁HADOOP-10110.patch,结果我去官网下了下来,按里面的方式添加了相关的设置,还是出现了这样的问题。
最后只好自己编译了。
编译之前,需要准备一些库的安装:
1、sudo apt-get install build-essential
2、sudo apt-get install g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
3、然后安装findbugs
wget http://jaist.dl.sourceforge.net/project/findbugs/findbugs/2.0.3/findbugs-2.0.3.tar.gz
下载完了,就解压,设置环境变量:
![](/qrcode.jpg)
export FINDBUGS_HOME=/opt/findbugs-2.0.3
export PATH=$FINDBUGS_HOME/bin:$PATH
使用ant编译安装。如果不编译安装则编译的时候会报
hadoop-common-project/hadoop-common/${env.FINDBUGS_HOME}/src/xsl/default.xsl doesn’t exist. -> [Help 1]
4、安装protobuf2.5.0
ubuntu默认是2.4.1,hadoop2.2.0要求的是2.5.0的,其他版本不行
wget https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz
(此处下载https://code.google.com/p/protobuf/downloads/list)
解压执行 sudo ./configure --prefix=/usr 要加后面那个前缀参数,表示安装到/usr目录下,作为系统软件。通常我们的用户软件是安装到/usr/local下的,这个安装到/usr下,省去一些麻烦,应该也可以安装到/usr/local下的。
sudo make clean //此命令为了避免出现cannot install `libprotoc.la' to a directory not ending in /opt/protoc/lib的错误
sudo make && make install
测试protoc --version 如果是libprotoc 2.5.0就对了
不行的话,可以先卸载2.4.1 sudo apt-get remove --auto-remove protobuf-compiler, 然后再重新安装一遍。
5、安装maven
sudo apt-get install maven就ok
6、下载hadoop-2.2.0.src.tar.gz源码,解压,进入目录下,使用如下命令编译:
先给该源码打个补丁,
Patch: https://issues.apache.org/jira/browse/HADOOP-10110
wget https://issues.apache.org/jira/secure/attachment/12614482/HADOOP-10110.patch; patch -p0 < HADOOP-10110.patchmvn clean package -Pdist,native -DskipTests -Dtar
编译完成后,编译成功的是在/opt/hadoop-2.2.0-src/hadoop-dist/target目录下,可以使用了。
附上我自己编译好了的东西吧。