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的相应服务。
二.集群服务规划设计
在正式安装之前,我们还需要完成一些前期准备工作,包括集群服务的设计,服务器环境准备和用于安装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台服务器都相同,如下图:
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 ~]#