编译Hadoop3.2.0-3.3.41.0.0+
# 📦 背景介绍
Bigtop 是一个专注于 构建、打包、测试大数据生态组件 的 Apache 顶级项目,常与 Ambari 配合用于企业级集群部署。
本文将基于 Ambari 2.8.0 + Bigtop 3.2.0
环境,介绍如何编译 Hadoop 3.3.4
,生成可用于集群部署的 RPM
安装包。适用于定制化 Hadoop 部署场景
# 1️⃣ 编译前准备
# 1.1 环境要求
环境说明
建议使用 CentOS 7 系统,避免兼容性问题。构建工具和依赖项如下表所示。
组件 | 版本 | 说明 |
---|---|---|
JDK | JDK 1.8 | Bigtop 3.2.0 默认依赖 |
Maven | ≥ 3.3.9 | 构建部分子模块 |
Gradle | ≥ 5.6 | Bigtop 编译核心 |
Python | 2.7 | Python2 仍为默认 |
g++ | - | 编译 C/C++ 组件 |
rpm-build | - | 构建 RPM 包 |
setuptools | - | 通过 pip 安装 |
# 1.2 安装依赖工具链
我们已为以下构建工具准备好独立文档及一键安装脚本:
# 2️⃣ 编译 Hadoop
# 2.1 构建命令
在准备好 bigtop 仓库源码后,进入根目录并执行以下命令:
gradle hadoop-rpm -PparentDir=/usr/bigtop -Dbuildwithdeps=true -PpkgSuffix -d
1
参数说明:
hadoop-rpm
:编译目标为 Hadoop-PparentDir
:输出目录根路径-Dbuildwithdeps
:是否编译依赖模块-PpkgSuffix
:可选后缀,用于区分测试版本
执行该命令后,将开始下载依赖、配置环境并编译 Hadoop 的 RPM 包。
# 2.2 编译产物
构建成功后,将生成如下路径下的 RPM 包:
文件示例(以 hadoop 为前缀):
# 2.3 获取源码
建议从 Gitee 克隆本地已适配版本:
仓库地址:https://gitee.com/tt-bigdata/bigtop-hadoop (opens new window) 版本标签:v3.2.0_3.3.4 (opens new window)
# 3️⃣ 使用 ambari-env
脚本构建(推荐)
我们封装了一套适配 Ambari 和 Bigtop 的自动构建脚本,执行以下命令即可一键编译:
bash /scripts/build/bigtop/build.sh
1
脚本特性:
- 自动安装依赖
- 自动执行 Gradle 构建
- 自动收集 RPM 包
- 可复用性强,适配多组件