Install Ambari 3.0 with Docker
Intro
The original source of this tutorial is from Ward Viaene’s GitHub repository, which includes the Ambari 3.0 directory structure and scripts, and is designed to enable the fastest and simplest installation of a Docker‑based 4‑node Ambari cluster. Due to differences in the installation environment, this version is based on a forked (fork) version where some code and environment settings have been modified. Accordingly, all scripts, configuration files, and Docker Compose configurations used in this tutorial are optimized based on the original fork, allowing you to run an Ambari 3.0 cluster and explore the UI yourself within 30 minutes in an actual environment.
This content is focused on the structure of Ambari, the installation flow using Docker, and UI exploration; complex items like HA setup, customized authentication settings, and production‑grade security hardening are excluded. The goal is a modular hands‑on tutorial with the “shortest path to install and run directly.”
From now on, the tutorial will begin, and for convenience.
Environments
OS: WSL2 Linux on Windows 11
Docker: Docker-Desktop for Windows
(NOTE) This tutorial environment is not mandatory; any environment that supports Docker is expected to work.
Installation & Setup
All basic tasks are performed on a Linux distribution under WSL.
Clone Git source and move into working directory
$ git clone git@github.com:call518/ambari-3.0-hadoop-ops-course.git
$ cd ambari-3.0-hadoop-ops-course/ambari3/
Startup Docker containers
$ docker-compose up -d
[+] Running 5/5
✔ Network ambari3_ambari_net Created 0.0s
✔ Container ambari3-bigtop-hostname3–1 Started 0.6s
✔ Container ambari3-bigtop-hostname2–1 Started 0.4s
✔ Container ambari3-bigtop-hostname1–1 Started 0.5s
✔ Container ambari3-bigtop-hostname0–1 Started 0.5s
Ambari installation/configuration
$ ./run.sh
On initial execution, downloading the required YUM repositories consumes significant time. After the downloads complete, the installation/ configuration for Ambari Server/Agents on the four containers proceeds automatically.
Check Docker container host names
Depending on your Docker network environment, IPs may differ.
$ cat conf/hosts
172.28.0.100 bigtop-hostname0.demo.local bigtop-hostname0.demo.local
172.28.0.101 bigtop-hostname1.demo.local bigtop-hostname1.demo.local
172.28.0.102 bigtop-hostname2.demo.local bigtop-hostname2.demo.local
172.28.0.103 bigtop-hostname3.demo.local bigtop-hostname3.demo.local
Ambari Cluster Configuration
If completed without errors, access the Ambari Web UI at http://localhost:8080
(NOTE) Confirm port forwarding for Docker containers.
Web-UI Login
(NOTE) Default ID/PW: admin / admin
Cluster Name
Enter the desired Cluster name.
Select Stack and Enter YUM Repo URL
Select BIGTOP-3.3.0 as the Stack.
Because the Docker container image uses RockyLinux 8, remove all entries except redhat8.
In the input form for redhat8, enter the following URL, noting that among the hostnames listed in the hosts file, the 0th container’s hostname (bigtop-hostname0.demo.local
) functions as the YUM Repo:
http://bigtop-hostname0.demo.local
Register Ambari Agent Hosts and Enter Private Key
Register all four containers as Ambari Agent hosts.
For initial configuration of Ambari Agent, enter the SSH private key for the root user once only.
From the confirmed key value, copy and paste the content starting from:
<Private Key Verification Procedure>
$ docker-compose exec -it bigtop-hostname0 /bin/bash
[root@bigtop-hostname0 /]# cat /root/.ssh/id_rsa
— — -BEGIN RSA PRIVATE KEY — — -
MIIEowIBAAKCAQEA0Et5YcubKlNvpHpYVbN8++mt3jMCJZ6pn3P3lUxnRQkPL1US
mvaaE7TDeMUNl1OwTyyE8UMFB5yvmWS1Br0r0yWb4qFaWvTnKtJqgQ6Nm+zhh3Pm
tI927u4F7nEwFceRyoj/xTdk0UCSKZB6a2ciXaWyWebaJjo/V7mVFP8uX74yBIAJ
Ixx89lCIHbahwSl47WEPtVR5Plr7i5bqJ0hivZCI8b6ibCFm6vD85T30tzYuPAAg
vK5zD+ZIottz94r3N9URBrhEa+QGaCOBQiflX3AbPO+xPOknD4G9ZmjKfJ+frM3h
aRS+Q0X+atj2nryrGcabps5YdHcrBlUPBSamjwIDAQABAoIBAGUFhdxJbHrttoLW
F4uRHrfq0LmokYz/U5MTImvVf2x7BVNWdkyT94xBKmCjaYEQRL1RgTSl5YWYl43U
yvt2ug+Q+PbEfNcKWidpn9/x1/pcu9D/BFBkGDGvXU8UtFaL0QiiwzG6OPpHz9u6
x7TZc1Bp8YMqtHi/3ULFrildzfb+nppIIkV+9iCADBxKmal1qC6rQB7sfS3/xhbT
v+y/RdkemFLfC+dUnajpU4E4kkR1OziEGh3QGzbVnqsmwuh9UqqQc1905ACpXNZZ
BlfS5G6zaG6qdZZqEQ2y0xrY6E81AkgBOJH5HAWwJ6CMJvvSL7MExlskwb1+bb6u
NWl1qfECgYEA7eecPpxJ85VvV94AyZvgpn7vE+p/iDTa1Y5QjDeNoXqry9PWDyDZ
sHBJuLeiwyg+Vn0AwNoU94RMFDgpYTwLJmJDVhupU21AqO/cUX3yZMQJrIeWrSKS
I/V3gxTvvdLiczWIJ3C2xO1CvBFP1p+Uv6Fktr0rNZ4Z+q2IeHtVAykCgYEA4CNP
oZk/k4Xc28ZMAW44Tk8iqxjEPIpd5L8GowEoMo4r9ztHY+R/VagHxoFibqw/tlLU
BbAVFK/Mg8abDdVgEsAB6ImV2iYVkYSR29gDHSA6169jd92dWlyj8TCF+60OADds
Ya3u/QKil1bSvD0ZSAKmz2q4OQIg80FrH90ZCvcCgYAMc4DD7h4Yt4t6R842vwfE
7wPIQQ+nq0yAvNAOZqHs/6SaKF4dsJR0HYxeNI46NJL+p9AwR7mtMqlgrYfM5P2Y
ZrArg4sbKK6nqNYZFcRn7bKr6vTB3vtTEnfMzn21q6HaccTMe6O1Ls29VhKdowB/
/wxsW/408i9d5VMtKxdJ8QKBgQC4kltw55HDGejV0mWkh+82DVSvMKXodMj9JZGB
ieJgP1NVNCuFxxRUpRpCDSnRmWad7XdLd8TkVCBGI7ZrndqPli38H9CW4+W+/zxd
nXRy96d9FaEDhCufzcnzQ9IRfmCZLQrDJUg4cYMSvRyshmPbONPE2kz6JRadOrHM
e3Wz4QKBgEANGQrSUi6+Qqc5/Qm0CcRl5YT2bJbiMDDFW0dEoQtq7B4NwBcSnFkF
trwMfn9LPyPtcdA03PtajsyWRWTE81Ua9H8fksj1cD10o07JE/edjDZx/WYPh1BD
/DeGsBoI0BdW837MeAGBK0O/Yz6QMwCx/vdEZomZddtA+GWsQt1W
— — -END RSA PRIVATE KEY — — -Target Hosts
bigtop-hostname0.demo.local
bigtop-hostname1.demo.local
bigtop-hostname2.demo.local
bigtop-hostname3.demo.local
Ambari Agent node installation/configuration
Select Ambari Services
(NOTE) During initial installation, install in minimal mode; additional services can be added later if needed.
In this tutorial, select the following services: HDFS, YARN, MapReduce2, Zookeeper, Ambari Metrics
(CAUTION) If installing too many services, ensure sufficient memory is available beforehand.
A warning about unselected dependent services may appear, but since it is not essential for this tutorial, click “PROCEED ANYWAY”.
Component Node Assignment
(NOTE) Since the environment is based on Docker containers, no special changes are necessary.
Select Client Installation/Assignment
- Check all Datanodes
- Uncheck Router (not needed)
- Check all Nodemanager
- Keep 1 instance of Ranger Tagsync
- Select all Clients
Set Service Password
(NOTE) For convenience, set to “admin”.
Set Default Directories/Paths
(NOTE) Use default values.
Set Account Configuration
(NOTE) Use default values.
Review Configuration
(NOTE) When entering the “ssl.client.keystore.password”, use “admin” for convenience.
Review Final Installation Details
Proceed with Installation / Complete Installation
HDFS Test
Completed
This concludes the tutorial on deploying a Hadoop environment using Ambari 3.0 in a Docker container environment, including a test of HDFS functionality. You may proceed with additional services separately as needed.
Appendix
[Original YouTube Demonstration Video]
https://youtu.be/Ao95xAGsA20?si=XE1mzjaLSIKR7WNR
If you found this article helpful, you might also enjoy my other posts:
- LLM-Based Ambari Control via MCP — https://call518.medium.com/llm-based-ambari-control-via-mcp-8668a2b5ffb9
- LLM-Based Log Analyzer — https://github.com/call518/LogSentinelAI