TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 模板代码

    • 各类组件
    • 通用模板
  • 国产化&其他系统

    • Centos系列
    • Kylin系列
    • OpenEuler系列
    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 定制开发

    • 组件版本定制
    • 样式风格定制
  • 蓝图愿景
  • 技术支持
  • 合作共建
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 模板代码

    • 各类组件
    • 通用模板
  • 国产化&其他系统

    • Centos系列
    • Kylin系列
    • OpenEuler系列
    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 定制开发

    • 组件版本定制
    • 样式风格定制
  • 蓝图愿景
  • 技术支持
  • 合作共建
GitHub (opens new window)
  • Ambari

  • Ambari-Metrics

  • Ambari-Infra

    • Ambari-Infra 源码编译指南
      • 1、常规编译
        • 1.1 前提条件
        • 1.1.1 JDK 1.8 安装
        • 1.1.2 Maven 3.8.4 安装
        • 1.2 Ambari-Infra 代码调整
        • 1.2.1 修改 Makefile 文件
        • 1.2.2 修改 ambari-infra-assembly/pom.xml
        • 1.3 Ambari-Infra 代码编译
        • 查找编译生成的 RPM 包
      • 2、使用 ambari-env
  • 组件编译-Ambari
  • Ambari-Infra
JaneTTR
2023-04-06
目录

Ambari-Infra 源码编译指南

# 一、Ambari-Infra 源码编译

在本文中,我们将详细介绍如何在 CentOS 7.9 上编译 Ambari-Infra 源码。包括环境准备、所需工具的安装、以及代码调整等重要步骤。

# 1、常规编译

在开始编译之前,请确保您的系统满足以下条件,并正确安装必要的工具和依赖。

# 1.1 前提条件

为了顺利完成 Ambari-Infra 的编译,您的系统需要满足以下前提条件:

  • 操作系统:CentOS 7.9
  • JDK:需要安装 JDK 1.8 版本
  • Maven:Maven 3.0 或更高版本
  • Git:用于版本控制
  • Python:Python 2.6 或更高版本

笔记

确保您已经安装了 Git 和 Python。它们将帮助您更好地管理源码和进行构建过程中的脚本执行。

# 1.1.1 JDK 1.8 安装

为了编译 Ambari-Infra,我们需要安装 JDK 1.8。以下是安装 JDK 1.8 的步骤。

#!/bin/bash

set +ex

###########JDK_INIT start

echo "############## SETUP JDK_INIT start #############"

# JDK path and URL
JDK_FILE_PATH="/opt/modules/jdk-8u202-linux-x64.tar.gz"
JDK_FILE_HOME_PATH="/opt/modules/jdk1.8.0_202"
JDK_DOWNLOAD_URL="https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz"

# 解压缩函数
extract_tar_gz() {
    local file_path=$1
    local dest_dir=$2

    echo "Extracting file $file_path to directory $dest_dir..."
    tar -zxvf "$file_path" -C "$dest_dir"

    if [ $? -eq 0 ]; then
        echo "File extracted successfully: $dest_dir"
    else
        echo "File extraction failed"
        exit 1
    fi
}

# 配置 JAVA_HOME 函数
configure_java_home() {
    if grep -q "^export JAVA_HOME=" /etc/profile; then
        sudo sed -i "s#^export JAVA_HOME=.*#export JAVA_HOME=${JDK_FILE_HOME_PATH}#" /etc/profile
    else
        echo "export JAVA_HOME=${JDK_FILE_HOME_PATH}" | sudo tee -a /etc/profile
    fi

    if ! grep -q "^export PATH=.*\$JAVA_HOME/bin" /etc/profile; then
        echo "export PATH=\$PATH:\$JAVA_HOME/bin" | sudo tee -a /etc/profile
    fi

    source /etc/profile

    echo "JAVA_HOME is set to: $JAVA_HOME"
}

# 检查并下载 JDK 文件
check_and_download_jdk() {
    if [ -f "$JDK_FILE_PATH" ]; then
        echo "JDK file exists: $JDK_FILE_PATH"
    else
        echo "openjdk file does not exist, downloading..."
        mkdir -p "$(dirname "$JDK_FILE_PATH")"
        curl -o "$JDK_FILE_PATH" "$JDK_DOWNLOAD_URL"

        if [ $? -eq 0 ]; then
            echo "openjdk download success: $JDK_FILE_PATH"
            extract_tar_gz "$JDK_FILE_PATH" "/opt/modules"
        else
            echo "openjdk download failed!!"
            exit 1
        fi
    fi
}

# 添加并配置 update-alternatives
configure_update_alternatives() {
    sudo update-alternatives --install /usr/bin/java java ${JDK_FILE_HOME_PATH}/bin/java 2
    sudo update-alternatives --install /usr/bin/javac javac ${JDK_FILE_HOME_PATH}/bin/javac 2

    sudo update-alternatives --set java ${JDK_FILE_HOME_PATH}/bin/java
    sudo update-alternatives --set javac ${JDK_FILE_HOME_PATH}/bin/javac

    java -version
}

main() {
    check_and_download_jdk

    if [ -d "$JDK_FILE_HOME_PATH" ]; then
        echo "JDK home exists: $JDK_FILE_HOME_PATH"
    else
        extract_tar_gz "$JDK_FILE_PATH" "/opt/modules"
    fi

    configure_java_home
    configure_update_alternatives
}

main

###########JDK_INIT end

echo "############## SETUP JDK_INIT end #############"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94

# 1.1.2 Maven 3.8.4 安装

Maven 是构建和管理项目依赖的关键工具。以下是安装 Maven 3.8.4 的步骤。

#!/bin/bash

set +ex

###########MAVEN_INIT start
echo "############## SETUP MAVEN_INIT start #############"
# Maven path and URL
MAVEN_VERSION="3.8.4"
MAVEN_FILE_PATH="/opt/modules/apache-maven-${MAVEN_VERSION}-bin.tar.gz"
MAVEN_HOME_PATH="/opt/modules/apache-maven-${MAVEN_VERSION}"
MAVEN_DOWNLOAD_URL="https://repo.huaweicloud.com/apache/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz"

# 解压缩函数
extract_tar_gz() {
  local file_path=$1
  local dest_dir=$2

  echo "Extracting file $file_path to directory $dest_dir..."
  tar -zxvf "$file_path" -C "$dest_dir"

  if [ $? -eq 0 ]; then
    echo "File extracted successfully: $dest_dir"
  else
    echo "File extraction failed"
    exit 1
  fi
}

# 配置 MAVEN_HOME 函数
configure_maven_home() {
  if grep -q "^export MAVEN_HOME=" /etc/profile; then
    sudo sed -i "s#^export MAVEN_HOME=.*#export MAVEN_HOME=${MAVEN_HOME_PATH}#" /etc/profile
  else
    echo "export MAVEN_HOME=${MAVEN_HOME_PATH}" | sudo tee -a /etc/profile
  fi

  if ! grep -q "^export PATH=.*\$MAVEN_HOME/bin" /etc/profile; then
    echo "export PATH=\$PATH:\$MAVEN_HOME/bin" | sudo tee -a /etc/profile
  fi

  source /etc/profile

  echo "MAVEN_HOME is set to: $MAVEN_HOME"
}

# 检查并下载 Maven 文件
check_and_download_maven() {
  if [ -f "$MAVEN_FILE_PATH" ]; then
    echo "Maven file exists: $MAVEN_FILE_PATH"
  else
    echo "Maven file does not exist, downloading..."
    mkdir -p "$(dirname "$MAVEN_FILE_PATH")"
    curl -o "$MAVEN_FILE_PATH" "$MAVEN_DOWNLOAD_URL"

    if [ $? -eq 0 ]; then
      echo "Maven download success: $MAVEN_FILE_PATH"
      extract_tar_gz "$MAVEN_FILE_PATH" "/opt/modules"
    else
      echo "Maven download failed!!"
      exit 1
    fi
  fi
}

main() {
  check_and_download_maven

  if [ -d "$MAVEN_HOME_PATH" ]; then
    echo "Maven home exists: $MAVEN_HOME_PATH"
  else
    extract_tar_gz "$MAVEN_FILE_PATH" "/opt/modules"
  fi

  configure_maven_home
}

main

###########MAVEN_INIT end
echo "############## SETUP MAVEN_INIT end #############"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80

# 1.2 Ambari-Infra 代码调整

在编译前,我们需要对 Ambari-Infra 的代码进行一些调整,以确保编译过程顺利。

# 1.2.1 修改 Makefile 文件

$(MAVEN_BINARY) clean package -Dbuild-rpm -DskipTests -Djdk.version=$(INFRA_JAVA_VERSION) -Drat.skip=true -X
1

# 1.2.2 修改 ambari-infra-assembly/pom.xml

<solr.tar>https://mirrors.huaweicloud.com/apache/lucene/solr/${solr.version}/solr-${solr.version}.tgz</solr.tar>
1

# 1.3 Ambari-Infra 代码编译

代码调整完成后,执行以下命令开始编译:

# 执行 rpm 打包
make rpm
1
2

# 查找编译生成的 RPM 包

# 查找打好的压缩包
find /opt/modules/ambari-infra/ -name '*.rpm'
1
2

image-20240713200421073

# 2、使用 ambari-env

如果您希望使用现有的环境配置脚本,可以按照以下步骤操作:

# 克隆 ambari-env 仓库
git clone https://gitee.com/janettr/ambari-env.git

# 执行构建脚本
bash /scripts/build/ambari-infra/build.sh
1
2
3
4
5

在这个步骤中,您无需手动配置环境,脚本会自动执行必要的设置。

image-20240713200006917

通过以上步骤,您将能够顺利完成 Ambari-Infra 的编译和部署。

image-20240713200050726

#Ambari#Infra#编译
Ambari-Metrics 环境包高速下载

← Ambari-Metrics 环境包高速下载

最近更新
01
Pandoc 缺失导致 SparkR 构建失败
06-08
02
Cyrus SASL/GSASL 缺失解决
06-07
03
Hadoop_3.3.4 编译实战 1.0.0+
06-06
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式