Hadoop生态圈-离线方式部署Ambari2.6.0.0

                                     作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

   我现在所在的公司用的是CDH管理Hadoop集群,前端时间去面试时发现很多企业都在用HDP,于是回来捣鼓来一下HDP的部署方式。部署时也踩过不少坑,这里把正确部署Ambari的方式记录一下。其实部署Ambari的方式和CDH的部署方式大同小异。

  本片博客会详细介绍如何使用Ambari来安装HDP发行版本,想要避免去官网踩坑的小伙伴可以这篇笔记很适合你哟!HDP是Hontorworks Data Platform的简称,是Hontorworks公司的Hadoop发行版本,在企业中十分流行。同样著名的还有Cludera公司的CDH发行版本(详情请参考我的笔记:离线方式部署Cloudera Manager5.15.1)。

 

一.Ambari简介

   和CDH一样,Ambari是一款用于部署,管理和监控Hadoop集群服务的开源系统,它实现来以下功能:

    1>.安装一个Hadoop集群:

      第一:提供了以向导指引的方式安装一个集群,可以在任意的主机上安装Hadoop服务。

      第二:提供了对Hadoop服务的配置功能。

    2>.管理一个Hadoop集群:

      提供了启动,停止等集群管理功能。

    3>.监控Hadoop集群:

      第一:提供了一个监控Hadoop集群监控状态的仪表盘。

      第二:提供了一套监控指标体系来手机监控数据。

      第三:提供了一套预警框架,可以结合预定的监控指标实现通知告警。

  和CDH很像,从设计上看Ambari使用的Master/Slaves架构(主/从架构,由一个Ambari-Server和多个Agent组成)。如下图所示,它是通过一个Server主进程来实现集群的管理和操作命令的发送,而具体管理动作则由安装在每台目标主机上的Agent进程进行执行。例如通过Ambari启动HDFS服务的时候,首先会由Ambari-Server向安装来HDFS服务所在主机的Agent进程发送启动指令,然后再有相关Agent进程执行其所在主机的本地命令来启动HDFS的相应服务。

 离线方式部署Ambari2.6.0.0

 

二.集群服务规划设计

   在正式安装之前,我们还需要完成一些前期准备工作,包括集群服务的设计,服务器环境准备和用于安装Ambari的本地yum仓库等。

    yum(全称为Yellow dog Updater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有的以来的软件包,无须繁琐地一次次下载,安装。

  在了解了集群服务器角色的职责划分之后,现在可以开始设计以下集群节点的服务划分了。Ambari通过集成HDP这样一个Hadoop发行版安装包来实现对应组件服务的安装。接下来,我们看看截止到HDP2.5版本,它都提供了那些核心服务。

1>.NameNode

  分布式文件系统HDFS主控服务,主要用于保存文件系的元数据信息以及操作路由。

2>.SecondNameNode

  专职用于帮助NameNode合并快照日志文件的服务,以缓解NameNode压力。

3>.DataNodes

  分布式文件系统HDFS的数据存储服务,主要你提供文件数据块的存储和查询功能。

4>.ResourceManger

  资源调度系统YARN的主控服务,负责统一的资源分配和调度工作。

5>.NodeManagers

  资源调度系统YARN的容器服务,负责具体的任务执行工作,YARN只会将任务分配到安装了NodeManager服务的主机执行任务。

6>.App Timeline Server

  负责存储在YARN中执行任务的历史信息,包括任务状态,任务日志等,并提供对这些信息查询的能力。

7>.Histroy Server

  负责存储在YARN中执行的任务的历史信息,包括任务状态,任务日志等,并提供对这些信息查询的能力。

8>.Hive Metastore

  负责存储数据仓库Hive的元数据信息,例如表名称,表字段和字段属性等。

9>.HiveServer2

  Hive在线查询服务,支持通过JDBC和ODBC等标准协议查询数据。

10>.Tez

  使用DAG作为计算模型的一款分布式计算引擎,HDP版本里Hive组件的计算引擎使用的正式Tez。

11>.Active HBase Master

  分布式NoSQL服务,HBase的主控服务,主要负责Region的分配和DDL操作。

12>.RegionServers

  分布式NoSQL服务,HBase的数据存储服务,主要提供具体数据的存储与查询功能。

13>.Zookeeper server

  分布式协同管理服务,负责HBase,Ambari Infra 和Kafka等多项服务的协同工作。

14>.Kafka Broker

  分布式消息系统Kafka,负责消息的接受,发送,消息主题的管理等工作。

15>.Spark History Server

  分布式内存计算框架Spark的任务历史服务,负责存储记录Spark任务的历史信息,包括任务状态,执行时间,任务日志和环境变量等信息。同时也提供这些历史细腻下的查看检索功能。

16>.Spark Thrift Servers

  分布式内存计算框架Spark的在线查询服务,和Hive的HiveServer2服务类似。支持通过JDBC和OBDC等标准协议查询数据。

17>.Knox Gateway

  网关服务,可以代理HDP中YARN,HBase,HDFS等众多组件的Restful服务。

18>.Ranger Admin

  权限管理服务,可以代理YARN,HBase,HDFS等众多组件的权限管理功能。

19>.Ranger KMS Server

  Ranger的Key管理服务,用于管理Hadoop集群的认证密钥。

20>.Ranger Usersync 

  Rabfer的用户同步服务,负责将Hadoop的集群用户同步更新到Ranger的内部服务。

21>.Zepplin

  交互式在线分析工具,可以直接通过Web界面编写SQL或代码的形式使用Spark,Hive等服务进行交互式分析。

22>.Log Search  

  日志采集与分析服务,负责收集所有Hadoop服务的日志文件并提供集中展示和检索功能。

23>.Ambari Infra

  搜索服务,用于存储Ranger的审计日志以及Log Search采集到的系统日志等数据。

24>.Clients

  各种服务的客户端程序,包括MapReduce2 Clients,YARN Clients,Hive Clients,Zookeeper Clients,Spark Clients,HBase Clients等等。

 

  在了解上述Ambari可以安装的核心服务之后,我们可以根据服务列表自行添加服务,这和我们之前部署CDH自定义需要安装服务几乎如出一辙。想必部署过CDH的小伙伴,对这个理解起来也非常简单的,我在这里就不多费口舌啦~ 

 

三.环境准备

1>.Ambari目前只支持64位的操作系统,具体操作如下:

  1.1>.RHEL(Redhat Enterprise Linux)6或者7;

  1.2>.CentOS6或者CentOS7;

  1.3>.OEL(Oracle Enterprise Linux)6或者7;

  1.4>.SLES(SuSE Linux Enterprise Server)11;

  1.5>.Debian 7;

  1.6>.Ubantu12 或者14;

2>.配置主机列表(每台主机都需要配置,我本次实验共计3台服务器)

  Ambari所管理的各个服务之间需要使用FQDN来进行访问,所以我们还需要为各个服务器配置他们的FQDN。Linux系统可以通过主机表配置它的 FQDN,编辑“/etc/hosts”这个配置文件即可。

[root@node101 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6


172.30.1.101 node101.yinzhengjie.org.cn
172.30.1.102 node102.yinzhengjie.org.cn
172.30.1.103 node103.yinzhengjie.org.cn

[root@node101 ~]# 
[root@node101 ~]# 

FQDN(Fully Qualified Domain Name):
  完全合格域名/全称域名,是指主机名加上全路径,全路径中列出了序列中所有域成员。全域名可以从逻辑上准确地表示处主机在什么地方,也可以说全域名是主机名的一种完全表示形式。

  我都实验环境配置了3台服务器,3台服务器都相同,如下图:

离线方式部署Ambari2.6.0.0

3>.各个主机配置免密登陆(在“node101.yinzhengjie.org.cn”上操作)

[root@node101 ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
Generating public/private rsa key pair.
Created directory '/root/.ssh'.
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:
d1:90:58:b3:ca:97:0e:91:f2:15:23:73:7d:05:d4:53 root@node101.yinzhengjie.org.cn
The key's randomart image is:
+--[ RSA 2048]----+
|      ooBo .o+..E|
|      .=.B. . o  |
|    . o + ..   . |
|     + + o       |
|      = S        |
|       +         |
|        .        |
|                 |
|                 |
+-----------------+
[root@node101 ~]# 
[root@node101 ~]# 
[root@node101 ~]# 
[root@node101 ~]# 
[root@node101 ~]# ll  ~/.ssh/id_rsa
-rw-------. 1 root root 1675 Dec  5 02:35 /root/.ssh/id_rsa
[root@node101 ~]# 
[root@node101 ~]# cat  ~/.ssh/id_rsa  
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAwtFCswPu3AOKXa2TzJRBKG/LC8knCtLE54zMVUaMwbWH0fdV
xHpa8n+V15W3HwLFBZDgyNmnPvZkVJUvTYqf5QaLsxm5J0JAxlmBkY/ayByeULLw
SVIXM/hqBulYnbUViVhGEmBbpI3ASjFVXQyiihyNhzoPZBjdiexnTh7aYJDjQ8qL
IZyQu+rjeoqju839dUmm4RfmqgaPsa717CNxqUgUdviTdK2meV4hA7HtKAxMTpYK
JcEAu3lvh9NRT2k8HSMvEaN/WVUF8SrNN1oUC4aFSO9tDmY3euBCccYf+RqSlzys
m5dxCFDk94cEhsvIzfdzUB4usPs1inUHcQ9pqQIDAQABAoIBAAWbPA4myNLwDyVO
/3fdtFpTjUZTjZoUIrJ/LMovc5GHhdcXBRLYapGb9lXz6wcrbzwPxUhCazu2n4CH
oorauGtA2vhWfyuQDokmvkHQH/2uRSgRXjTd9ej69yInyPMQ6QPA1JNmznxXz/bS
oKBC4tKSq8f+db7tsEJt2TM4VBR/Sg0x77LhZA70MC2+vv+9AoIKVVdZ/KNud+Dk
r2c+Hmo4r7I4G2Oqaj33f7RXFsILIwl0SBvpag4GPhwnOuphXDr3DQ1v5j+4x0rx
3JE+HmlpU66XveUuy7pMurdbOCajwPQgLkDo5W7bBUMIlBS/nZvInncVdDPzWFHO
ZlUh8dkCgYEA6Ykewa0oN96XLPdqbADHRqpzxL7zXJJ644Hh2HygyhR0xw3bOI57
IjkYje9e5PVUcXWuOj/oOMfKal2jW/78bnEgukX1JgkX8RHT9zsgZ0AGEpquHkjv
NrB1qrdbEwnNpSLB8pwGveD9zf89yzocZE+5CUBfnsuAgZqPYkjPMwcCgYEA1Y6x
o1ZxxsPGZIk+hZPuynemdZYnQWp3Z9ynVv902x1/sxcn/uZ+0DZDLQbqGA+2WdEg
EQZ9BwKTCkThoPBJKEzR3Ck122ahqSKCEQRGwK0h05uaA3KSTGIbujGaoBfDWG6f
3fTSWZnTNaObmcOhxTgsMRegy/kWOIgYqdX04c8CgYA9rsf+49uBljtb1yW2zSXV
VmQpjT3+L3ph6QZcBd76QRjvEovajlebnHUN2DG6S8o4BZs1K3gMt0iRe5YQUHMg
QKUiTiQIHdLDC7Bu1qEiZFi2RUDEIwN78HPD2ZYmmypD+cA8clWdhXXEGSybJwgk
vqHi/avD54BTux0wGocPtQKBgFY2Ud4nsqzUMg46HaRdUSQpY2jK4jQVX/js6h1D
6Y/fe8L30SylLoKttTbDONPX2/ysYO6emPCwiF236wJGnrIHOR1RAa3947tc8/cc
q9dyzVoY0fccVJVDcgAbsFl63mCf4CgBgr2rTMm1r8ZGZNMyVxzGdiKB/wd5YcOG
XWKfAoGAYpvjXzEYzr7Y7KKlZBR3gUZZwfngYYgf8g1L42oB1un1NUajiMCyPsm6
oxKrFj6a8SH1xy1U0S7QbPK7osjR5qU7SMsqgziouBl1UmAT5WVKoik4UvHLlKC3
hB0HxUvfVYM5lV3BaggVTC/EOAOsa+jqfbrwjBxjn/kmmv2FtLk=
-----END RSA PRIVATE KEY-----
[root@node101 ~]# 
[root@node101 ~]# 
[root@node101 ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa                #生成密钥

相关文章:

  • 2022-12-23
  • 2021-05-29
  • 2018-10-24
  • 2021-12-14
  • 2021-06-20
  • 2021-11-12
  • 2021-11-07
  • 2022-01-01
猜你喜欢
  • 2022-12-23
  • 2021-09-22
  • 2021-05-10
  • 2021-05-03
  • 2021-10-16
  • 2021-09-16
  • 2022-12-23
相关资源
相似解决方案