一、Ambari概述

Ambari跟Hadoop等开源软件一样,也是Apache Software Foundation中的一个项目,并且是顶级项目。Apache Ambari是一个基于Web的支持Apache Hadoop集群的供应、管理和监控的开源工具,Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。提供Web UI进行可视化的集群管理,简化了大数据平台的安装、使用难度。

Ambari提供了对Hadoop更加方便快捷的管理功能,主要包含:

  • 通过一步一步的安装向导简化了集群供应。
  • 预先配置好关键的运维指标(metrics),可以直接查看Hadoop Core(HDFS和MapReduce)及相关项目(如HBase、Hive和HCatalog)是否健康。
  • 支持作业与任务执行的可视化与分析,能够更好地查看依赖和性能。
  • 通过一个完整的RESTful API把监控信息暴露出来,集成了现有的运维工具。
  • 用户界面非常直观,用户可以轻松有效地查看信息并控制集群。

二、 Hadoop版本

目前Hadoop发行版本非常多,我个人接触的有HDP和CDH,Hortonworks版本(Hortonworks Data Platform,简称"HDP"),Cloudera版本(Cloudera Distribution Hadoop,简称"CDH"),还有其他的版本,目前中国公司我发现用的CDH版本较多,而界面上 HDP版本要比CDH要好。

Hadoop是一个开发和运行处理大规模数据的软件平台,是Apache的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算。Hadoop框架中最核心设计就是:MapReduce和HDFS。MapReduce提供了对数据的分布式计算,HDFS提供了海量数据的分布式存储。
在Hadoop家族中,收入了20多个用于计算、分析、存储、监控、管理等组件和工具,这些家族成员极大的丰富了Hadoop的各方面的功能。

Hadoop常见家族成员

下面简单的列举几个常见的组件:

  • Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架构。
  • Apache Hive: 是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
  • Apache Pig: 是一个基于Hadoop的大规模数据分析工具,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。
  • Apache HBase: 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
  • Apache Sqoop: 是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
  • Apache Zookeeper: 是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务
  • Apache Mahout:是基于Hadoop的机器学习和数据挖掘的一个分布式框架。Mahout用MapReduce实现了部分数据挖掘算法,解决了并行挖掘的问题。
  • Apache Cassandra:是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身
  • Apache Avro: 是一个数据序列化系统,设计用于支持数据密集型,大批量数据交换的应用。Avro是新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制
  • Apache Ambari: 是一种基于Web的工具,支持Hadoop集群的供应、管理和监控。
  • Apache Chukwa: 是一个开源的用于监控大型分布式系统的数据收集系统,它可以将各种各样类型的数据收集成适合 Hadoop 处理的文件保存在 HDFS 中供 Hadoop 进行各种 MapReduce 操作。
  • Apache Hama: 是一个基于HDFS的BSP(Bulk Synchronous Parallel)并行计算框架, Hama可用于包括图、矩阵和网络算法在内的大规模、大数据计算。
  • Apache Flume: 是一个分布的、可靠的、高可用的海量日志聚合的系统,可用于日志数据收集,日志数据处理,日志数据传输。
  • Apache Giraph: 是一个可伸缩的分布式迭代图处理系统, 基于Hadoop平台,灵感来自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。
  • Apache Oozie: 是一个工作流引擎服务器, 用于管理和协调运行在Hadoop平台上(HDFS、Pig和MapReduce)的任务。
  • Apache Crunch: 是基于Google的FlumeJava库编写的Java库,用于创建MapReduce程序。与Hive,Pig类似,Crunch提供了用于实现如连接数据、执行聚合和排序记录等常见任务的模式库
  • Apache Whirr: 是一套运行于云服务的类库(包括Hadoop),可提供高度的互补性。Whirr支持Amazon EC2和Rackspace的服务。
  • Apache Bigtop: 是一个对Hadoop及其周边生态进行打包,分发和测试的工具。
  • Apache HCatalog: 是基于Hadoop的数据表和存储管理,实现中央的元数据和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供关系视图。
  • Cloudera Hue: 是一个基于WEB的监控和管理系统,实现对HDFS,MapReduce/YARN, HBase, Hive, Pig的web化操作和管理。

三、 HDP与CDH对比

1、据个人了解HDP是100%完全开源的,而CDH还不是100%完全开源。Hortonworks的工程师是社区的主要贡献者,Cloudera的发行版本也是比较清晰的。

2、HDP使用开源工具Ambari安装,CDH使用Cloudera Manager工具安装。对配置的修改与更新, Ambari的界面更方便,可以很方便的修改集群配置,Cloudera Manager的配置界面真的是太烂了,不方便,发现有些配置竟然没法改,后续版本也许有改善。

3、支持的组件,HDP基本上支持所有的开源大数据组件,CDH也基本上支持所有的开源大数据组件。

4、代码包依赖,如果是HDP平台,编写代码直接依赖hadoop版本即可,如果是CDH平台,编写代码要依赖CDH的版本,否则运行不成功,这是坑啊。

四、安装参考

1、HDP: https://docs.hortonworks.com/

2、CDH: https://www.cloudera.com/documentation.html

五、概述

Apache Ambari是一个基于Web的支持Apache Hadoop集群的供应、管理和监控的开源工具,Ambari已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等。提供Web UI进行可视化的集群管理,简化了大数据平台的安装、使用难度。

六、Ambari安装部署

1、集群节点主机规划

序号

IP地址

主机名

系统版本

1

172.168.1.248

ambari-server

CentOS 7.4.1708

2

172.168.1.161

node1

CentOS 7.4.1708

3

172.168.1.162

node2

CentOS 7.4.1708

4

172.168.1.163

node3

CentOS 7.4.1708

2、部署HDP

2.2.1 基础环境部署

1)配置主机名

# 在ambari-server节点执行

[root@localhost ~]# hostnamectl set-hostname ambari-server

# 在Node1节点执行

[root@localhost ~]# hostnamectl set-hostname node1

# 在Node2节点执行

[root@localhost ~]# hostnamectl set-hostname node2

# 在Node3节点执行

[root@localhost ~]# hostnamectl set-hostname node3

2)配置hosts

# 在所有节点执行

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/selinux/config

[root@localhost ~]# setenforce 0

# 添加各个节点hosts解析

[root@localhost ~]# cat >>/etc/hosts <<EOF

172.168.1.248 ambari-server

172.168.1.161 node1

172.168.1.162 node2

172.168.1.163 node3

EOF

3)配置免密钥登录其他节点

# 在ambari-server节点执行

[root@ambari-server ~]# ssh-keygen -t rsa

[root@ambari-server ~]# ssh-copy-id root@ambari-server

[root@ambari-server ~]# ssh-copy-id root@node1

[root@ambari-server ~]# ssh-copy-id root@node2

[root@ambari-server ~]# ssh-copy-id root@node3

4)安装数据库

在ambari的setup中我们可以选择使用默认的postgresql,也可以自定义使用其他数据库,此处选用mariadb,便于后期管理维护

[root@ambari-server ~]# yum -y install mariadb mariadb-devel mariadb-server mysql-connector-java

[root@ambari-server ~]# systemctl start mariadb

5)配置本地yum源

由于Ambari的各个组件包很大,HDP大约快7G,我们采取离线安装方式,将ambari-server配置为yum源,事先在网上下载HDP、HDP-UTILS和Ambari安装包。

[root@ambari-server ~]# yum -y install httpd httpd-devel && systemctl start httpd

参考url:

Ambari各版本参考链接

HDP和HDP UTILS参考链接

软件版本:

Ambari:2.4.1.0

HDP:2.5.0.0

HDP-UTILS:1.1.0.21

6)下载软件

[root@ambari-server ~]# wget -c http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.1.0/ambari-2.4.1.0-centos7.tar.gz

[root@ambari-server ~]# wget -c http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.5.0.0/HDP-2.5.0.0-centos7-rpm.tar.gz

[root@ambari-server ~]# wget -c http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos7/HDP-UTILS-1.1.0.21-centos7.tar.gz

7)创建目录

[root@ambari-server ~]# mkdir -p /var/www/html/{ambari,HDP-UTILS-1.1.0.21}

8)解压软件

[root@ambari-server ~]# tar zxf ambari-2.4.1.0-centos7.tar.gz -C /var/www/html/ambari/

[root@ambari-server ~]# tar zxf HDP-UTILS-1.1.0.21-centos7.tar.gz -C /var/www/html/HDP-UTILS-1.1.0.21/

[root@ambari-server ~]# tar zxf HDP-2.5.0.0-centos7-rpm.tar.gz -C /var/www/html

[root@ambari-server ~]# chown -R root.root /var/www/html

9)配置Ambari(YUM源)

[root@ambari-server ~]# vim /etc/yum.repos.d/ambari.repo

# 添加以下内容



1. #VERSION_NUMBER=2.4.1.0-22
2. [Updates-ambari-2.4.1.0]
3. name=ambari-2.4.1.0-Updates
4. baseurl=http://172.168.1.248/ambari/AMBARI-2.4.1.0/centos7/2.4.1.0-22/
5. gpgcheck=1
6. gpgkey=http://172.168.1.248/ambari/AMBARI-2.4.1.0/centos7/2.4.1.0-22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
7. enabled=1
8. priority=1

10)配置HDP(YUM源)

[root@ambari-server ~]# vim /etc/yum.repos.d/hdp.repo

# 添加以下内容



1. #VERSION_NUMBER=2.5.0.0-1245
2. [HDP-2.5.0.0]
3. name=HDP Version- HDP-2.5.0.0
4. baseurl=http://172.168.1.248/HDP/centos7/
5. gpgcheck=1
6. gpgkey=http://172.168.1.248/HDP/centos7/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
7. enabled=1
8. priority=1
9.
10. [HDP-UTILS-1.1.0.21]
11. name=HDP-UTILS Version- HDP-UTILS-1.1.0.21
12. baseurl=http://172.168.1.248/HDP-UTILS-1.1.0.21/
13. gpgcheck=1
14. gpgkey=http://172.168.1.248/HDP-UTILS-1.1.0.21/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
15. enabled=1
16. priority=1

11)拷贝YUM源到各个Node节点(此步骤可省略)

[root@ambari-server ~]# scp /etc/yum.repos.d/ambari.repo root@node1:/etc/yum.repos.d/

[root@ambari-server ~]# scp /etc/yum.repos.d/ambari.repo root@node2:/etc/yum.repos.d/

[root@ambari-server ~]# scp /etc/yum.repos.d/ambari.repo root@node3:/etc/yum.repos.d/

[root@ambari-server ~]# scp /etc/yum.repos.d/hdp.repo root@node1:/etc/yum.repos.d/

[root@ambari-server ~]# scp /etc/yum.repos.d/hdp.repo root@node2:/etc/yum.repos.d/

[root@ambari-server ~]# scp /etc/yum.repos.d/hdp.repo root@node3:/etc/yum.repos.d/

2.2.2 安装配置Ambari

1)安装Ambari server

[root@ambari-server ~]# yum clean all

[root@ambari-server ~]# yum makecache

[root@ambari-server ~]# yum -y install ambari-server

2)进入数据库创建ambari库、授权和导入数据

[root@ambari-server ~]# mysql

MariaDB [(none)]> create database ambari default charset utf8;

MariaDB [(none)]> use ambari

MariaDB [(none)]> source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

MariaDB [(none)]> grant all on ambari.* to ambari@'ambari-server' identified by '123456789';

MariaDB [(none)]> flush privileges;

3)配置Ambari

[root@ambari-server ~]# 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)? y

Enter user account for ambari-server daemon (root):        # 输入Enter

Adjusting ambari-server permissions and ownership...

Checking firewall status...

Checking JDK...

[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8

[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7

[3] Custom JDK

==============================================================================

Enter choice (1): 1

To download the Oracle JDK and the Java Cryptography Extension (JCE) Policy Files you must accept the license terms found at http://www.oracle.com/technetwork/java/javase/terms/license/index.html and not accepting will cancel the Ambari Server setup and you must install the JDK and JCE files manually.Do you accept the Oracle Binary Code License Agreement [y/n] (y)? y

Downloading JDK from http://public-repo-1.hortonworks.com/ARTIFACTS/jdk-8u77-linux-x64.tar.gz to /var/lib/ambari-server/resources/jdk-8u77-linux-x64.tar.gzjdk-8u77-linux-x64.tar.gz... 100% (173.0 MB of 173.0 MB)

Successfully downloaded JDK distribution to /var/lib/ambari-server/resources/jdk-8u77-linux-x64.tar.gz

Installing JDK to /usr/jdk64/

Successfully installed JDK to /usr/jdk64/

Downloading JCE Policy archive from http://public-repo-1.hortonworks.com/ARTIFACTS/jce_policy-8.zip to /var/lib/ambari-server/resources/jce_policy-8.zip

Successfully downloaded JCE Policy archive to /var/lib/ambari-server/resources/jce_policy-8.zip

Installing JCE policy...

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): localhost

Port (3306): 3306

Database name (ambari): ambari

Username (ambari): ambari

Enter Database Password (bigdata): # 输入密码123456789

Re-enter password: # 再次输入密码123456789

Configuring ambari database...

Copying JDBC drivers to server resources...

Configuring remote database connection properties...

WARNING: Before starting Ambari Server, you must run the following DDL against the database to create the schema: /var/lib/ambari-se

rver/resources/Ambari-DDL-MySQL-CREATE.sqlProceed with configuring remote database connection properties [y/n] (y)? y

Extracting system views...

ambari-admin-2.4.1.0.22.jar

...........

Adjusting ambari-server permissions and ownership...

Ambari Server 'setup' completed successfully.

4)启动Ambari-server服务

[root@ambari-server ~]# ambari-server start

Using python /usr/bin/python

Starting ambari-server

Ambari Server running with administrator privileges.

Organizing resource files at /var/lib/ambari-server/resources...

Ambari database consistency check started...

No errors were found.

Ambari database consistency check finished

Server PID at: /var/run/ambari-server/ambari-server.pid

Server out at: /var/log/ambari-server/ambari-server.out

Server log at: /var/log/ambari-server/ambari-server.log

Waiting for server start....................

Ambari Server 'start' completed successfully.

5)浏览器访问Ambari平台

# 浏览器访问:http://172.168.1.248:8080,默认用户名密码admin/admin

Linux搭建大数据平台Ambari并部署Hadoop集群_Hadoop

6)启动安装向导

Linux搭建大数据平台Ambari并部署Hadoop集群_Hadoop_02

7)添加将要创建的集群名称

Linux搭建大数据平台Ambari并部署Hadoop集群_ambari_03

8)下载HDP版本

Linux搭建大数据平台Ambari并部署Hadoop集群_ambari_04

9)选择本地HDP源,输入对应链接信息

# http://172.168.1.248/HDP/centos7/

# http://172.168.1.248/HDP-UTILS-1.1.0.21/

Linux搭建大数据平台Ambari并部署Hadoop集群_Apache_05

10)添加写需要安装的各个目标节点的主机名,填写Anbari-Server免密钥登录其他节点的私钥,确认注册

Linux搭建大数据平台Ambari并部署Hadoop集群_Hadoop_06

Linux搭建大数据平台Ambari并部署Hadoop集群_ambari_07

Linux搭建大数据平台Ambari并部署Hadoop集群_ambari_08

# 如果报如下错误

ERROR 2020-11-30 15:28:39,243 NetUtil.py:88 - EOF occurred in violation of protocol (_ssl.c:618)

ERROR 2020-11-30 15:28:39,243 NetUtil.py:89 - SSLError: Failed to connect. Please check openssl library versions.

注:这是由于Python 2.7.5的新版本中存在缺陷,导致无论证书状态如何,证书验证都失败。

解决方式:

1、关闭验证

# 所有Node节点执行,这里我用的python自带版本是python-2.7.5-58(Centos 7.4自带),亲测python-2.7.5-80(Centos 7.6自带)、python-2.7.5-88(Centos 7.8自带)版本还是一样报错。

# 查看Python版本

[root@ambari-server ~]# python -V

Python 2.7.5

这里只能看到2.7.5,不能看到具体子版本,可通过下面命令查看具体版本信息

[root@ambari-server ~]# rpm -qa |grep python

Linux搭建大数据平台Ambari并部署Hadoop集群_Hadoop_09

[root@node1 ~]# sed -i 's/verify=platform_default/verify=disable/' /etc/python/cert-verification.cfg

[root@node2 ~]# sed -i 's/verify=platform_default/verify=disable/' /etc/python/cert-verification.cfg

[root@node3 ~]# sed -i 's/verify=platform_default/verify=disable/' /etc/python/cert-verification.cfg

Linux搭建大数据平台Ambari并部署Hadoop集群_Hadoop_10

11)选择需要安装的服务(默认全选),我这里选择HDFS、YARM、Tez、HBase、Pig、Ambari Metrics、Zookeeper、Kafka(请根据实际情况选择)

Linux搭建大数据平台Ambari并部署Hadoop集群_ambari_11

12)选择安装软件所在的哪个节点上,这里选择默认分配(请根据实际情况选择)

Linux搭建大数据平台Ambari并部署Hadoop集群_Apache_12

Linux搭建大数据平台Ambari并部署Hadoop集群_ambari_13

13)自定义服务路径、JAVA堆大小、密码等,这里选择默认(请根据实际情况选择)

# 输入Grafana密码,点击Next即可

Linux搭建大数据平台Ambari并部署Hadoop集群_Hadoop_14

14)进行安装部署

Linux搭建大数据平台Ambari并部署Hadoop集群_ambari_15

Linux搭建大数据平台Ambari并部署Hadoop集群_ambari_16

# 等待安装完毕,出现Success表示安装成功。

Linux搭建大数据平台Ambari并部署Hadoop集群_Hadoop_17

Linux搭建大数据平台Ambari并部署Hadoop集群_Apache_18

15)查看Ambari的Dashboard界面

Linux搭建大数据平台Ambari并部署Hadoop集群_Apache_19

16)查看各组件的概况和配置

# HDFS

Linux搭建大数据平台Ambari并部署Hadoop集群_Apache_20

Linux搭建大数据平台Ambari并部署Hadoop集群_ambari_21

# Hbase

Linux搭建大数据平台Ambari并部署Hadoop集群_Apache_22

Linux搭建大数据平台Ambari并部署Hadoop集群_Apache_23

至此,大数据平台Ambari搭建完毕。

  • 输入编号:7707,直达文章
  • 输入m|M,直达目录列表