前言

本篇文章其内容主要阐述Ambari 是什么,已经它的主要结构是什么,为我们后面的搭建使用做好理论准备。其次说明一下版本的选择、环境的介绍、集群节点的规划,最后做一些安装前的准备工作。

一 简单了解 ambari

1.1 什么是 ambari

Apache Ambari项目旨在通过开发用于提供、管理和监视Apache Hadoop集群的软件,简化Hadoop管理。Ambari提供了基于RESTful api的直观、易用的Hadoop管理web UI。

  1. 提供一个Hadoop集群

Ambari提供了一个分步向导,用于跨任意数量的主机安装Hadoop服务。
Ambari为集群处理Hadoop服务的配置。

  1. 管理Hadoop集群

Ambari在整个集群中为启动、停止和重新配置Hadoop服务提供中央管理。

  1. 监视Hadoop集群

Ambari提供了一个仪表板,用于监视Hadoop集群的运行状况和状态。
Ambari利用Ambari度量系统进行度量收集。
Ambari利用Ambari警报框架进行系统警报,并在需要注意时通知您(例如,一个节点宕机、剩余磁盘空间不 足等)。
通过Ambari REST api,可以轻松地将Hadoop的供应、管理和监控功能集成到自己的应用程序中。

Ambari 自身也是一个分布式架构的软件,主要由两部分组成:Ambari Server 和 Ambari Agent。简单来说,用户通过 Ambari Server 通知 Ambari Agent 安装对应的软件;Agent 会定时地发送各个机器每个软件模块的状态给 Ambari Server,最终这些状态信息会呈现在 Ambari 的 GUI,方便用户了解到集群的各种状态,并进行相应的维护。

1.2 什么是HDP

HDP是hortonworks的软件栈,里面包含了hadoop生态系统的所有软件项目,比如HBase,Zookeeper,Hive,Pig等等。

1.3 HDP-UTILS

HDP-UTILS是工具类库。

二 ambari 相关环境说明

2.1 ambari 版本的介绍

目前为止最新的版本是2.7.5 ,当然按照惯例,我们一般都会选择稳定版本或者说次新版本。其实2.7.5确实存在很多明显的bug。所以我选择了2.7.4的这个版本。
最后还是根据自己的需要时选择对应的版本:https://supportmatrix.hortonworks.com/

2.2 机器环境介绍

环境 版本
Linux Centos7 docker
Ambari 2.7.4
HDP 3.1.4
HDP-UTILS 1.1.0.2
MySQL 5.7
OracleJDK8 jdk1.8.0_241
httpd Apache/2.4.6 (CentOS)

2.3 离线安装包下载地址

Ambari在线安装特别慢,所以使用离线安装,建议使用迅雷下载

名称 地址
ambari http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.4.0/ambari-2.7.4.0-centos7.tar.gz
HDP http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.1.4.0/HDP-3.1.4.0-centos7-rpm.tar.gz
HDP-UTILS http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz

JDK 的下载我就不说了,大家的版本都不同自行选择。最好跟我的一直,这样少改动很多地方。

2.4 集群节点规划

这里我要提醒下,我这个是用docker 安装在一台机器上,因此所谓的16G 内存 100G硬盘都是共享的。

节点名称 局域网ip地址 服务 内存 硬盘
master(主节点) 172.33.0.2 Ambari/HDP Ambari Server MariaDB /MySql 16G 100G
slave1(子节点) 172.33.0.3 Compute node 16G 100G
slave2(子节点) 172.33.0.4 Compute node 16G 100G

三 环境准备

我前面有提到 我们需要提前下载离线包(用迅雷),然后我们依据下好的离线包构建自己的本地源,即web服务。
注意:因为网路的原因,即使使用迅雷,也不一定很快。这里我把需要的文件和包都上传到百度云盘了,这样可以加速大家的下载。
链接: https://pan.baidu.com/s/1yxHRz_0lJsSgp9DIDctR5w 密码: fgcv

3.1 下载离线包

地址上面我贴出来了,用迅雷下载即可。
image.png

3.2 centos7 构建 httpd web服务

这个大家可以用自己熟悉的 Tomcat、Jetty、Node、Nginx 都可以,我就简单操作使用了httpd 起一个web服务

3.2.1 安装 配置 httpd

  1. #1.安装服务
  2. yum -y install httpd
  3. #2.启动软件服务
  4. systemctl start httpd
  5. #3.停止软件服务
  6. #systemctl stop httpd
  7. #4.设置开机自启动
  8. systemctl enable httpd
  9. # 查看状态
  10. systemctl status httpd.service

3.2.2 上传文件到指定目录

默认目录是: /var/www/html/ ,在此目录下新建一个目录:

  1. mkdir -p /var/www/html/ambari

然后上传自己的包到/var/www/html/ambari 目录下

  1. #1.进入目录
  2. cd /var/www/html/ambari
  3. #2.解压ambari包
  4. tar -zxvf ambari-2.7.4.0-centos7.tar.gz
  5. #3.解压HDP包
  6. tar -zxvf HDP-3.1.4.0-centos7-rpm.tar.gz
  7. #4.新增一个HDP-UTILS包
  8. mkdir HDP-UTILS
  9. #5.解压HDP-UTILS工具包到HDP-UTILS
  10. tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C HDP-UTILS
  11. #6.删除压缩包(我得硬盘不足了)
  12. rm -rf ambari--2.7.4.0-centos7.tar.gz HDP-2.6.3.0-centos7-rpm.tar.gz HDP-UTILS-1.1.0.22-centos7.tar.gz
  13. #7.查看效果
  14. ls

image.png

3.2.3 验证Web服务

可以访问即可
image.png

3.3 docker run httpd

考虑到很多人机器上没有虚拟机,那么我这边也安利另一个方式启动httpd服务

3.3.1 制作docker-compose.yml 文件

vi docker-compose.yml

  1. version: '3'
  2. services:
  3. httpd:
  4. image: httpd
  5. restart: always
  6. container_name: httpd
  7. privileged: true
  8. volumes:
  9. - /Users/hezhaoming/Documents/docker/httpd/htdocs:/usr/local/apache2/htdocs
  10. - /Users/hezhaoming/Documents/docker/httpd/conf:/usr/local/apache2/conf
  11. - /Users/hezhaoming/Documents/docker/httpd/logs/:/usr/local/apache2/logs/
  12. ports:
  13. - 80:80

3.3.2 创建文件目录

mkdir -p /Users/hezhaoming/Documents/docker/httpd/htdocs
mkdir -p /Users/hezhaoming/Documents/docker/httpd/conf
mkdir -p /Users/hezhaoming/Documents/docker/httpd/logs

image.png

3.3.3 启动服务

docker-compose  up -d

3.3.4 验证服务

已知文件
image.png
可以访问html
image.png
可以下载文件
image.png
image.png

四 编写本地源文件

我们前面把本地源服务搭建起来了,接下来我们编写源文件

4.1 编写 ambari.repo

vi ambari.repo

#VERSION_NUMBER=2.7.4.0-118
[ambari-2.7.4.0]
#json.url = http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json
name=ambari Version - ambari-2.7.4.0
baseurl=http://192.168.44.200/ambari/ambari/centos7/2.7.4.0-118/
gpgcheck=1
gpgkey=http://192.168.44.200/ambari/ambari/centos7/2.7.4.0-118//RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

4.2 编写 HDP.repo

vi HDP.repo

#VERSION_NUMBER=3.1.4.0-315
[HDP-3.1.4.0]
name=HDP Version - HDP-3.1.4.0
baseurl=http://192.168.44.200/ambari/HDP/centos7/3.1.4.0-315
gpgcheck=1
gpgkey=http://192.168.44.200/ambari/HDP/centos7/3.1.4.0-315/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

4.3 编写 HDP-UTILS.repo

vi HDP-UTILS.repo

[HDP-UTILS-1.1.0.22]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.22
baseurl=http://192.168.44.200/ambari/HDP-UTILS/HDP-UTILS/centos7/1.1.0.22
gpgcheck=1
gpgkey=http://192.168.44.200/ambari/HDP-UTILS/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

4.4 存放位置

先放在一个文件夹里备用
image.png

总结

本章节比较简单,主要是了解ambari,然后顺便构建了个本地源的服务器,为后面做准备。

**