注意事项
本文基于 Ubuntu 22.04 LTS 适配,部分包名和配置与 RedHat/Rocky/CentOS 有差异,请勿直接复用其它系统命令 。如遇疑难欢迎在
VX 或 QQ 群与作者交流。
附录:完整内容和源代码下载请参照

1. 安装 MySQL Connector/J 🔗
Ambari 需要 MySQL Connector/J 来访问 MariaDB 数据库,以下是安装步骤:
1.1 下载 MySQL Connector/J
bash
wget -P /opt/modules https://mirrors.aliyun.com/mysql/Connector-J/mysql-connector-java-5.1.48.tar.gz
1.2 解压并安装
bash
tar -xzf /opt/modules/mysql-connector-java-5.1.48.tar.gz -C /opt/modules/
mv /opt/modules/mysql-connector-java-5.1.48/mysql-connector-java-5.1.48-bin.jar /usr/share/java/mysql-connector-java.jar
1.3 验证安装
bash
ls -l /usr/share/java/mysql-connector-java.jar
如果 mysql-connector-java.jar
存在,则表示安装成功。
2. 配置 Ambari 数据库 🗄️
Ambari 需要一个 MySQL/MariaDB 数据库来存储元数据,必须先 手动创建数据库和用户。
2.1 登录 MariaDB
bash
mysql -uroot -p
然后执行以下 SQL 命令创建数据库和用户:
sql
CREATE DATABASE ambari CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON ambari.* TO 'ambari'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
说明:
ambari
是数据库名称,存储 Ambari 的数据。ambari
是数据库用户,密码ambari
。GRANT ALL PRIVILEGES
允许 Ambari 远程访问数据库。
3. 安装 Ambari Server 🏗️
3.1 通过 apt 安装
bash
apt-get install -y ambari-server
3.2 配置 JDBC 连接
bash
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
3.3 运行安装向导
这里是和ambari 2.8.0 完全不一样的地方,因为ambari 3.0.0 需要至少两套
JDK
环境
bash
# 该步骤是为了告诉系统,我们使用 jdk17 作为ambari 3的 java 环境。 jdk8 作为 stacks 的环境
ambari-server setup --java-home /usr/jdk64/jdk17 --stack-java-home /usr/jdk64/jdk1.8

安装向导的 关键步骤:
-
是否自定义 Ambari 用户? → 选择
n
-
是否启用 GPL 许可? → 选择
y
-
选择数据库类型 → 选择
3
(MySQL/MariaDB)
4.输入数据库连接信息
Hostname: 192.168.3.1
Port: 3306
Database name: ambari
Username: ambari
Password: ambari
- 是否使用远程数据库? → 选择
y
下面是具体步骤拆解,方便对照
3.3.1 是否自定义 Ambari 用户
→ 选择
n
bash
spawn ambari-server setup
Using python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
Customize user account for ambari-server daemon [y/n] (n)? n
3.3.2 是否启用 GPL 许可
→ 选择
y
bash
Checking GPL software agreement...
GPL License for LZO: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? y
Completing setup...
3.3.4 选择数据库类型
→ 选择
3
(MySQL/MariaDB)Hostname: 192.168.3.1
Port: 3306
Database name: ambari
Username: ambari
Password: ambari
bash
Configuring database...
Enter advanced database configuration [y/n] (n)? y
Configuring database...
==============================================================================
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL / MariaDB
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere
[7] - BDB
==============================================================================
Enter choice (1): 3
Hostname (localhost): 192.168.3.1
Port (3306): 3306
Database name (ambari): ambari
Username (ambari): ambari
Enter Database Password (bigdata):
Re-enter password:
Configuring ambari database...
3.3.5 其他配置
bash
Should ambari use existing default jdbc /usr/share/java/mysql-connector-java.jar [y/n] (y)? y
Configuring remote database connection properties...
WARNING: Before starting Ambari Server, you must run the following DDL directly from the database shell to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
Proceed with configuring remote database connection properties [y/n] (y)? y
Extracting system views...
.
Ambari repo file doesn't contain latest json url, skipping repoinfos modification
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
4. 初始化 Ambari 数据库 🔄
Ambari 服务器初始化时,需要执行数据库结构 SQL 语句。
4.1 执行数据库初始化
bash
mysql -u ambari -p'ambari' ambari < /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
说明:
Ambari-DDL-MySQL-CREATE.sql
是 Ambari 官方提供的数据库结构脚本,必须执行 否则 Ambari 无法正常启动。
5. 启动 Ambari Server 🚀
5.1 启动 Ambari Server
bash
ambari-server start
检查 Ambari 是否启动成功:
bash
ambari-server status
如果状态为 running,说明 Ambari Server 启动成功。

6. 访问 Ambari Web UI 🌐
在浏览器中打开:
http://192.168.3.1:8080
使用默认账号密码登录:
Username: admin
Password: admin
