【Ambari Plus】Step9—AmbariServer 初始化

Step9---AmbariServer 初始化

前面已经准备好了本地仓库、JDK、MariaDB 和 JDBC 驱动,现在可以初始化 Ambari Server。这个步骤只在核心节点 hadoop1.test.com 做,工作节点后续会通过 Ambari Web UI 注册和安装 Agent。

新版本安装我建议使用 ambari-plus setup 完成服务初始化。它会把 Ambari Plus 需要的安装项集中在一个入口里处理,后面排查也更容易对齐。

本文示例参数:

项目
Ambari Server 节点 hadoop1.test.com
数据库地址 hadoop1.test.com:3306
Ambari 数据库 ambari
Ambari 用户 ambari
JDBC 驱动 /usr/share/java/mysql-connector-java.jar
Ambari JDK /usr/jdk64/jdk17
Stack JDK /usr/jdk64/jdk1.8
初始化入口 ambari-plus setup

::: tip 主机名这里我建议全程使用 FQDN,例如 hadoop1.test.com。后面如果继续接 Kerberos、LDAP、SPNEGO 或证书,短主机名和 FQDN 混用很容易引出 Principal、回调地址、证书 SAN 不一致的问题。 :::

创建 Ambari 数据库和用户

在核心节点执行。这里登录 MariaDB root 时,密码输入 Step8 里设置的 root。示例里的 Ambari 数据库密码是 ambari,生产环境请换成自己的强密码,并和后面 ambari-plus setup 里输入的密码保持一致。

bash 复制代码
AMBARI_DB_PASSWORD='ambari'

mysql -uroot -p <<EOF
CREATE DATABASE IF NOT EXISTS ambari DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER IF NOT EXISTS 'ambari'@'%' IDENTIFIED BY '${AMBARI_DB_PASSWORD}';
CREATE USER IF NOT EXISTS 'ambari'@'localhost' IDENTIFIED BY '${AMBARI_DB_PASSWORD}';

GRANT ALL PRIVILEGES ON ambari.* TO 'ambari'@'%';
GRANT ALL PRIVILEGES ON ambari.* TO 'ambari'@'localhost';

FLUSH PRIVILEGES;
EOF

检查 Ambari 用户能否连接自己的库:

bash 复制代码
mysql -h hadoop1.test.com -uambari -p -D ambari -e "SELECT DATABASE();"

::: details 如果这次要一起安装 Hive 如果你计划在同一轮安装 Hive,可以提前创建 Hive Metastore 库和用户。只安装 Ambari Server 时,这段可以先不做。

bash 复制代码
HIVE_DB_PASSWORD='hive'

mysql -uroot -p <<EOF
CREATE DATABASE IF NOT EXISTS hive DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER IF NOT EXISTS 'hive'@'%' IDENTIFIED BY '${HIVE_DB_PASSWORD}';
CREATE USER IF NOT EXISTS 'hive'@'localhost' IDENTIFIED BY '${HIVE_DB_PASSWORD}';

GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%';
GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'localhost';

FLUSH PRIVILEGES;
EOF

:::

安装 Ambari Server

核心节点从本地仓库安装。

bash 复制代码
if command -v dnf >/dev/null 2>&1; then
  sudo dnf clean all
  sudo dnf makecache
  sudo dnf -y install ambari-server ambari-agent
else
  sudo yum clean all
  sudo yum makecache
  sudo yum -y install ambari-server ambari-agent
fi
bash 复制代码
sudo apt update
sudo apt install -y ambari-server ambari-agent

安装后确认官方 Ambari DDL 文件存在:

bash 复制代码
ls -l /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
command -v ambari-plus

确认 JDBC 驱动

ambari-plus setup 会使用 Step7 准备好的 MySQL JDBC 驱动。进入交互前先确认这个路径存在,避免安装到一半再回来补文件:

bash 复制代码
ls -lh /usr/share/java/mysql-connector-java.jar
readlink -f /usr/share/java/mysql-connector-java.jar

如果文件不存在,回到 Step7 检查驱动包和软链接。

执行官方 Ambari DDL 初始化

Ambari Server 安装后会提供 MySQL DDL。先判断是否已经初始化过:

bash 复制代码
mysql -uambari -p -D ambari -N -e "SHOW TABLES LIKE 'metainfo';"

如果没有输出,再执行:

bash 复制代码
mysql -uambari -p ambari < /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

再次检查:

bash 复制代码
mysql -uambari -p -D ambari -N -e "SHOW TABLES LIKE 'metainfo';"

能看到 metainfo,说明官方 Ambari DDL 已经导入。

::: warning 官方 Ambari DDL 和 Ambari Plus 增量 DDL 必须导入同一个数据库。本文统一使用 ambari 库,不要额外创建 ambari_plus 库,否则服务启动后会读不到扩展表。 :::

执行 Ambari Plus 增量 DDL

官方 DDL 只会创建 Ambari 原生表。Ambari Plus 还需要自己的租户、权限控制面、登录欢迎语和审计表,所以这里必须继续执行 Ambari Plus 增量 DDL。

完整 SQL 放在黄金会员附录:【必需】ambari plus 数据库初始化文件

将附录中的 SQL 保存为 Ambari-Plus-DDL-MySQL-CREATE.sql 后,在核心节点导入到同一个 ambari 库:

bash 复制代码
mysql -uambari -p ambari < Ambari-Plus-DDL-MySQL-CREATE.sql

导入后验证关键表和基线数据:

bash 复制代码
mysql -uambari -p -D ambari -N -e "SHOW TABLES LIKE 'ambari_plus_tenant';"
mysql -uambari -p -D ambari -e "SELECT tenant_key,status FROM ambari_plus_tenant;"

能看到 ambari_plus_tenant,并且内置 root 租户状态为 ACTIVE,说明增量 DDL 已经导入。

执行 ambari-plus setup

数据库和 DDL 都准备好以后,就可以进入 ambari-plus setup。第一次安装我建议走交互式,把每个选项确认清楚;同一套规范已经跑通后,再把参数整理成静默命令用于批量部署。

1. 启动 setup 向导

在核心节点执行:

bash 复制代码
sudo ambari-plus setup

启动后,终端会进入 setup 向导。后面每一步按提示输入或选择即可;如果是非 TTY 环境,会自动降级成编号输入。批量部署用的静默命令放在第 11 小节,第一次安装先按交互式走完一遍更稳。

2. 选择语言

语言选择建议选 中文 (Chinese),后面的数据库、JDK、Web 目录等提示会更容易核对。

静默模式对应参数:

bash 复制代码
--language zh

如果终端里边框字符显示成方块,先确认系统是 UTF-8 环境:

bash 复制代码
locale | grep LANG
echo "TERM=$TERM"

RHEL 7 / CentOS 7 这类老环境如果显示异常,可以先执行:

bash 复制代码
export LANG=en_US.UTF-8
export TERM=xterm-256color

3. 环境检查

进入正式配置后,第一步是环境检查。这里主要看两件事:

检查项 通过标准
执行权限 使用 rootsudo 执行
Ambari 配置文件 /etc/ambari-server/conf/ambari.properties 存在

如果提示 ambari.properties 不存在,通常是 ambari-server 包还没有安装好,先回到前面的"安装 Ambari Server"小节确认包安装结果。

4. 系统用户

系统用户这一步用来决定 Ambari Server daemon 使用哪个系统账号运行。普通安装建议保持默认,不自定义系统用户。

提示 建议
是否自定义 ambari-server daemon 用户 选择 n

只有在企业环境里已经规划好专门的服务账号时,才需要自定义。否则这里随意改用户,后面更容易遇到日志目录、PID 文件、资源目录权限不一致的问题。

静默模式如果不传 --custom-user,就是默认用户路线。

5. JDK 配置

JDK 配置会让你填写两套路径:

配置项 建议填写
Ambari JDK /usr/jdk64/jdk17
Stack JDK /usr/jdk64/jdk1.8

这两个路径和 Step6 的软链接要完全一致。填完后,如果界面提示路径不存在,不要继续硬往下走,先回到 Step6 检查:

bash 复制代码
ls -ld /usr/jdk64/jdk17 /usr/jdk64/jdk1.8
/usr/jdk64/jdk17/bin/java -version
/usr/jdk64/jdk1.8/bin/java -version

静默模式对应参数:

bash 复制代码
-j /usr/jdk64/jdk17 \
--stack-java-home /usr/jdk64/jdk1.8

6. GPL 许可

GPL 许可主要影响 LZO 这类 GPL 相关能力。离线包里已经准备好相关包,并且你确认当前环境允许使用时,可以选择接受;如果只是先跑 Ambari Server 基础安装,也可以先不启用。

场景 建议
已准备 GPL 相关离线包 选择接受
不确定是否需要 先不接受,后面按组件需要再补

静默模式接受 GPL:

bash 复制代码
--accept-gpl

7. 数据库配置

这里选择高级数据库配置,数据库类型选 MySQL / MariaDB,并填写前面已经创建好的 Ambari 数据库信息。

配置项 本文示例
是否进入高级数据库配置 y
数据库类型 MySQL / MariaDB
数据库地址 hadoop1.test.com
数据库端口 3306
数据库名 ambari
数据库用户 ambari
数据库密码 前面设置的 AMBARI_DB_PASSWORD
JDBC 驱动 /usr/share/java/mysql-connector-java.jar

::: warning 数据库地址如果填主机名,必须确保 Step3 的 hosts 解析已经通过。这里建议直接填写 FQDN,并保证 /etc/hosts 中存在 hadoop1.test.com 到内网 IP 的解析。 :::

数据库这一步不要临时改库名。前面官方 Ambari DDL 和 Ambari Plus 增量 DDL 都导入到了 ambari 库,这里也必须填同一个库。

静默模式对应参数:

bash 复制代码
--advanced-db --database mysql \
--databasehost hadoop1.test.com --databaseport 3306 \
--databasename ambari --databaseusername ambari \
--databasepassword "${AMBARI_DB_PASSWORD}" \
--jdbc-driver /usr/share/java/mysql-connector-java.jar

选择自定义 JDBC 驱动后,填写 Step7 准备好的 jar 路径:

数据库信息填完后,界面会把主机、端口、库名、用户名和 JDBC 驱动汇总出来。密码显示为 ****,这是正常的。

8. 主密钥与 JCE Policy

主密钥用于加密保存敏感配置。演示环境为了快速跑通,可以先不启用;生产环境建议启用,并把主密钥交给受控的凭据管理流程保存。

JCE Policy 用于 Java 加密能力扩展。如果你的 JDK 和安全策略已经满足组件要求,可以先不单独配置;需要安装策略包时,再填写实际路径。

配置项 演示环境 生产建议
Master Key 可先跳过 建议启用
JCE Policy 可先跳过 按安全规范配置

静默模式跳过这两项:

bash 复制代码
--no-master-key --no-jce-policy

静默模式启用时,可以改成:

bash 复制代码
--master-key "${AMBARI_MASTER_KEY}" \
--jce-policy /opt/jce8_policy.zip

9. Web 目录和服务端口

Ambari Plus 会额外写入 Web 前端目录和服务端口配置。默认值建议先保持不变:

配置项 建议值
Web 目录 /usr/lib/ambari-plus/web
Server 端口 8080

填写前可以先确认 Web 目录存在:

bash 复制代码
ls -ld /usr/lib/ambari-plus/web

如果这里改了端口,后面的防火墙和访问地址也要一起改。本文继续使用默认 8080

静默模式对应参数:

bash 复制代码
--web-dir /usr/lib/ambari-plus/web \
--server-port 8080

10. 确认并应用配置

所有选项填写完后,界面会进入确认面板。这里不要急着回车,先把数据库地址、库名、JDK 路径、Web 目录和端口再核对一遍。

核对项 正确值
数据库 hadoop1.test.com:3306/ambari
数据库用户 ambari
Ambari JDK /usr/jdk64/jdk17
Stack JDK /usr/jdk64/jdk1.8
Web 目录 /usr/lib/ambari-plus/web
Server 端口 8080

确认页里能看到完整配置时,再选择开始安装。

执行完成后,重点看 JDBC driver was successfully initializedserver.jdbc.urlserver.jdbc.database_namewebapp.dir。它们分别说明 JDBC 驱动已经注册,数据库连接配置已经写入,Ambari Server 的 Web 目录已经切到 Plus 前端资源。

然后回到命令行检查 ambari.properties

bash 复制代码
grep -E '^(ambari-server.user|java.home|stack.java.home|server.os_family|server.os_type|server\.jdbc|webapp.dir|client.api.port)=' /etc/ambari-server/conf/ambari.properties

如果端口仍然使用默认 8080client.api.port 可能不会单独写入,这是正常的;重点是 server.jdbc.urlserver.jdbc.database_nameambari-server.userwebapp.dir=/usr/lib/ambari-plus/web 都能查到。

11. 静默模式批量部署

交互式流程跑通后,可以把同样的配置固化成静默命令。下面这份命令对应本文示例环境,适合复制后按自己的主机名和密码变量调整:

bash 复制代码
export AMBARI_DB_PASSWORD='ambari'

sudo ambari-plus setup -s --language zh --accept-gpl \
  --advanced-db --database mysql \
  --databasehost hadoop1.test.com --databaseport 3306 \
  --databasename ambari --databaseusername ambari \
  --databasepassword "${AMBARI_DB_PASSWORD}" \
  --jdbc-driver /usr/share/java/mysql-connector-java.jar \
  -j /usr/jdk64/jdk17 \
  --stack-java-home /usr/jdk64/jdk1.8 \
  --no-master-key --no-jce-policy \
  --web-dir /usr/lib/ambari-plus/web \
  --server-port 8080

静默模式不会逐项停下来确认,缺少必填参数时会一次性列出缺失项并退出。第一次整理命令时,我建议先在测试环境跑一遍,再拿到生产环境使用。

启动 Ambari Server 和本机 Agent

bash 复制代码
sudo ambari-plus restart
sudo ambari-plus status

sudo ambari-agent restart
sudo ambari-agent status

ambari-plus restart 会继续调用 Ambari Server 的启动逻辑。看到 Server started listening on 8080,并且 ambari-plus status 返回 Ambari Server running,说明服务端已经加载新配置。

本机 Agent、Web 端口和数据库基线也一起确认。这里能看到 Agent 处于运行状态,8080 返回 200 OKambari_plus_tenant 里内置租户为 ACTIVE

放通 8080

bash 复制代码
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
bash 复制代码
sudo ufw allow 8080/tcp
sudo ufw reload

云主机同样要检查安全组。

访问 Web UI

浏览器访问:

text 复制代码
http://hadoop1.test.com:8080

页面能够正常打开时,可以看到 Ambari Plus 的登录入口。正式环境里可以换成自己的域名、VIP 或内网 FQDN。

当前 Ambari Plus 包默认管理员账号为:

用户名 密码
admin Admin@2026

登录后建议第一时间修改默认密码。到这里,安装前准备和 Ambari Server 初始化就告一段落,下一步进入 Web UI 初始化集群,开始添加 hadoop2.test.comhadoop3.test.com 并安装服务。

相关推荐
wuxinzhe76cmd1 小时前
JVM 垃圾回收基础:从 STW 到分代收集(附 G1/ZGC 导读)
后端
MrSYJ1 小时前
TCP协议理解
后端·tcp/ip
boolean的主人1 小时前
超实用!5 个 MySQL 索引优化实战场景(附 10 万测试数据)
后端
BBmmo1 小时前
JDBC基础篇
后端
用户64278006937881 小时前
elpis-core 第一阶段学习心得与收获
后端
kfaino1 小时前
码农的AI翻身·前传 一个大模型从出生到上岗的全过程
后端·aigc
IT_陈寒2 小时前
Vue的这个响应式陷阱让我熬到凌晨三点
前端·人工智能·后端
葫芦和十三2 小时前
图解 MongoDB 17|大集合与工作集:数据超过内存怎么办
后端·mongodb·面试
kfaino10 小时前
码农的AI翻身(三)你好,我叫 Embedding
后端·ai编程