365bet中国

Ambari3.0安装部署教程(手把手教学)

Ambari3.0安装部署教程(手把手教学)

背景

Apache Ambari 项目旨在通过开发用于预置、管理和监控 Apache Hadoop 集群的软件来简化 Hadoop 管理。Ambari 提供直观、易于使用的 Hadoop 管理 Web UI,由其 RESTful API 提供支持。 本文手把手教你实现如何安装Ambari3.0版本,Ambari 安装bigtop 3.0集群版本

Ambari官方文档

下载Apache Ambari 安装环境:https://ambari.apache.org/docs/3.0.0/quick-start/downloadApache Ambari 的裸机和 KVM 环境设置:https://ambari.apache.org/docs/3.0.0/quick-start/environment-setup/bare-metal-kvm-setupAmbari 安装指南:https://ambari.apache.org/docs/3.0.0/quick-start/installation-guide

虚拟机服务器环境(centos8 系统):

iphostnamecpu/内存定义192.168.0.101server-test12C/16GAmbari 服务端Ambari agent 1mysql、nginx192.168.0.102server-test22C/8GAmbari agent 2192.168.0.103server-test32C/8GAmbari agent 3

注意: 如果使用的系统版本是centos 7版本,则在安装组件时会有问题。如果使用centos7系统,可以安装ambari2.7版本:

Ambari2.7.4安装部署Hadoop集群教程(手把手教学)

服务器基础配置

设置 hostname

在每台服务进行执行命令,或者修改/etc/hostname 配置文件,进行定义 hostname

sudo hostnamectl set-hostname server-test1

设置固定 ip 地址

网卡配置文件路径:/etc/sysconfig/network-scripts/ifcfg-ens33(ens33 替换为你的网卡名):

TYPE="Ethernet"

PROXY_METHOD="none"

BROWSER_ONLY="no"

BOOTPROTO="none" # 改为 none或者static

DEFROUTE="yes"

IPV4_FAILURE_FATAL="no"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

IPV6_DEFROUTE="yes"

IPV6_FAILURE_FATAL="no"

IPV6_ADDR_GEN_MODE="stable-privacy"

NAME="ens33"

UUID="a780589b-b487-451a-8951-7a983e47882a"

DEVICE="ens33"

ONBOOT="yes" # 开机自启

IPADDR=192.168.0.101 # 固定 IP

NETMASK=255.255.255.0 # 子网掩码

PREFIX=24

GATEWAY=192.168.0.1 # 网关

DNS1=8.8.8.8 # 首选 DNS

DNS2=8.8.4.4 # 备用 DNS

在所有服务器上配置 /etc/hosts

vi /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

# 添加以下映射关系

192.168.0.101 server-test1

192.168.0.102 server-test2

192.168.0.103 server-test3

设置国内yum源仓库镜像加速

# 备份原有配置

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# 获取阿里云加速源

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

# 重新加载缓存

yum clean all && yum makecache

# 更新

yum update

常用工具安装

sudo yum install -y vim telnet wget

每台服务进行安装 sshd 远程控制

安装 ssh 服务

# 安装openssh

sudo yum install openssh-server -y

sudo systemctl start sshd

sudo systemctl enable sshd

sudo systemctl status sshd

# 防火墙开放允许SSH流量通过

sudo firewall-cmd --add-service=ssh --permanent

sudo firewall-cmd --reload

修改配置文件/etc/ssh/sshd_config

ListenAddress 0.0.0.0 # 确保非 127.0.0.1

Port 22 # 默认端口

# PermitRootLogin 设置为yes

PermitRootLogin yes

# 开启使用用户名密码验证连接

PasswordAuthentication yes

重启 ssh

sudo systemctl restart sshd

配置安全设置

在所有服务上禁用 SELinux

# Temporarily disable SELinux

setenforce 0

# Permanently disable SELinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

禁用防火墙

# Stop firewall

systemctl stop firewalld

# Disable firewall on boot

systemctl disable firewalld

配置 SSH 访问

用于配置从 Ambari 服务器到所有代理服务器的无密码 SSH 访问

server-test1 服务进行 生成 ssh 密钥

if [ ! -f ~/.ssh/id_rsa ]; then

ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa

fi

将 SSH 密钥从服务器分发到代理

# 密钥分发

ssh-copy-id -o StrictHostKeyChecking=no root@server-test2

ssh-copy-id -o StrictHostKeyChecking=no root@server-test3

# 验证

ssh root@server-test2 echo "Connection successful"

安装所需的软件包

基础软件包安装

yum update -y

dnf install -y sudo openssh-server openssh-clients which iproute net-tools less vim-enhanced

dnf install -y wget curl tar unzip git

python 环境安装

yum install python3 -y

# 防止python命令报错

sudo ln -s /usr/bin/python3 /usr/bin/python

安装开发工具

# 安装开发工具

sudo dnf groupinstall -y "Development Tools"

sudo dnf install -y dnf-utils

注意: 官方文档中有 Rocky-Devel.repo仓库文件,但是由于我这边设置的是阿里云的加速源仓库,所以所以没有 Rocky-Devel.repo,需要进行使用 CentOS PowerTools + EPEL 开发库 方案来解决

# 开启PowerTools

sudo dnf config-manager --set-enabled PowerTools

# 安装启用 EPEL

sudo dnf install epel-release -y

或者修改 CentOS-Base.repo[PowerTools] 下参数 enabled=1

配置网络时间协议

yum install -y chrony

systemctl start chronyd

systemctl enable chronyd

chronyc sources

检查网络连接

ping -c 2 server-test2

ping -c 2 server-test3

所需环境服务安装

所有服务器安装 Java 环境

# 按照jdk1.8环境(已有jdk版本跳过此步骤)

yum install -y java-1.8.0-openjdk-devel

# jdk17(我是进行单独进行安装)

yum install -y java-17-openjdk-devel

jdk17 环境 压缩包 安装方式

下载路径:https://bell-sw.com/pages/downloads/#jdk-17-lts

下载安装包后,进行解压到指定目录

本次演示:解压到/usr/lib/jvm/bellsoft-java17.x86_64

修改配置文件 /etc/profile

# java

export JAVA_8_HOME=/usr/local/java8/jdk1.8.0_421

export JAVA_17_HOME=/usr/lib/jvm/bellsoft-java17.x86_64

export JAVA_HOME=$JAVA_8_HOME

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

Docker 环境安装(用于安装 MySQL 和 Nginx)

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

# 安装docker

sudo yum -y install docker-ce

详细 docker 安装可参考:todo

安装 MySQL 服务(Docker 安装)

新增配置文件

# 1. 创建数据存储目录

mkdir -p /data/docker/mysql/conf

# 创建配置文件my.cnf

vi /data/docker/mysql/conf/my.cnf

# 3. 设置权限

chmod 777 -R /data/docker/mysql

# 单独设置my.cnf文件权限(644)否则mysql为了安全起见会忽略该配置文件

chmod -R 644 /data/docker/mysql/conf

my.cnf内容(8.0 版本)

[mysqld]

lower_case_table_names = 1

user = mysql

server_id = 1

port = 3306

enforce_gtid_consistency = ON

gtid_mode = ON

binlog_checksum = none

authentication_policy = mysql_native_password

skip-name-resolve = ON

open_files_limit = 65535

table_open_cache = 2000

sql_mode = ''

log_bin_trust_function_creators = TRUE

#################innodb########################

#innodb_data_file_path = ibdata1:512M;ibdata2:512M:autoextend

innodb_buffer_pool_size = 4G

innodb_flush_log_at_trx_commit = 2

innodb_io_capacity = 600

innodb_lock_wait_timeout = 120

innodb_log_buffer_size = 8M

innodb_log_file_size = 200M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 85

innodb_read_io_threads = 8

innodb_write_io_threads = 8

innodb_thread_concurrency = 32

innodb_file_per_table

innodb_rollback_on_timeout

###################session###########################

join_buffer_size = 8M

key_buffer_size = 256M

bulk_insert_buffer_size = 8M

max_heap_table_size = 96M

tmp_table_size = 96M

read_buffer_size = 8M

sort_buffer_size = 2M

max_allowed_packet = 64M

max_connections=1000

read_rnd_buffer_size = 32M

############log set###################

#log-error = /usr/local/mysql/logs/mysqld.err

#log-bin = /usr/local/mysql/logs/binlog

#log_bin_index = /usr/local/mysql/logs/binlog.index

max_binlog_size = 500M

slow_query_log = 1

#slow_query_log_file = /usr/local/mysql/logs/slow.log

long_query_time = 10

log_queries_not_using_indexes = ON

log_throttle_queries_not_using_indexes = 10

log_slow_admin_statements = ON

log_output = FILE,TABLE

master_info_file = /usr/local/mysql/logs/master.info

[client]

default-character-set=utf8mb4 # 设置mysql客户端默认字符集

创建网络

docker network create mysql_network

运行 MySQL 服务容器

docker run -d \

--name mysql-server \

-e TZ=Asia/Shanghai \

-e MYSQL_USER=root \

-e MYSQL_ROOT_PASSWORD=root \

-e MYSQL_LOWER_CASE_TABLE_NAMES=1 \

-p 3306:3306 \

-v /data/docker/mysql/data:/var/lib/mysql \

-v /data/docker/mysql/conf/my.cnf:etc/my.cnf \

-v /data/docker/mysql/logs:/logs \

--restart always \

--log-driver json-file \

--log-opt max-size=5g \

--network mysql_network \

mysql/mysql-server:8.0.28

账号密码为:root/root设置远程登录

docekr exec -it mysql-server bash

# 登录

mysql -uroot -p

# 设置远程登录

CREATE USER 'root'@'%' IDENTIFIED BY '[你的密码]';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

安装 Nginx 服务(Docker 安装)

用于设置内网公开Ambari存储库, 后续会说明怎么使用的

创建文件目录

mkdir -p /data/docker/nginx/

# 设置权限

chmod 777 -R /data/docker/nginx/

先运行一次容器(为了拷贝配置文件):

docker run -p 8000:80 --name nginx-temp -d nginx:1.23

将容器内的配置文件拷贝到指定目录:

docker container cp nginx-temp:/etc/nginx /data/docker/nginx/conf

docker container cp nginx-temp:/usr/share/nginx/html /data/docker/nginx/

终止并删除容器:

docker rm -f nginx-temp

正式运行容器

docker run -d \

--name nginx \

--restart always \

-p 80:80 \

-p 81:81 \

-p 443:443 \

-v /data/docker/nginx/html:/usr/share/nginx/html \

-v /data/docker/nginx/logs:/var/log/nginx \

-v /data/docker/nginx/conf:/etc/nginx \

-v /var/www/html/ambari-repo:/var/www/html/ambari-repo \

-e TZ=Asia/Shanghai \

-e NGINX_PORT=80 \

nginx:1.23

下载Apache Ambari

参考官方文档:https://ambari.apache.org/docs/3.0.0/quick-start/download

安装 createrepo 包

sudo yum install createrepo

创建存储库目录

sudo mkdir -p /var/www/html/ambari-repo

sudo chmod -R 755 /var/www/html/ambari-repo

下载 RPM 包

由于演示系统使用的是 centos8 版本,所以我选择安装的是Rocky Linux 8,经过验证是可以正常安装的

注意: 如果使用的系统版本是centos 7版本,则在安装组件时会有问题。如果使用centos7系统请参考:https://ambari.apache.org/docs/2.7.9/introduction

cd /var/www/html/ambari-repo

wget -r -np -nH --cut-dirs=4 --reject 'index.html*' https://www.apache-ambari.com/dist/ambari/3.0.0/rocky8/

wget -r -np -nH --cut-dirs=4 --reject 'index.html*' https://www.apache-ambari.com/dist/bigtop/3.3.0/rocky8/

设置 nginx 配置

vim /data/docker/nginx/conf/conf.d/ambari-repo.conf

server {

listen 81;

server_name 192.168.0.101;

location /ambari-repo {

alias /var/www/html/ambari-repo;

autoindex on;

}

}

重启 nginx:docker restart nginx, 访问http://192.168.0.101:81/ambari-repo可以看到对应的目录

在每台服务器上都添加 yum 的存储库

sudo tee /etc/yum.repos.d/ambari.repo << EOF

[ambari]

name=Ambari Repository

baseurl=http://192.168.0.101:81/ambari-repo

gpgcheck=0

enabled=1

EOF

Ambari 安装

参考官方文档:https://ambari.apache.org/docs/3.0.0/quick-start/installation-guide

端口映射关系

服务端口目的MySQL3306Nginx80,443,81Ambari 服务器8080, 8440, 8441Web UI, Agent communicationCore Hadoop8020, 9000, 50070, 50075HDFS NameNode, DataNode HTTPYARN8032, 8088, 19888ResourceManager, UI, JobHistoryHive9083, 10000Metastore, HiveServer2

防火墙开放对应端口

# mysql

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent

# nginx

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent

sudo firewall-cmd --zone=public --add-port=443/tcp --permanent

sudo firewall-cmd --zone=public --add-port=81/tcp --permanent

# Ambari Server端口

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

sudo firewall-cmd --zone=public --add-port=8440/tcp --permanent

sudo firewall-cmd --zone=public --add-port=8441/tcp --permanent

# Core Hadoop 端口

sudo firewall-cmd --zone=public --add-port=8020/tcp --permanent

sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent

sudo firewall-cmd --zone=public --add-port=50070/tcp --permanent

sudo firewall-cmd --zone=public --add-port=50075/tcp --permanent

# YARN服务端口

sudo firewall-cmd --zone=public --add-port=8032/tcp --permanent

sudo firewall-cmd --zone=public --add-port=8088/tcp --permanent

sudo firewall-cmd --zone=public --add-port=19888/tcp --permanent

# Hive服务端口

sudo firewall-cmd --zone=public --add-port=9083/tcp --permanent

sudo firewall-cmd --zone=public --add-port=10000/tcp --permanent

# 防火墙重新加载

sudo firewall-cmd --reload

安装依赖项和 Ambari 代理

yum install -y python3-distro

yum install -y ambari-agent

安装 Ambari 服务器

yum install -y python3-psycopg2

yum install -y ambari-server

MySQL 设置

配置 MySQL 用户和数据库

-- Create Ambari user and grant privileges

CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari';

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

CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';

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

-- Create required databases

CREATE DATABASE ambari CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE DATABASE hive;

CREATE DATABASE ranger;

CREATE DATABASE rangerkms;

-- Create service users

CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';

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

CREATE USER 'ranger'@'%' IDENTIFIED BY 'ranger';

GRANT ALL PRIVILEGES ON *.* TO 'ranger'@'%' WITH GRANT OPTION;

CREATE USER 'rangerkms'@'%' IDENTIFIED BY 'rangerkms';

GRANT ALL PRIVILEGES ON rangerkms.* TO 'rangerkms'@'%';

FLUSH PRIVILEGES;

导入 SQL 脚本

# sql脚本地址位于server-test1服务上的

/var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

配置 Amvari 服务器

# Download MySQL JDBC driver

wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar \

-O /usr/share/java/mysql-connector-java.jar

# Setup JDBC driver

ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar

# Configure MySQL 8 compatibility

echo "server.jdbc.url=jdbc:mysql://localhost:3306/ambari?useSSL=true&verifyServerCertificate=false&enabledTLSProtocols=TLSv1.2" \

>> /etc/ambari-server/conf/ambari.properties

# Configure Ambari server

ambari-server setup -s \

-j /usr/lib/jvm/java-1.8.0-openjdk \

--ambari-java-home /usr/lib/jvm/bellsoft-java17.x86_64 \

--database=mysql \

--databasehost=localhost \

--databaseport=3306 \

--databasename=ambari \

--databaseusername=ambari \

--databasepassword=ambari

Ambari Sever 服务 启动

# 启动

ambari-server start

# 停止

ambari-server stop

# 重启

ambari-server restart

Ambari Agent 服务 启动

# 配置参数,其中hostname=server-test1 设置为安装了Ambari Sever 服务器主机名称

sed -i "s/hostname=.*/hostname=server-test1/" /etc/ambari-agent/conf/ambari-agent.ini

# agent 启动

ambari-agent start

# agent 停止

ambari-agent start

# agent 重启

ambari-agent restart

访问 Ambari Web 界面

账号密码:admin/admin

http://192.168.0.101:8080/

查看日志

Ambari 服务器:/var/log/ambari-server/ambari-server.out

Ambari 代理:/var/log/ambari-agent/ambari-agent.log

# 查看命令

tail -200f /var/log/ambari-server/ambari-server.out

tail -200f /var/log/ambari-agent/ambari-agent.log

Ambari web服务配置

1. 新增一个Cluster

2. 选择版本和仓库地址,由于之前配置了本地仓库地址,则设置为本地仓库地址:http://192.168.0.101:81/ambari-repo

3. 设置安装选择,配置在哪些 agent 主机上进行安装,并配置 server 主机的密钥,位于 /etc/.ssh/id_rsa

4. 等待验证主机

5. 选择需要安装的服务

本次演示设置:

其他服务密码:admin Ranger 管理员密码: amb_ranger_admin123

6. 分配节点

7. 自定义服务配置(有些服务需要配置密码、数据库连接配置、目录等)

8. 等待安装服务

9. 安装完成后界面

相关推荐

cpu风扇朝哪个方向
36566666是哪个公司的电话

cpu风扇朝哪个方向

📅 2025-08-11 👁️ 5917
在 Windows 中打开 Dat 文件 ▷➡️
36566666是哪个公司的电话

在 Windows 中打开 Dat 文件 ▷➡️

📅 2025-07-28 👁️ 8830
微信额度查询:教你如何查看可以额度...
正规英国365网址

微信额度查询:教你如何查看可以额度...

📅 2025-07-04 👁️ 9769
读完爆哭1小时,不敢再看第2次
36566666是哪个公司的电话

读完爆哭1小时,不敢再看第2次

📅 2025-08-06 👁️ 9396