共计 1615 个字符,预计需要花费 5 分钟才能阅读完成。
最近因为要改 Hadoop 的一些代码,需要重新编译,测试环境是用 cdh4.6.0 做 debug, 简单记录下 hadoop 的编译方法:
1)编译环境需要下面几个包
yum install lzo-devel zlib-devel gcc autoconf automake libtool ncurses-devel openssl-devel cmake
2)需要 mvn/ant 环境
3)在 src 目录下运行
mvn package -DskipTests -Pdist,native -Dtar -e -X
4)protobuf 的版本要求,cdh4.6.0 需要 *2.4* 版本
如果 protobuf 版本不匹配会报如下错误,并导致 hadoop-common 无法编译完成:
[exec] Required version of ‘protoc’ is 2.4.0a, reported libprotoc 2.5.0
….
Caused by:
/home/caiguangguang/hadoop-2.0.0-cdh4.6.0/src/hadoop-common-project/hadoop-common/target/antrun/build-main.xml:33:
exec returned: 1
通过这个 build-main.xml 文件,可以看到是和 protobuf 有关
错误由下面脚本导致(也可以看出 protobuf 是 2.4.x 版本即可):
hadoop-common-project/hadoop-common/target/compile-proto.sh
#!/bin/bash
PROTOC=”$HADOOP_PROTOC_CDH4_PATH”
if [“${PROTOC}X” = “X” ]; then
PROTOC=”protoc”
fi
PROTOC_VERSION=`${PROTOC} –version`
if [[“${PROTOC_VERSION}” != *2.4* ]]; then
echo “Required version of ‘protoc’ is 2.4.0a, reported ${PROTOC_VERSION}”
exit 1
fi
….
编译安装 protobuf 的方法:
./configure –prefix=/home/protobuf && make && make install(安装完成后注意加载 lib 目录)
protoc –version #PATH 增加这个 /home/protobuf/bin 目录
CentOS 安装和配置 Hadoop2.2.0 http://www.linuxidc.com/Linux/2014-01/94685.htm
Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm
更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13