大数据hadoop之 十三.Ambari集群管理
本文于1861天之前发表,文中内容可能已经过时。
Ambari简介
Ambari概述
Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的创建、管理和监控。Ambari已支持大多数Hadoop组件,Hadoop 整个生态圈包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop和Hcatalog等;除此之外,Ambari还支持Spark、Storm等计算框架及资源调度平台YARN。
Apache Ambari 从集群节点和服务收集大量信息,并把它们表现为容易使用的,集中化的接口:Ambari Web.
Ambari Web显示诸如服务特定的摘要、图表以及警报信息。可通过Ambari Web对Hadoop集群进行创建、管理、监视、添加主机、更新服务配置等;也可以利用Ambari Web执行集群管理任务,例如启用 Kerberos 安全以及执行Stack升级。任何用户都可以查看Ambari Web特性。拥有administrator-level 角色的用户可以访问比 operator-level 或 view-only 的用户能访问的更多选项。例如,Ambari administrator 可以管理集群安全,一个 operator 用户可以监控集群,而 view-only 用户只能访问系统管理员授予他的必要的权限。
Ambari提供了对Hadoop更加方便快捷的管理功能,主要包含:
- 通过一步一步的安装向导简化了集群供应。
- 预先配置好关键的运维指标(metrics),可以直接查看Hadoop Core(HDFS和MapReduce)及相关项目(如HBase、Hive和HCatalog)是否健康。
- 支持作业与任务执行的可视化与分析,能够更好地查看依赖和性能。
- 通过一个完整的RESTful API把监控信息暴露出来,集成了现有的运维工具。
- 用户界面非常直观,用户可以轻松有效地查看信息并控制集群。
Ambari体系结构
Ambari 自身也是一个分布式架构的软件,主要由两部分组成:Ambari Server 和 Ambari Agent。简单来说,用户通过Ambari Server通知 Ambari Agent 安装对应的软件;Agent 会定时地发送各个机器每个软件模块的状态给 Ambari Server,最终这些状态信息会呈现在 Ambari 的 GUI,方便用户了解到集群的各种状态,并进行相应的维护。
Ambari Server 从整个集群上收集信息。每个主机上都有 Ambari Agent, Ambari Server 通过 Ambari Agent 控制每部主机。
安装配置
一、配置说明
- 硬件环境
节点类型 | 操作系统 | ip地址 | 主机名 | 说明 |
---|---|---|---|---|
主节点 | Centos-7 | 192.168.162.41 | node1.ambari.com | 内存:8G+ |
从节点 | Centos-7 | 192.168.162.42 | node2.ambari.com | 内存:8G+ |
从节点 | Centos-7 | 192.168.162.43 | node3.ambari.com | 内存:8G+ |
- 软件环境
软件名称 | 版本号 |
---|---|
JDK | jdk1.8.0_151 |
Mysql | 5.7.23 |
Ambari | 2.7.1 |
HDP | 3.0.1 |
二、修改主机名和hosts文件
1. 修改主机名(三台主机都执行)
1 | vim /etc/hostname *# 该命令需要重启后生效* |
2. 修改hosts文件
1 | vim /etc/hosts |
三、关闭防火墙和selinux
1. 防火墙设置
1 | # 查看防火墙状态 |
2. 禁用selinux
1 |
|
四、免密登陆
各个主机均执行以下操作:
1 | ## 生成密钥对 |
在node1.ambari.com上执行:
1 | ## 配置主从互相免密登陆 |
备注:要想实现多主机互相免密,可参考文章:Linux多台主机互相免密
五、安装JDK
下载链接: https://pan.baidu.com/s/1rlqZejpZZqio9RPzgnGOEg 提取码: j47n ;内有jdk-8u151-linux-x64.tar.gz和mysql-connector-java.jar文件。
- mkdir /usr/java;将下载的压缩包上传到java文件夹内
- 解压压缩包:tar zxvf jdk-8u151-linux-x64.tar.gz
- 配置jdk环境变量:
1 | # 编辑/etc/profile,文末插入以下内容: |
- 使环境变量生效:source /etc/profile
- 安装验证:java -version
六、安装mysql
mysql5.7 centos7:
https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
mysql5.7 centos6:
https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm
mysql5.6 centos7:
https://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
mysql5.6 centos6:
https://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
1. 检查本地资源库中是否有mysql的rpm包
1 | rpm -qa | grep mysql |
2. 搭建mysql5.7的yum源
1 |
|
3. 安装mysql
1 | yum install mysql-community-server |
4. 设置mysql
1 | # 启动mysql服务 |
5. 新增ambari用户并增加权限
1 | mysql -uroot -proot123 |
注:删除用户命令:
1 | Delete FROM user Where User='your_user' and Host='your_host'; |
6. 使用ambari用户登陆并创建数据库
1 | mysql -uambari -pambari |
七、设置时钟同步
自己写了一个脚本,前提条件是获取/etc/hosts
文件内的主机ip
脚本如下:
1 |
|
八、搭建yum本地源
1. 安装httpd和wget服务
1 | # 安装httpd |
2. 下载ambari和hdp包
1 | # 将tar包下载到/var/www/html |
3. 新建repo文件
- 新建ambari.repo文件
1 | [ambari] |
- 新建HDP.repo文件
1 | [HDP] |
- 新建HDP-UTILS.repo文件
1 | [HDP-UTILS] |
将以上文件放入/etc/yum.repos.d/
目录下。
九、在主节点安装ambari-server
1. 安装
1 | yum -y install ambari-server |
2. 将mysql-connector-java.jar拷贝到/usr/share/java目录下
3. 修改配置文件
1 | echo server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar >> /etc/ambari-server/conf/ambari.properties |
4. 安装ambari-server
1 | ambari-server setup |
5. 初始化数据库
1 | mysql -uambari -pambari |
6. 启动ambari-server
1 | ambari-server start |
登陆浏览器访问: http://192.168.162.41:8080/ ,利用界面部署集群。
默认登陆账号/密码为:admin/admin。
十. 通过Ambari部署hadoop集群
1. 打开 http://192.168.162.41:8080/
2. 点击 “LAUNCH INSTALL WIZARD”,开始创建一个集群
3. 为集群取一个名字
4. 前面我们建了本地的资源库,这里选择 “Use Local Repository”。删除其它的 OS,只留 redhat7 那一行。并且在 Base URL 那一列里填入前面搭建的 web 服务对应的地址。
5. 在 “Target Hosts” 里填入 hadoop 集群需要部署到哪些机器。可以填 IP。
SSH Private Key 里选择的文件是Ambari中配置免密登陆到其它机器的那台机器的 id_rsa 这个文件。我用的是 root 帐号,所以这个文件是在 /root/.ssh/ 目录下。
6. “Confirm Hosts” 这一步,ambari 会在上面的配置的 hosts 中安装 ambari agent,只需等待即可。
7. 根据需要,选择服务。如果某些服务依赖其它服务,而没有选择依赖的服务的话,点击“Next”时,会做相应的提示。
8. 点击 “Next”,如果出现类似下面的警告的话,可以不用管,后续如果需要的话,可以再安装
9. “Assign Masters” 这一步,ambari 会自动分配各种服务到不同的机器上。可以手动进行调整。
10. “Assign Slaves and Clients” 这一步,手动分配 Hadoop 的 DataNode 节点位置,YARN 的 NodeManager 的位置……
其中 NFSGateway 是通过挂载的方式,像访问本地文件系统一样访问 Hadoop 的文件系统。
Phoenix Query Server 是一个HBase的开源SQL引擎。你可以使用标准的JDBC API代替HBase客户端API来创建表,插入数据,查询你的HBase数据。
11. 设置密码。(有一行的 username 是 N/A,比较奇怪,不知道用在哪)
12. 数据库配置。如果选择了安装 hive 或 Ranger,需要输入相关的数据库的信息。此例中没有这一步。
13. 目录配置。配置各个服务需要用到的目录。使用默认值即可。
14. 创建用户。默认情况下, ambari 会为每个服务创建一个 linux 的用户,用不同的用户启动不同的服务。我设成了同一个用户。
15. “ALL CONFIGURATIONS”,这一步可以修改前面的一些配置
16. 点击 “Next”后,出现总结页。可以下载创建这个集群的元数据信息。点击 “DEPLOY” 后,就开始部署了。