Ambari 操作指南 (Ambari Operations) 之一

1. Ambari 操作: 概述 (Ambari Operations: Overview)
-----------------------------------------------------------------------------------------------------------------------------------------
Hadoop 是用在商业主机网络集群上的大规模、分布式的数据存储和处理基础架构。监控和管理如此复杂的分布式系统是不简单的。为了管理这种复杂性,
Apache Ambari 从集群节点和服务收集了大量的信息,并把它们表现为容易使用的,集中化的接口:Ambari Web

Ambari Web 显示诸如服务特定的摘要、图表以及警报信息。可以使用 Ambari Web 创建和管理 HDP 集群并执行基本的操作任务,例如启动和停止服务,向集群
中添加主机,以及更新服务配置。也可以利用 Ambari Web 执行集群管理任务,例如启用 Kerberos 安全以及执行 Stack 升级。任何用户都可以查看 Ambari
Web 特性。拥有 administrator-level 角色的用户可以访问比 operator-level 或 view-only 的用户能访问的更多选项。例如,Ambari administrator 可以
管理集群安全,一个 operator 用户可以监控集群,而 view-only 用户只能访问系统管理员授予他的必要的权限。


1.1 Ambari 体系结构 (Ambari Architecture)
-----------------------------------------------------------------------------------------------------------------------------------------
Ambari Server 从整个集群上收集信息。每个主机上都有 Ambari Agent, Ambari Server 通过 Ambari Agent 控制每部主机。

Ambari Web 是一个客户端的(client-side)JavaScript 应用用于调用 Ambari REST API (accessible from the Ambari Server) 来访问集群信息并执行集群
操作。Ambari Web 认证之后,应用程序通过了 Ambari Server 验证。浏览器和服务器间的通信使用的是异步的 REST API


Ambari Web UI 定期地访问 Ambari REST API 以重置会话超时。因而,默认情况下,Ambari Web 会话是不会自动超时的。可以配置 Ambari 在没有活动一个
段时间之后超时。



1.2 访问 Ambari Web (Accessing Ambari Web)
-----------------------------------------------------------------------------------------------------------------------------------------
    
    ① 打开一个支持的浏览器
    
    ② 输入 Ambari Web URL:
        
        http://<your.ambari.server>:8080
        
        Ambari Web 登录页显示到浏览器上
        
    ③ 输入用户名和密码
    
        如果是 Ambari 系统管理员第一次访问 Ambari Web UI, 使用默认到 Ambari administrator 账号
        
        admin/admin
        
    ④ 单机 Sign In
    
    
如果 Ambari Server 停止了,可以在 Ambari Server 的机器上重新启动

    ambari-server start


在 Ambari Web 上,Ambari administrators 从 Manage Ambari 选项访问 Ambari Admin 页。



2. 理解集群仪表盘 (Understanding the Cluster Dashboard)
-----------------------------------------------------------------------------------------------------------------------------------------
使用集群仪表盘来监控 Hadoop 集群。通过单机 Ambari Web UI 主窗口顶端的 Dashboard 访问集群仪表盘。



2.1 查看集群仪表盘 (Viewing the Cluster Dashboard)
-----------------------------------------------------------------------------------------------------------------------------------------
Ambari Web UI 显示仪表盘页作为主页。使用仪表盘来查看集群的操作状态。

Ambari Web 左侧显示集群当前运行的 Hadoop 服务列表。仪表盘包括 Metrics, Heatmaps, 以及C onfig History 选项卡;默认显示 Metrics 选项卡。在
Metrics 页面上,有多个小程序(widget), 表现 HDP 集群服务的操作状态信息。多数小程序显示一个度量值(metric), 例如,HDFS Disk Usage 表示为一个
负载图表和一个百分数指示。


    ■ 度量小程序及其描述 (Metrics Widgets and Descriptions)
    -------------------------------------------------------------------------------------------------------------------------------------

        ● HDFS metrics
        ---------------------------------------------------------------------------------------------------------------------------------
        HDFS Disk Usage        :分布式文件系统(DFS) 已使用的百分比,包括 DFS 和 non-DFS
        Data Nodes Live        :运转中的 DataNodes 的数量,由 NameNode 报告
        NameNode Heap        :NameNode Java Virtual Machine (JVM) 堆内存使用的百分数。
        NameNode RPC        :潜在 RPC 队列平均水平 (The average RPC queue latency)
        NameNode CPU WIO    :CPU wait I/O 百分比
        NameNode Uptime        :NameNode 正常运行时间计算值(uptime calculation)


        ● YARN metrics (HDP 2.1 or later stacks)
        ---------------------------------------------------------------------------------------------------------------------------------
        ResourceManager Heap    : 以使用的 ResourceManager JVM 堆内存百分比
        ResourceManager Uptime    :ResourceManager uptime
        NodeManagers Live        :运转中的 DataNodes 数量,由 ResourceManager 报告
        YARN Memory                :可用的 YARN 内存百分数(used versus total available)


        ● HBase metrics
        ---------------------------------------------------------------------------------------------------------------------------------
        HBase Master Heap        : 已使用的 NameNode JVM 对内存百分数
        HBase Ave Load            :HBase server 上的平均负载
        HBase Master Uptime        :HBase master uptime
        Region in Transition    :转换中的 HBase regions 数量


        ● Storm metrics (HDP 2.1 or later stacks)
        ---------------------------------------------------------------------------------------------------------------------------------
        Supervisors Live        :运转中的 supervisor 的数量,由 Nimbus Server 报告



2.1.1 扫描操作状态 (Scanning Operating Status)
-----------------------------------------------------------------------------------------------------------------------------------------
Ambari Web 左侧的服务摘要列表列出了当前监控的所有 Apache 组件服务。图标的形状,颜色,以及每个条目左侧的动作指明了每个条目的操作状态:

    Status Indicators
    +---------------------------+-------------------------------+
    | Color                        | Status                        |
    +---------------------------+-------------------------------+
    | 实心绿 (solid green)        | All masters are running        |
    +---------------------------+-------------------------------+
    | 闪烁绿(blinking green)    | Starting up                    |
    +---------------------------+-------------------------------+
    | 实心红 (solid red)        | At least one master is down    |
    +---------------------------+-------------------------------+
    | 闪烁红 (blinking red)        | Stopping                        |
    +---------------------------+-------------------------------+

单击服务名称打开 Services 页面,可以看到有关该服务的更多详细的信息。


2.1.2 从度量小程序查看详细信息 (Viewing Details from a Metrics Widget)
-----------------------------------------------------------------------------------------------------------------------------------------
查看度量更详细的信息,把鼠标悬停在一个 Metrics widget 上:


    ● 要移除一个 widget, 单击白色的 X
    ● 要编辑一个 widget 显示的信息,单击编辑(铅笔)图标



2.1.3 链接到服务 UI (Linking to Service UIs)
-----------------------------------------------------------------------------------------------------------------------------------------
HDFS Links 和 HBase Links widgets 列出 HDP 组件用于链接到更多的 metric 信息,可用的线程栈,日志,以及纯组件 UI. 例如,可以为 HDFS 链接到
NameNode, Secondary NameNode, 和 DataNode 。

单击 More 下拉列表从每个服务可用的链接列表中选择。Ambari Dashboard 包括如下服务的度量的附加链接:

    
    ● HDFS:
    -------------------------------------------------------------------------------------------------------------------------------------
    NameNode UI        :Links to the NameNode UI
    NameNode Logs    :Links to the NameNode logs
    NameNode JMX     :Links to the NameNode JMX servlet
    Thread Stacks     :Links to the NameNode thread stack traces


    ● HBase:
    -------------------------------------------------------------------------------------------------------------------------------------
    HBase Master UI     :Links to the HBase Master UI
    HBase Logs             :Links to the HBase logs
    ZooKeeper Info         :Links to ZooKeeper information
    HBase Master JMX     :Links to the HBase Master JMX servlet
    Debug Dump             :Links to debug information
    Thread Stacks         :Links to the HBase Master thread stack traces
    
    
2.1.4 查看集群范围的 Metrics (Viewing Cluster-Wide Metrics)
-----------------------------------------------------------------------------------------------------------------------------------------    
在 Metrics 选项卡,可以查看如下集群范围的度量值:
    
    Memory usage    : 集群范围的内存使用,包括缓存的(cached),交换的(swapped), 使用的(used), 以及共享的(shared)
    Network usage    : 集群范围的网络利用,包括输入和输出(including in-and-out)
    CPU Usage        : 集群范围的 CPU 信息,包括系统的,用户的及 wait IO (including system, user and wait IO)
    Cluster Load    : 集群范围负载信息,包括节点总数, CPU 总数,运行的进程数量,以及 1-min Load
    
可以自定义显示如下:

    ● 移除一个 widget, 单击白色的 X
    
    ● 放大图表或列出小程序显示的清单,在 widget 上悬停鼠标
    
    ● 移除或添加 metric, 在 widget 联想上选择一个条目
    
    ● 查看图表的大视图,选择放大镜图标。关闭大视图,单击 OK
    
    
    
2.2 修改集群仪表盘 (Modifying the Cluster Dashboard)
-----------------------------------------------------------------------------------------------------------------------------------------



2.2.1 替换一个移除的小程序到表盘 (Replace a Removed Widget to the Dashboard)
-----------------------------------------------------------------------------------------------------------------------------------------
替换一个已经从表盘移除的小程序:

    ① 选择 Metric Actions
    ② 单击 Add
    ③ 选择一个 metric, 例如 Region in Transition
    ④ 单击 Apply



2.2.2 重置表盘 (Reset the Dashboard)
-----------------------------------------------------------------------------------------------------------------------------------------
重置表盘上所有的 widget 显示为默认设置
    
    ① 选择 Metric Actions
    ② 单击 Edit
    ③ 单击 Reset all widgets to default
    
    
    
2.2.3 自定义 metric 显示 (Customizing Metrics Display)
-----------------------------------------------------------------------------------------------------------------------------------------    
虽然不是所有的 widget 都可以被编辑,也可以使用编辑(铅笔)图标来自定义某些 widget 显示 metric

    ① 将鼠标悬停在一个 widget 上
    
    ② 单击 Edit, 自定义 widget 窗口出现
    
    ③ 根据 Customize Widget 中的指导自定义 widget 的外观
    
    ④ 要保存修改并关闭编辑器,单击 Apply
    
    ⑤ 关闭编辑器不保存修改,单击 Cancel
    
    

2.2 查看集群热图 (Viewing Cluster Heatmaps)
-----------------------------------------------------------------------------------------------------------------------------------------
如前所述,Ambari web 主页左侧被切分出一个状态摘要面板,并在顶部有 Metrics, Heatmaps, 和 Config History 选项卡,默认显示 Metrics 选项卡。
当要查看整个集群利用情况的图形表示时,单击 Heatmaps 选项卡,使用简单的颜色代码,称为 heatmap, 提供这类信息。

集群中每个主机表示为一个带颜色的块。将鼠标悬停在主机的颜色块上可以看到该主机更多的信息,在另一窗口上显示有关主机上安装的 HDP 组件的度量值。

在块中显示的颜色表示在一组选定的 metric 单元中的使用率。如果任何确定使用率的必要的数据不可用,这个块显示为 Invalid data. 通过修改 heatmap
默认的最大值解决这个问题,使用 Select Metric 菜单


Heatmaps 支持如下的 metrics :

    Host/Disk Space Used %             : disk.disk_free and disk.disk_total
    Host/Memory Used %                 : memory.mem_free and memory.mem_total
    Host/CPU Wait I/O %             : cpu.cpu_wio
    HDFS/Bytes Read                 : dfs.datanode.bytes_read
    HDFS/Bytes Written                 : dfs.datanode.bytes_written
    HDFS/Garbage Collection Time     : jvm.gcTimeMillis
    HDFS/JVM Heap MemoryUsed         : jvm.memHeapUsedM
    YARN/Garbage Collection Time     : jvm.gcTimeMillis
    YARN / JVM Heap Memory Used     : jvm.memHeapUsedM
    YARN / Memory used %             : UsedMemoryMB and AvailableMemoryMB
    HBase/RegionServer read    request count        : hbase.regionserver.readRequestsCount
    HBase/RegionServer write request count        : hbase.regionserver.writeRequestsCount
    HBase/RegionServer compaction queue size    : hbase.regionserver.compactionQueueSize
    HBase/RegionServer regions                     : hbase.regionserver.regions
    HBase/RegionServer memstore    sizes            : hbase.regionserver.memstoreSizeMB



3 管理主机 (Managing Hosts)
-----------------------------------------------------------------------------------------------------------------------------------------
作为集群系统管理员或集群操作员,需要知道每部主机的操作状态。也需要知道哪部主机有问题需要处理。可以使用 Ambari Web Hosts 页面来管理多个
Hortonworks Data Platform (HDP) 组件,例如运行在整个集群上 DataNodes, NameNodes, NodeManagers, 和 RegionServers. 举例来说,可以重启所有的
DataNode 组件,可选地控制滚动重启任务。Ambari Hosts 可以过滤进行管理的主机组件选取,基于操作状态,主机健康状况,以及定义的主机分组。


3.1 理解主机状态 (Understanding Host Status)
-----------------------------------------------------------------------------------------------------------------------------------------
可以在 Ambari Web Hosts 页面查看集群上单个主机的状态。主机以 fully qualified domain name (FDQN)的形式列出,并附有一个带有颜色的图标指示出
主机的操作状态。

    ● 红色三角形    :该主机上至少有一个 master 组件挂掉了,鼠标悬停图标上查看一个工具提示列出受影响的组件。

    ● 橘色            :该主机上至少有一个 slave 组件挂掉了,鼠标悬停图标上查看一个工具提示列出受影响的组件。

    ● 黄色            : Ambari Server 没有从该主机上收到心跳包超过 3 分钟。

    ● 绿色            :正常运行状态。

    ● Maintenace Mode    :黑色 "医药箱" 图标指出一部主机处于维护模式。
    
    ● Alert            :红色方框带有一个数字指明该主机上的警报数量。

红色图标覆盖橘色图标,橘色图标覆盖黄色图标。换句话说,一部主机有 master component 宕机附有一个红色图标,即便它可能也有 slave component 和
连接问题。主机处于维护模式或遇到警报,图标出现在主机名右侧。



3.2 查找主机页面 (Searching the Hosts Page)
-----------------------------------------------------------------------------------------------------------------------------------------
可以查找完全主机列表,通过主机名,组件属性,以及组件操作状态过滤查找。也可以通过关键字查找,简单地在搜索框内输入一个单词。

主机搜索工具在主机列表上方

    ① 单击搜索框
        
        出现可用的搜索类型,包括:
        
        通过主机属性搜索    :通过 host name, IP, host status 以及其他属性
        Search by Service    :通过给定一个服务,查找运行此服务组件主机
        Search by Component    :查找运行某组件处于给定状态的主机,例如 started, stopped, maintenance mode, 等等。
        Search by keyword    :在搜索框输入任何单词描述要查找的内容,这成为一个文本过滤器。
    
    ② 单击搜索类型
    
        出现一个可用选项的列表,取决于在第一步中的选择
        例如,如果选择单击了 Service, 当前服务出现
    
    ③ 单击一个选项
    
        匹配当前搜索条件的列表显示到 Hosts 页面
    
    ④ 单击下一选项再次调整搜索



3.3 执行主机级别的动作 (Performing Host-Level Actions)
-----------------------------------------------------------------------------------------------------------------------------------------
利用 Actions UI 控件对集群主机执行动作。可以执行的动作(Actions)由一个一上的操作(operation)组成,可能在多个主机上,也称为批量操作(bulk
operations).

Actions 控件由三个顺序的菜单精确定义(to refine your search) 的工作流组成:一个主机菜单,一个基于主机选择的对象菜单,基于对象选择的动作菜单。

例如,如果要重启集群中任何存在 RegionServers 主机的 RegionServers 服务组件:

    ① 在 Hosts 页面,选择或查找运行 RegionServer 到主机:

    ② 利用 Actions 控件,单击 Fitered Hosts > RegionServers > Restart

    ③ 单击 OK 来启动选定的操作

    ④ 可选地,监控后台操作,诊断或处理重启操作故障



3.4 管理主机上的组件 (Managing Components on a Host)
-----------------------------------------------------------------------------------------------------------------------------------------
管理特定主机上运行的组件,在 Hosts 页面列出的 FDQN 中单击一个,那个主机的页面出现,单击 Summary 选项卡显示组件面板列出该主机安装的所有组件

要管理一部主机上所有的组件,可以利用显示窗口右上角的 Host Actions 控件来对所选主机上安装的所有组件 start, stop, restart, delete, 或
turn on maintenance mode

另一方面,可以管理单个组件,利用在组件面板内显示在每个单独组件旁边的下拉菜单。每个组件的菜单标示了组件当前的操作状态。打开菜单,显示可用的
管理选项,基于标示的状态。例如,可以 HDFS 的 DataNode 组件执行 decommission, restart, or stop 动作



3.5 退役一个 Master 或 Slave (Decommissioning a Master or Slave)
-----------------------------------------------------------------------------------------------------------------------------------------
退役是支持从集群中移除组件和它们的主机的过程。在移除主机或从服务上移除主机之前,必须退役运行在该主机上的 master 或 slave 服务。退役有助于
保护数据丢失或服务损坏。退役对于下列组件类型可用:

    ● DataNodes
    ● NodeManagers
    ● RegionServers
    
退役执行下列任务:

    对于 DataNodes        :安全地复制 HDFS 数据到集群中其他的 DataNodes
    对于 NodeManagers    :停止接受新作业的请求并停止组件
    对于 RegionServers    :打开 drain mode 并停止组件


3.5.1 退役一个组件 (Decommission a Component)
-----------------------------------------------------------------------------------------------------------------------------------------
    
    ① 利用 Ambari Web,浏览到 Hosts 页面

    ② 找到并单击组件驻留的主机 FQDN

    ③ 使用 Actions 控件,单击 Selected Hosts > DataNodes > Decommission

    过程中 UI 显示退役中(Decommissioning)状态
    退役过程完成时,退役状态变为已退役 (Decommissioned)



3.6 删除一个组件 (Delete a Component)
-----------------------------------------------------------------------------------------------------------------------------------------

    ① 利用 Ambari Web,浏览到 Hosts 页面
    
    ② 找到并单击组件驻留的主机 FQDN
    
    ③ 在 Components 中, 找到一个要退役的组件
    
    ④ 如果该组件的状态是 Started, 停止它
    
        一个退役的 slave 组件可以在已退役状态重启
        
    ⑤ 从组件下拉菜单中单击 Delete
    
        删除一个 slave 组件,如一个 DataNode 不会自动通知 master 组件,如 NameNode 从它的排除列表中移除那个 slave 组件。添加一个已删除的
        组件回到集群表现出如下问题,从 master 的视角观察,添加进来的 slave 保持在退役状态。重启 master 组件可排除故障
        
    ⑥ 让 Ambari 识别并监控余下的组件,重启服务。


3.7 从集群删除一个主机 (Deleting a Host from a Cluster)
-----------------------------------------------------------------------------------------------------------------------------------------
删除一个主机从集群中移除该主机

先决条件:在删除一部主机之前,必须完成如下前提:
    
    ● 停止该主机上运行的所有组件
    ● 退役运行在该主机上的所有 DataNode
    ● 迁移该主机上所有的 master 组件,例如 NameNode 或 ResourceManager
    ● 关闭主机的维护模式(Maintenance Mode)

步骤:
    ① 利用 Ambari Web,浏览到 Hosts 页面, 找到并单击要删除的主机 FQDN

    ② 在 Host-Details 页面,单击 Host Actions

    ③ 单击 Delete



3.8 设置维护模式 (Setting Maintenance Mode)
-----------------------------------------------------------------------------------------------------------------------------------------
在一个 Ambari-managed 集群上,当要专注于执行硬件或软件维护,修改配置设置,处理故障,退役,或移除集群节点时,设置维护模式可以阻止警报,并
去掉在特定服务,组件,以及主机上的批操作(omit bulk operations)。

显示设置一个服务的维护模式,隐含地设置了运行此服务的组件和主机的维护模式。如果维护模式阻止了要执行在服务,组件,或主机上的批操作,可以在
维护模式中显式地启动和停止服务、组件、或主机。

下面几节提供了一个案例,如何在有三个节点,Ambari 管理集群上使用维护模式。描述如何显式地打开(turn on) HDFS 服务的维护模式,主机,以及隐式地
打开服务、组件,以及主机的维护模式。

3.8.1 设置服务维护模式 (Set Maintenance Mode for a Servicee)
-----------------------------------------------------------------------------------------------------------------------------------------
    
    ① 在 Services 页面,选择 HDFS
    ② 选择 Service Actions, 然后选择 Turn On Maintenance Mode
    ③ OK 确认

    注意,在 Services Summary, NameNode 和 SNameNode 组件的 Maintenance Mode 打开



3.8.2 设置主机维护模式 (Set Maintenance Mode for a Host)
-----------------------------------------------------------------------------------------------------------------------------------------
使用 Host Actions 控件设置主机维护模式
步骤:

    ① Hosts 页,选择主机 FDQN
    ② 选择 Host Actions, 然后选择 Turn On Maintenance Mode.
    ③ OK 确认

    注意,主机上所有的组件打开维护模式


使用 Actions 控件设置主机维护模式
步骤:
    ① Hosts 页,选择主机 FDQN
    ② 在 Actions > Selected Hosts > Hosts, 选择 Turn On Maintenance Mode.
    ③ OK 确认


3.8.3 何时设置维护模式 (When to Set Maintenance Mode)
-----------------------------------------------------------------------------------------------------------------------------------------
设置维护模式的四个一般场景为:执行维护,测试配置修改,测底删除一个服务,处理警报。

    
    ■ 要在一部主机上执行硬件或操作系统维护
    -------------------------------------------------------------------------------------------------------------------------------------
    执行维护时,要能够做如下操作:
        
        ● 阻止这部主机上所有组件生产警报
        ● 能够停止、启动、以及重启主机上的每一个组件
        ● 阻止该主机 host-level 或 service-level 的 starting, stopping, 或 restarting 组件批操作
        
    为了达成这些目标,显示设置主机的维护模式,将这部主机上所有的组件隐式地设置为维护模式。


    ■ 要测试一个服务配置的修改。应该停止、启动、以及重启服务来测试重启是否激活了配置的变化
    -------------------------------------------------------------------------------------------------------------------------------------
    要测试配置信息的变化,要确保如下条件:
    
        ● 这个服务上没有任何组件生成警报
        ● 这个服务上没有 host-level 货 service-level 的批操作启动、停止、或 重启组件
    
    为了达成这些目标,显示设置服务维护模式。将一个服务设置为维护模式隐式地为该服务的所有组件打开维护模式





    ■ 要停止一个服务
    -------------------------------------------------------------------------------------------------------------------------------------
    要完全停止一个服务,需要确保如下条件:
    
        ● 这个服务没有生成 warnings
        ● 没有由 host-level 的动作或批操作导致的组件启动,停止,或重启

    为了达成这些目标,显示为服务设置维护模式。将一个服务设置为维护模式隐式地为该服务的所有组件打开维护模式


    ■ 要停止一个主机组件生成警报
    -------------------------------------------------------------------------------------------------------------------------------------
    要停止一个主机组件生成警报,必须能够做到如下内容:

        ● 检查组件
        ● 访问该组件生成的 warnings 和 alerts

    为了达成这些目标,为主机组件显示设置维护模式。将主机组件设置为维护模式,阻止 prevents host-level 和 service-level 批操作 starting 或
    restarting 该组件。可以在维护模式开启状态系显示重启该组件。



3.9 向集群添加主机 (Add Hosts to a Cluster)
-----------------------------------------------------------------------------------------------------------------------------------------

    ① 浏览到 Hosts 页面然后选择 Actions > +Add New Hosts

        Add Host 向导提供一系列提示类似于 Ambari 集群安装向导(Ambari Cluster Install wizard.)
        
    ② 跟随提示,提供相关信息,继续完成向导
    
    
3.10 建立机架感知 (Establishing Rack Awareness)
-----------------------------------------------------------------------------------------------------------------------------------------
有两种方法建立机架感知。要么使用 Ambari 设置 rack ID, 或者利用自定义拓扑脚本(topology script) 设置 rack ID.



3.10.1 利用 Ambari 设置机架 ID (Set the Rack ID Using Ambari)
-----------------------------------------------------------------------------------------------------------------------------------------
通过设置 Rack ID, 使 Ambari 为主机管理机架信息,包括在 heatmaps 中通过 Rack ID 显式主机,使用户能过滤并在 Hosts 页面通过 Rack ID 查找主机

如果集群中安装了 HDFS, Ambari 通过使用拓扑脚本将 Rack ID 信息传递给 HDFS. Ambari 生成的拓扑脚本在 /etc/hadoop/conf/topology.py 位置,并自动
设置 core-site 中的 net.topology.script.file.name 属性。这个脚本读取一个 Ambari 自动生成的 /etc/hadoop/conf/topology_mappings.data 映射文件。
当你在 Ambari 中修改 Rack ID 分配时,这个映射文件会在推进(push out) HDFS 配置信息时更新。HDFS 利用这个拓扑脚本获得 DataNode 主机的机架信息。

有两种方法利用 Ambari Web 设置 Rack ID: 对于多主机,使用 Actions, 或者对于单个的主机,使用 Host Actions


    ■ 为多个主机设置 Rack ID
    -------------------------------------------------------------------------------------------------------------------------------------
    步骤:
        ① 使用 Actions, 单击 selected, filtered, 或 all hosts
        ② 单击 Hosts.
        ③ 单击 Set Rack
        
        
        
    ■ 在单个主机上设置 Rack ID
    -------------------------------------------------------------------------------------------------------------------------------------        
    步骤:    
        
        ① 浏览到 Host 页面
        ② 单击 Host Actions
        ③ 单击 Set Rack



3.10.2 利用自定义拓扑脚本设置机架 ID (Set the Rack ID Using a Custom Topology Script)
-----------------------------------------------------------------------------------------------------------------------------------------
如果不想 Ambari 管理主机到机架信息,可以使用自定义到拓扑脚本。要做到这一点,必须创建自己的拓扑脚本管理分布脚本到所有主机。注意,也因为
Ambari 不能访问到主机机架信息,Ambari Web 中的 heatmaps 不能显示机架。

使用自定义脚本设置 Rack ID:
步骤:
    ① 浏览到 Services > HDFS > Configs
    ② 修改 net.topology.script.file.name 为自己的自定义拓扑脚本
    
        如,/etc/hadoop/conf/topology.sh
        
    ③ 分布拓扑脚本到所有主机上
    
    现在,可以为 Ambari 之外的脚本管理机架映射信息了。


    
*
*
*

4. 管理服务 (Managing Services)
-----------------------------------------------------------------------------------------------------------------------------------------
利用 Ambari Web UI 主页的 Services 选项卡监控和管理运行于集群上选定的服务。
集群上安装的所有服务列于左侧的面板上:



4.1 启动和管理所有服务 (Starting and Stopping All Services)
-----------------------------------------------------------------------------------------------------------------------------------------
同时启动或停止列出的所有服务,单击 Actions 然后单击 Start All 或 Stop All:



4.2 显示服务操作摘要 (Displaying Service Operating Summary)
-----------------------------------------------------------------------------------------------------------------------------------------
从服务列表上单击服务的名称,显示出 Summary 选项卡含有关于此服务操作状态的基本信息,包括警报。要刷新监控面板并显示另一个服务的信息,可以在
服务列表上单击一个不同的服务名称。

注意服务名称后面带有颜色的图标,指出服务的操作状态和该服务生成的警报。可以单击一个 View Host 链接来查看组件和运行选定组件的主机。



4.2.1 警报和健康检查 (Alerts and Health Checks)
-----------------------------------------------------------------------------------------------------------------------------------------
在 Summary tab, 可以单击 Alerts 来查看所有健康检查列表以及所选中服务的状态,重要警报首先显示。要查看警报定义,可以单击列表中每个警报消息的
文本标题来查看警报定义。例如单击 HBase > Services > Alerts > HBase Master Process



4.2.2 修改服务表盘 (Modifying the Service Dashboard)
-----------------------------------------------------------------------------------------------------------------------------------------
取决于所选择的服务,Summary tab 包含一个 Metrics 表盘,默认含有重要的服务度量的监控

如果安装了 Ambari Metrics 服务并使用 Apache HDFS, Apache Hive, Apache HBase, 或 Apache YARN, 可以自定义度量表盘。可以向 Metrics 表盘添加
或从表盘上移除 widget, 并可以创建新的 widget 或删除 widget。widget 可以是对你或你的表盘私有的(private), 或者可以共享到 Widget Browser 库。

必须已经安装 Ambari Metrics 服务才能查看,创建,以及自定义 Metrics 表盘。



4.2.2.1 添加或移除一个 Widget (Adding or Removing a Widget)
-----------------------------------------------------------------------------------------------------------------------------------------
要在 HDFS, Hive, HBase, 或 YARN 服务的 Metrics 表盘中添加或移除一个 widget:

    ① 或者单击 + 号图标启动 Widget Browser, 或者从 Actions > Metrics 单击 Widget Browser
    ② Widget Browser 显示可以添加到服务表盘中的 widget, 包括已经包含在表盘中的,共享的 widget, 以及已创建的 widget.
    ③ 如果只要显示自己创建的 widget,选择 “Show only my widgets” 复选框
    ④ 如果要移除一个添加到表盘中的 widget, 单击它的移除图标
    ⑤ 如果要添加一个还没有添加进来的可用 widget, 单击 Add

    

4.2.2.2 创建一个 Widget (Creating a Widget)
-----------------------------------------------------------------------------------------------------------------------------------------
    ① 单击 + 图标启动 Widget Browser
    ② 或者单击 Create Widget 按钮,或者在 Actions 菜单上单击 Create Widget
    ③ 选择创建的 widget 类型
    ④ 取决于服务和 widget 类型,可以选择度量和使用的操作符创建表达式来咋 widget 中显式
        在构建表达式时会显式 widget 的预览。
    ⑤ 输入 widget 的名称和描述
    ⑥ 可选地,选择共享此 widget
        共享 widget 使这个 widget 对集群中所有用户可用。一个 widget 共享之后,其他 Ambari Admins 或 Cluster Operators 可以修改或删除这个
        widget, 这是不可恢复的。


4.2.2.3 删除一个 Widget (Deleting a Widget)
-----------------------------------------------------------------------------------------------------------------------------------------

    ① 单击 + 图标启动 Widget Browser, 或者从 Actions > Metrics 单击 Widget Browser
    ② Widget Browser 显示可以添加到服务表盘中的 widget, 包括共享的和已创建的 widget
    ③ 如果一个 widget 已添加到表盘,它会显式为 Added, 单击它可以移除
    ④ 对于自己创建的 widget, 可以选择 More... 选项删除
    ⑤ 对于共享的 widget, 如果是 Ambari Admin 或 Cluster Operator, 也会有选项删除
    
        删除一个共享的 widget 会从所有用户删除,此过程不可逆

4.2.2.4 导出 Widget 图形数据 (Export Widget Graph Data)
-----------------------------------------------------------------------------------------------------------------------------------------
可以利用 Export 能力从 widget 图表中导出度量数据
    
    ① 将鼠标指针悬停在 widget 图表上面,单击图表放大显示,显示 Export 图标
    ② 单击图标并制定 CSV 或 JSON 格式
    
    
4.2.2.5 设置显示时区 (Setting Display Timezone)
-----------------------------------------------------------------------------------------------------------------------------------------    
可以设置时区用于显示 widget 图表中的度量数据    
    
    ① Ambari Web 中,单击用户名病选择 Settings
    ② 在 Locale 节,选择 Timezone.
    ③ 单击 Save

    Ambari Web UI 重新载入并使用新设置的时区显示图表。


4.3 添加服务 (Adding a Service)
-----------------------------------------------------------------------------------------------------------------------------------------
Ambari 安装向导默认安装所有可用的 Hadoop 服务。可以在初始安装时仅选择部署一部分服务,然后在需要时安装其他服务。例如,有些有些用户在初始
安装时只选择安装核心 Hadoop 服务。 Actions 控件的 Add Service 选项可以在不中断 Hadoop 集群操作情况下部署其他服务。当部署了所有可用当服务后,
Add Service 控件显示为无效,表明它不可用。

添加服务,下面步骤展示了向 Hadoop 集群添加 Apache Falcon 服务的例子:

    (1) 单击 Actions > Add Service
        打开 Add Service wizard
    
    (2) 单击 Choose Services
        Choose Services 面板显示,已激活的服务显示为绿色背景并且其复选框被选中。
        
    (3) 在 Choose Services 面板上,选择要添加服务前面的复选框,然后单击 Next
    
    (4) 在 Assign Masters 页面,确认默认的主机分配。
        Add Services Wizard 指示所选服务的 master 组件安装的主机。另一方面,利用下拉菜单选择不同的主机,让所选服务的 master 组件添加到该
        主机上。
    
    (5) 如果要添加的服务要求 slaves 和 clients, 在 Assign Slaves and Clients 页,接受默认的 slave 和 client 组件分配的主机,单击 Next
        另一方面,选择要安装 slave 和 client 组件的主机,然后单击 Next
    
    (6) 在 Customize Services, 接受默认的配置属性
        另一方面,如有必要,编辑默认的配置属性值。选择 Override 为此服务创建一个配置组,然后,选择 Next
        
    (7) 在 Review 页,验证配置设置符合期望,然后单击 Deploy
    
    (8) 监控 安装,启动,以及测试服务的过程,当成功结束时,单击 Next
    
    (9) 当看到安装结果的摘要显示时,单击 Complete
    
    (10) 查看并确认建议的配置修改
    
    (11) 重新启动其他组件,因新增加了服务,其配置已过时。



4.4 执行服务动作 (Performing Service Actions)
-----------------------------------------------------------------------------------------------------------------------------------------
通过执行服务动作来管理集群上一个选定的服务。在 Services tab, 单击 Service Actions 然后单击一个选项。可用的选项取决于选定的服务。例如,HDFS
服务动作,单击 Turn On Maintenance Mode 会阻止该服务生成的警报和状态变化指示,但允许对该服务上启动,停止,重启,迁移,或执行维护任务。


4.5 滚动重启 (Rolling Restarts)
-----------------------------------------------------------------------------------------------------------------------------------------
当重启多个服务、组件、或主机时,使用 rolling restarts 来分布任务。一个滚动重启,使用一个批次序列停止并启动多个运行中的 slave 组件,例如
DataNodes, NodeManagers, RegionServers, or Supervisors .

    重要提示:
        DataNodes 的滚动重启只能在集群维护期间执行。
        
可以设置滚动重启的的参数值以控制服务的数量,间隔时间,容错限度,以及在大型集群上重启组件数量的限制。

要运行一个滚动重启,执行下列步骤:

    ① 在 Service 页面左侧的服务列表上,单击一个服务名称
    ② 在服务的 Summary 页面,单击一个链接,例如 DataNodes 或 RegionServers, 任何要重启的组件
    
        Hosts 页面列出集群上存在有所选组件的主机名称
        
    ③ 利用 host-level 的 Actions 菜单,单击一个 slave 组件的名称,然后单击 Restart.
    ④ 为 Rolling Restart Parameters 查看并设置值
    ⑤ 可选地,重置标志来重启仅修改了配置的组件
    ⑥ 单击 Trigger Restart

    触发重启之后,应该监控后台操作的过程。



4.5.1 设置滚动重启参数 (Setting Rolling Restart Parameters)
-----------------------------------------------------------------------------------------------------------------------------------------
选择重启从属组件时,可以利用参数来控制如何重启组件滚动。参数值默认为集群上组件总数的 10%, 例如,对于在有三个节点的集群中的组件, 一个滚动
重启的默认设置是一次重启一个组件,重启间隔是等待 2 分钟,如果只有一个出现故障就继续,并重启运行此服务的所有组件。所有参数输入整数,非零值

Batch Size        :包含在每次重启批次里的组件数量
Wait Time        :每个批次组件排队等候的数据(秒单位)
Tolerate up to x failures    :跨所有批次,在挂起重启并不在排队批次之前,重启失败容许的总数。


4.5.2 终止滚动重启 (Aborting a Rolling Restart)
-----------------------------------------------------------------------------------------------------------------------------------------
要终止批次中将来的滚动重启,单击 Abort Rolling Restart





4.6 监控后台操作 (Monitoring Background Operations)
-----------------------------------------------------------------------------------------------------------------------------------------
可以利用 Background Operations 窗口监控一个由多个操作组成的任务进度和完成情况,例如重启组件。当运行这样一个任务时,Background Operations
窗口默认是打开的。例如监控一个滚动重启的进度,单击 Background Operations 窗口中的元素:

    ① 单击每个操作的右箭头显示每一部主机上的重启操作进度
    ② 重启操作完成后,可以单击右箭头或主机名来查看日志文件以及选定主机上生成的错误信息
    ② 可选地,可以利用 Background Operations 窗口右上角的 Copy, Open, or Host Logs 图标来复制,打开,或查看操作日志。

也可以选择 Background Operations 窗口底部的复选框来在将来执行任务时隐藏该窗口。


4.7 移除一个服务 (Removing A Service)
-----------------------------------------------------------------------------------------------------------------------------------------
    
    重要提示:
        移除一个服务是不可逆的并且所有的配置历史将丢失


    步骤:
    ① 在 Services tab 页面的左侧面板,单击服务名称
    ② 单击 Service Actions > Delete.
    ③ 提示时,移除任何依赖服务
    ④ 提示是,停止服务的所有组件
    ⑤ 确认移除
    
    服务停止后,必须确认移除
    
    
4.8 操作审计 (Operations Audit)
-----------------------------------------------------------------------------------------------------------------------------------------    
当利用 Ambari 执行操作时,例如用户登录或退出,停止或启动服务,添加或移除服务, Ambari 会在一个审计日志中创建一条内容。通过读取审计日志,
可以确定谁执行了操作,操作是什么时间发生的,以及其他操作特定的信息。可以在 Ambari server 主机上找到 Ambari 审计日志:

    /var/log/ambari-server/ambari-audit.log
    
当修改了一个服务的配置信息,Ambari 在审计日志中创建一条内容,并创建一个特殊的日志文件:

    ambari-config-changes.log
    
通过读取配置修改日志,可以发现每次配置修改更多的信息,例如:

    2016-05-25 18:31:26,242 INFO - Cluster 'MyCluster' changed by: 'admin';
    service_name='HDFS' config_group='default' config_group_id='-1' version='2'
    
    
    
4.9 使用快速链接 (Using Quick Links)
-----------------------------------------------------------------------------------------------------------------------------------------    
选择 Quick Links 选项可以访问选定服务的一些额外的信息源,例如 HDFS 的 Quick Links 选项包括如下内容:

    NameNode JMX
    NameNode Logs
    Thread Stacks
    NameNode UI
    
Quick Links 不是对每个服务都可用    
    
    
4.10 刷新 YARN 容量调度器 (Refreshing YARN Capacity Scheduler)
-----------------------------------------------------------------------------------------------------------------------------------------
修改 Capacity Scheduler 配置之后,如果没有进行破坏性修改配置信息,YARN 可以不需要重启 ResourceManager 刷新队列。如果执行了破坏性修改,例如
删除一个队列,刷新操作会失败并输出如下信息:Failed to re-init queues . 当进行破坏性修改时,必须执行 ResourceManager 重启来使容量调度器的
修改生效。

刷新 Capacity Scheduler, 执行如下步骤:

    ① 在 Ambari Web, 浏览到 Services > YARN > Summary.
    ② 单击 Service Actions, 然后单击 Refresh YARN Capacity Scheduler
    ③ 确认要执行此操作

刷新操作提交给 YARN ResourceManager    
    
    
    
4.11 管理 HDFS (Managing HDFS)
-----------------------------------------------------------------------------------------------------------------------------------------



4.11.1 重均衡 HDFS (Rebalancing HDFS)
-----------------------------------------------------------------------------------------------------------------------------------------
HDFS 提供了一个 a “balancer” 工具帮助均衡集群中数据块跨 DataNodes 分布。启动均衡进程,执行下列步骤:

    ① 在 Ambari Web 中,浏览到 Services > HDFS > Summary
    ② 单击 Service Actions, 然后单击 Rebalance HDFS.
    ③ 输入 Balance Threshold 值作为磁盘容量到百分比
    ④ 单击 Start

可以通过打开 Background Operations 窗口监控或取消重均衡进程。




4.11.2 调整垃圾回收 (Tuning Garbage Collection)
-----------------------------------------------------------------------------------------------------------------------------------------
Concurrent Mark Sweep (CMS) garbage collection (GC) 进程包括一系列启发式规则用于触发垃圾回收。这使得垃圾回收是不可预测的并趋向于延迟回收,
直到抵达容量水平,产生一个 Full GC 错误(有可能中断所有进程)

Ambari 在集群部署期间设置了很多属性的默认值。在 hadoop-env 模板中到 export HADOOP_NameNode_Opts= 子句,有两个参数影响 CMS GC 进程,有如下
的默认设置:

    ● -XX:+UseCMSInitiatingOccupancyOnly
    阻止 使用 GC 启发
        
    ● -XX:CMSInitiatingOccupancyFraction=<percent>
    告知 Java VM 何时 CMS 收集器被触发
    如果这个值设置得过低,CMS 收集器运行过于频繁;如果设置过高,CMS 收集器触发得太晚,并且可能发生 concurrent mode failure. 默认设置
    -XX:CMSInitiatingOccupancyFraction 的值为 70, 意味着应用程序应该利用少于 70% 的容量。

通过修改 NameNode CMS GC 参数来调整垃圾回收,执行如下步骤:

    ① 在 Ambari Web, 浏览到 Services > HDFS.
    ② 打开 Configs tab, 并浏览到 Advanced > Advanced hadoop-env
    ③ 编辑 hadoop-env 模板
    ④ 保存配置并有提示出现,重启



4.11.3 自定义 HDFS 主目录 (Customizing the HDFS Home Directory)
-----------------------------------------------------------------------------------------------------------------------------------------
默认情况下,HDFS 的用户主目录为 /user/<user_name>. 可以利用 dfs.user.home.base.dir 属性自定义 HDFS 主目录

    ① 在 Ambari Web, 浏览到 Services > HDFS > Configs > Advanced.
    ② 单击 Custom hdfs-site, 然后单击 Add Property
    ③ 在弹出到 Add Property 中,添加如下属性:
    
        dfs.user.home.base.dir=<home_directory>
    
    ④ 单击 Add, 然后在提示是,保存新配置病重启
    



4.12 在 Storm 环境内管理 Atlas (Managing Atlas in a Storm Environment)
-----------------------------------------------------------------------------------------------------------------------------------------
在 Ambari 中更新 Apache Atlas 配置设置时,Ambari 标记此服务要求重启。要重启这些服务,执行如下步骤:

    ① 在 Ambari Web, 单击 Actions 控件
    ② 单击 Restart All Required

    提示:
        Apache Oozie 在一个 Atlas 配置更新后要求重启,但在 Ambari 中可能没有标记为要求重启。如果 Oozie 没有包含进来,执行如下步骤重启 Oozie:
        
        ① 在 Ambari Web, 在服务摘要面板单击 Oozie
        ② 单击 Service Actions > Restart All.

    

4.13 启用 Oozie UI (Enabling the Oozie UI)
-----------------------------------------------------------------------------------------------------------------------------------------
Ext JS 是 GPL 许可证的软件,并且不再包含在 HDP 2.6 中。因此 Oozie WAR 文件没有构建到 Ext JS-based 用户接口程序中,除非 Ext JS 手动安装到
Oozie server. 如果使用 Ambari 2.6.1.3 添加 Oozie 到 HDP2.6.4 或更高版本,默认没有 Oozie UI 可用。如果想要 Oozie UI,必须手动安装 Ext JS
到 Oozie server 主机。在重启操作期间,Ambari 重构这个 Oozie WAR 文件并包含 Ext JS-based Oozie UI

步骤:
    ① 登录到 Oozie Server 主机
    ② 下载并安装 Ext JS 包
        
        CentOS RHEL Oracle Linux 7:
        wget http://public-repo-1.hortonworks.com/HDP-UTILS-GPL-1.1.0.22/repos/centos7/extjs/extjs-2.2-1.noarch.rpm
        rpm -ivh extjs-2.2-1.noarch.rpm
    
    ③ 移除如下文件:
    
        rm /usr/hdp/current/oozie-server/.prepare_war_cmd
        
    ④ 在 Ambari UI 上重启 Oozie Server
    

    Ambari 会重构 Oozie WAR 文件


参考:

        Ambari 操作 (Ambari Operations) 之一

        Ambari 操作 (Ambari Operations) 之二

        Ambari 操作 (Ambari Operations) 之三

        Ambari 操作 (Ambari Operations) 之四

        Ambari 操作 (Ambari Operations) 之五 

        Ambari 操作 (Ambari Operations) 之六



猜你喜欢

转载自blog.csdn.net/devalone/article/details/80781652