Ubuntu操作系统(Deb包管理)
Deb包管理方式的操作系统。
配置http repo、操作系统基础配置、机器名配置、配置免密、JDK配置、安装Ambari Server、通过Ambari安装其他组件等操作说明。
以下以Ubuntu22为例说明* Unbuntu22(amd64)、三台服务器(hdp1、hdp2、hdp3)
- (1): 按照操作系统支持列表, 准备操作系统
- (2): 数据库支持列表和库列表, 准备数据库
- (3): JDK推荐版本,准备JDK
1.配置安装安装源
(1)下载介质
- 下载地址
- x86_64(amd64)

- aarch64(arm64)

各操作系统使用的包对应关系 根据操作系统支持列表找到最后一列对应 Ambari Repo 版本。
| 对应 Ambari Repo 版本 | CPU架构 | 安装包 | 其他说明 |
|---|---|---|---|
| all | amd64 | ambari-3.0.0.0-201-ubuntu22-amd64.tar.gz HDP-3.4.2.0-001-ubuntu22-amd64.tar.gz HDP-UTILS-1.1.0.25-ubuntu22-amd64.tar.gz | |
| all | arm64(arm64) | ambari-3.0.0.0-201-ubuntu22-arm64.tar.gz HDP-3.4.2.0-001-ubuntu22-arm64.tar.gz HDP-UTILS-1.1.0.25-ubuntu22-arm64.tar.gz |
(2) 安装apache2服务(或其他)
以hdp1作为ambari的deb源存储位置(示例,可以按需调整)
# 更新包索引
sudo apt update
#安装apache2
sudo apt install apache2 -y
# 查看服务状态
sudo systemctl status apache2
# 启动服务
sudo systemctl start apache2
# 设置开机自启
sudo systemctl enable apache2
# 查看版本
apache2 -v
(3) 配置http站点
上传安装包并解压 将ubuntu对应的压缩包,上传至hdp1服务器后解压
# 先在/var/www/html目录下创建ambari、hdp、hdp-utils文件夹
mkdir /var/www/html/ambari
mkdir /var/www/html/hdp
mkdir /var/www/html/hdp-utils
tar -zxf /opt/ambari-3.0.0.0-201-ubuntu22-amd64.tar.gz.tar.gz -C /var/www/html/ambari # 这里的-C是指定解压目录
tar -zxf /opt/HDP-3.4.2.0-001-ubuntu22-amd64.tar.gz -C /var/www/html/hdp
tar -zxf /opt/HDP-UTILS-1.1.0.25-ubuntu22-amd64.tar.gz -C /var/www/html/hdp-utils/
可以采用curl或者浏览验证
# hdp1 可以替换为IP地址
curl http://hdp1/ambari/3.0.0.0-201/
# hdp1 可以替换为IP地址
curl http://hdp1/hdp/3.4.2.0-001/
# hdp1 可以替换为IP地址
curl http://hdp1/hdp-utils/1.1.0.22/
2. 操作系统相关配置
(1) 关闭防火墙
没有安装则忽略
# UFW 方式
sudo ufw status verbose
# 或查看 UFW 服务状态
sudo systemctl status ufw
# 禁用 UFW(立即生效)
sudo ufw disable
# 或停止 UFW 服务
sudo systemctl stop ufw
# 禁用 UFW 开机启动
sudo systemctl disable ufw
(2) 时间服务器配置
启用ntp或者其他时间同步服务(自行配置)。一般情况下,公有云或者私有云会有统一配置。 如果时间不同步,将造成很多莫名奇妙的问题,强烈建议安装前手工检查下每台服务器的时间是否一致。
3. 配置机器名
#通过/etc/hosts 来配置机器名,集群所有机器都需要修改
vi /etc/hosts
末尾内容如下:
192.168.80.xxx hdp1
192.168.80.xxx hdp2
192.168.80.xxx hdp3
4. 安装JDK
所有节点都需要安装
- 上传包+配置
将已经准备好的jdk上传至服务器,然后解压
tar -zxf jdk-21.tar.gz -C /apps/jdk21
5. 配置免密
安装Hadoop的集群基础是Ambari Server所在机器需要与集群节点配置免密,这是最方便的方法。 以hdp1安装Ambari Server为例说明如下:
(1) 生成公钥
在Ambari Servers所在主机上生成本机公钥。
按需安装
sudo apt update
sudo apt install openssh-client -y
ssh-keygen -t rsa #一直按Enter即可,直到生成公钥,如下所示
[root@hdp1 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:tY8NkOHNOSn3nXDYLs+/wH+s7fMOqZUW54g6+BCp6Zs root@ambariserver1
The key's randomart image is:
+---[RSA 3072]----+
| . |
| . = o o |
| = O o o |
| * + = . |
| S o o = .|
| o . =.= B |
| o ... +oX..|
| . ..... +o=o|
| E. .o.. .*@|
+----[SHA256]-----+
(2)分发公钥
在Ambari Servers所在主机上生成的公钥发送给集群其他所有节点。
# 公钥也要发给自己
ssh-copy-id root@hdp1
ssh-copy-id root@hdp2
ssh-copy-id root@hdp3
# 执行过程如下所示root@hdp1:/# ssh-copy-id root@hdp1
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@hdp1's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@hdp1'"
and check to make sure that only the key(s) you wanted were added.
(3)验证测试
#依次执行
ssh hdp1
ssh hdp2
ssh hdp3
如果不需要输入用户名密码就能登录,则执行成功。
6. 安装Ambari Server
以hdp1作为ambari server的主机(示例,可以按需调整)
(1) 配置apt源
配置ambari源
vi /etc/apt/sources.list.d/ambari.list
#内容参考如下 hdp1根据实际情况调整
#VERSION_NUMBER=3.0.0.0-201
deb [trusted=yes] http://hdp1/ambari/ubuntu22/3.0.0.0-201/ ambari main
apt创建缓存
apt clean all
#如果清除缓存失败可以尝试删除这里
#rm -fr /var/lib/apt/lists/*
#更新索引
apt update
(2) 安装ambari-server
apt install ambari-server -y
中间可能会有设置时区的选择,可以参考如下:
Geographic area: 6
Time zone: 70
命令行片段:
Configuring tzdata
------------------
Please select the geographic area in which you live. Subsequent configuration questions will narrow this down by presenting a list of cities,
representing the time zones in which they are located.
1. Africa 3. Antarctica 5. Arctic 7. Atlantic 9. Indian 11. US 13. Legacy
2. America 4. Australia 6. Asia 8. Europe 10. Pacific 12. Etc
Geographic area: 6
Please select the city or region corresponding to your time zone.
1. Aden 13. Barnaul 25. Dushanbe 37. Jerusalem 49. Macau 61. Pyongyang 73. Taipei 85. Vientiane
2. Almaty 14. Beirut 26. Famagusta 38. Kabul 50. Magadan 62. Qatar 74. Tashkent 86. Vladivostok
3. Amman 15. Bishkek 27. Gaza 39. Kamchatka 51. Makassar 63. Qostanay 75. Tbilisi 87. Yakutsk
4. Anadyr 16. Brunei 28. Harbin 40. Karachi 52. Manila 64. Qyzylorda 76. Tehran 88. Yangon
5. Aqtau 17. Chita 29. Hebron 41. Kashgar 53. Muscat 65. Rangoon 77. Tel_Aviv 89. Yekaterinburg
6. Aqtobe 18. Choibalsan 30. Ho_Chi_Minh 42. Kathmandu 54. Nicosia 66. Riyadh 78. Thimphu 90. Yerevan
7. Ashgabat 19. Chongqing 31. Hong_Kong 43. Khandyga 55. Novokuznetsk 67. Sakhalin 79. Tokyo
8. Atyrau 20. Colombo 32. Hovd 44. Kolkata 56. Novosibirsk 68. Samarkand 80. Tomsk
9. Baghdad 21. Damascus 33. Irkutsk 45. Krasnoyarsk 57. Omsk 69. Seoul 81. Ujung_Pandang
10. Bahrain 22. Dhaka 34. Istanbul 46. Kuala_Lumpur 58. Oral 70. Shanghai 82. Ulaanbaatar
11. Baku 23. Dili 35. Jakarta 47. Kuching 59. Phnom_Penh 71. Singapore 83. Urumqi
12. Bangkok 24. Dubai 36. Jayapura 48. Kuwait 60. Pontianak 72. Srednekolymsk 84. Ust-Nera
Time zone: 70
Current default time zone: 'Asia/Shanghai'
Local time is now: Mon May 11 22:06:08 CST 2026.
Universal Time is now: Mon May 11 14:06:08 UTC 2026.
(3) 放置jdbc驱动到指定目录(按需)
如果使用mysql,需要手工放置mysql驱动jar
# 创建目录
mkdir -p /usr/share/java
# 将mysql对应版本的jdbc驱动放到此目录下
mv /root/mysql-connector-java-***.jar /usr/share/java/
(4) 配置化Ambari Server使用的数据库
各个数据库的初始化脚本在/var/lib/ambari-server/resources/目录下,对应不同的数据库类型选择不同的sql,以Postgresql为例:
可以在ambari主机配置postgresql客户端,或者将Ambari-DDL-Postgres-CREATE.sql复制到有postgresql客户端的脚本,执行如下命令
psql -d ambari -h 192.168.0.90 -p 5432 -U ambari -f Ambari-DDL-Postgres-CREATE.sql
(5) 配置ambari-server
- 方式一: 一个命令配置
以Postgresql为例,数据库主机为:ambari
ambari-server setup -s \
-j /app/jdk-21.0.5_11 \
--ambari-java-home /app/jdk-21.0.5_11 \
--database=postgres \
--databasehost=postgresql-ambari \
--databaseport=5432 \
--databasename=ambari \
--databaseusername=ambari \
--databasepassword=ambari
其中:
-j : JAVA_HOME目录,java安装目录,组件使用
ambari-java-home: 指定 Ambari Server 和 Agent 使用的 Java 主目录。
database:数据库类型
databasehost:数据库主机名
databaseport: 数据库端口
databasename: dbName或者Schema
databaseusername: 用户名
databasepassword: 密码
- 方式二:向导式配置(待修改) 数据库以Mysql为例,执行
ambari-server setup --ambari-java-home /app/jdk-21.0.5_11
以下仅供参考
[root@hdp1 ~]#ambari-server setup --ambari-java-home /app/jdk-21.0.5_11
Using python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
Customize user account for ambari-server daemon [y/n] (n)? y
Enter user account for ambari-server daemon (root):
Adjusting ambari-server permissions and ownership...
Checking firewall status...
Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Custom JDK
==============================================================================
Enter choice (1): 2
WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.
WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.
Path to JAVA_HOME: /app/jdk-21.0.5_11
Validating JDK on Ambari Server...done.
Check JDK version for Ambari Server...
JDK version found: 8
Minimum JDK version is 8 for Ambari. Skipping to setup different JDK for Ambari Server.
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)?n
Completing setup...
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): hdp1
Port (3306):
Database name (ambari):
Username (ambari):
Enter Database Password (bigdata):
Re-enter password:
Configuring ambari database...
Enter full path to custom jdbc driver: /usr/share/java/mysql-connector-java-5.1.44.jar
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)?
Extracting system views...
ambari-admin-3.0.0.0.0.jar
....
Ambari repo file doesn't contain latest json url, skipping repoinfos modification
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
(6) 启动ambari-server
ambari-server start
启动后可通过http://:hdp1:8080进行访问
(7)注册数据库jar(可选)
如果安装Hive、Ranger等需要页面上配置数据库的组件,需要执行以下命令注册jar, 以postgresql为例:
ambari-server setup --jdbc-db=postgres --jdbc-driver=/usr/lib/ambari-server/postgresql-42.3.8.jar
7 安装HDP组件
以hdp1作为ambari server的主机(示例,可以按需调整)
(1) 登录ambari
通过http://:hdp1:8080进行浏览器访问,默认用户名和密码都是admin

(2) 集群安装
第一次登录进去的默认界面如下图所示,点击红框按钮。(如果没有,点击ClusterInformation --> LAUNCH INSTALL WIZARD)

输入集群名称–>NEXT

选择HDP的版本,这里使用的是3.3版本

选择操作系统,本文以ubuntu22为例,所以选择ubuntu22,默认有很多,删掉其他的,只保留一个。
- HDP-3.3: http://hdp1/hdp/3.4.2.0-001/
- HDP-UTILS: http://hdp1/hdp-utils/1.1.0.22/

输入节点主机名列表

如果按照本文做过“配置免密”,可以选择”Provide your SSH Private Key to automatically register hosts“ ,我们强烈推荐使用“配置免密”。 如果选择Choose,则会弹出框,选择ambari server主机的id_rsa,在ambari主机的~/.ssh目录下(需要root用户的)。如果不使用id_rsa文件,可以在文本框里输入id_rsa的文件内容(需要确保最后一行为空行)
如果生产环境不允许配置服务器免密,可以在每台机器上手工安装Ambari Agent,配置参数,启动Agent,然后选择如下图所示的红框。“Perform manual registration on hosts and do not use SSH”,

点击Register,如果弹出Warning(一般是主机名不符合规范),可以忽略。 等待服务器注册。

可能会检查出问题,可以参考常见问题解决。 如果NEXT按钮可用,直接点击开始下一步。(如果有Warning,则可忽略)

选择要安装的组件(按需选择,下图为示例),如果是第一次使用HDP,建议只选择Zookeeper一个组件熟悉安装流程,避免选择太多组件导致问题较多,情绪受挫。

选择每个节点具体安装的组件(测试的话,自动默认就行,生产安装,需要做节点规划)


配置组件参数,这个根据需求配置即可,如果测试,或者不了解各组件的相关配置可以先使用默认。生产需要参考经验调整。
目录配置

用户配置

参数配置

配置完成后点击DEPLOY

执行安装,时间可能比较久。

安装完成,可能会有报错,可以参考常见问题解决。

COMPLETE

完成后,进入Ambari管理界面,就可以看到已经安装的组件。

(3) 注意事项
- 如果是第一次使用HDP,建议只选择Zookeeper一个组件熟悉安装流程,避免选择太多组件导致问题较多,情绪受挫。
- 因为Hadoop相关的组件本身技术有一定门槛,即使是熟手,也会遇到问题,不要气馁,可以联系我们