Hadoop Manager

概述

Hadoop Manger是BMR产品为用户提供的细粒度hadoop管理平台,提供集群监控、服务管理、hadoop多租户管理功能。

登录系统

  1. 选择“产品服务>数据分析>百度MapReduce>集群”,进入集群列表页面。

    说明:若当前没有可用集群,请先创建,创建集群参照管理集群

  2. 点击集群列表“操作”一栏的“管理”按钮,进入到登录页面。

  3. 如下图所示,输入当前集群的管理员用户名和管理员密码,其中,管理员用户是root,管理员密码是用户创建集群时设定的。

  4. 登录后,进入到Hadoop Manager系统的登录界面,如下图所示。系统包括系统管理员、普通用户两种角色的用户。

    说明:

    • 系统管理员:系统默认自带账户/密码为admin/admin的管理员。为了安全起见,建议管理员登录系统后,立即修改登录密码。另外,在添加用户时,可以添加角色为系统管理员的用户,权限跟默认自带的系统管理员相同。
    • 普通用户:系统管理员在Hadoop Manager系统中进行添加和管理普通用户的账户。

    image.png

  5. 登录后,进入到Hadoop Manager的页面中。包括集群监控、服务管理、主机列表、多租户管理以及用户管理等。

集群监控

如下图所示,点击集群监控,即可获取集群关键指标的监控信息,可根据指标筛选,和时间范围来获取特定指标信息。

说明:

  • CPU:分别包括CPU系统、CPU用户、CPU空闲三项指标的平均占比值的走势。
    计算公式(以CPU系统为例):(主机1的CPU系统占比+主机2的CPU系统占比+……+主机N的CPU系统占比)/N
  • 集群负载:包括集群每分钟内系统平均负载和每分钟内运行的平均进程数的走势。
  • 集群内存:包括集群使用总量、共享内存总量、内存总量、缓存内存总量、空闲内存总量、内核缓存总量的走势。
  • 集群网络:包括集群单位时间内网络输入字节总数、单位时间内网络输出字节总数的走势。
  • HDFS磁盘使用:包括HDFS磁盘总量、磁盘使用量的走势。
  • Namenode堆内存:包括namenode堆内存总量、使用量的走势。
  • Yarn内存:包括yarn内存中的已使用内存总量、可用内存总量的走势。

服务管理

服务列表页

用户可在该页面查看当前集群已安装服务的当前状态、组件数量、上次操作时间,并可以根据需要对某个服务进行启动、停止、重启等操作。

说明:

  • 某个服务的配置项存在新的变更时,需要重启后配置变更才生效。服务列表中提示该服务需要重启(例如上图中的YARN服务)。
  • 每次重启或者停止某个服务时,该服务的所有组件处于不可操作的状态。

服务详情页

以HDFS服务的服务详情页为例。

组件列表中,展示当前服务的所有组件的状态以及数量,用户可以对任一组件进行启动、停止、重启等操作。

说明:
每次重启或者停止某个组件时,该服务的其他组件处于不可操作的状态。

部署列表页中,可以对服务组件的某个实例进行启停操作,例如HDFS的DATANODE组件会安装在多个主机,可以选择某台机器的DATANODE进行重启。

监控页面中,可以看到该HDFS服务的一些关键指标监控,例如磁盘,rpc延迟等。

同时,服务监控页面也支持管理项管理,用户可以选择显示哪些监控项。

配置页面中,可以选择性的修改HDFS的配置,例如修改HDFS的hdfs-site.xml配置中的blocksize。

说明:
暂不支持对Hive参数的配置修改。

提交已修改的配置时,需要填写本次修改的备注,并进行提交。可以在操作记录中查看每次提交记录的备注。

如下图,点击右上角的操作记录,进入操作记录页,列表中可以查看所有操作的审计。由于服务启停耗时较多,操作不会立即执行完,操作列表中可以观察执行状态。

主机监控

主机监控显示当前集群的所有主机信息。包括主机规格、磁盘使用率等信息;主机详情页包括主机的监控数据。

  1. 选择“主机列表”,进入主机管理界面,查看到集群所有的主机实例,包括主机名、内网IP、RAM、磁盘容量、规格等属性信息。

    说明:

    • 当某个主机存在报警信息时,会在主机名称右侧出现报警提示的图标,点击图标可查看报警信息。
    • 当主机磁盘磁盘达到配置告警值时,磁盘使用率列会变红。
  2. 点击某主机名,跳转到该主机的监控页面,包括cpu、磁盘、负载、内存、网络、进程数等指标项,用户可根据时间范围获取相应指标的历史走势数据。

    说明:

    • CPU:分别包括CPU系统、CPU用户、CPU空闲、CPU I/O idle空闲四项指标的占比值的走势。
    • 磁盘:包括磁盘总量和磁盘剩余量的走势。
    • 负载:包括主机1分钟系统负载、5分钟系统负载和15分钟系统负载的走势。
    • 内存:包括本机内存总量、内存已使用量、内存剩余量、内核缓存总量的走势。
    • 网络:包括主机单位时间内网络输入字节总数、输入数据包总数和单位时间内网络输出字节总数、输出数据包总数的走势。
    • 进程数:包括主机的总进程数以及当前正在运行的进程总数的走势。

多租户管理

资源管理

点击“资源管理”选项,进入到资源管理页面。资源管理包括Yarn资源队列管理、HDFS存储资源管理。

Yarn

在资源管理页面的“Yarn”页面,可以选择不同的调度类型

调度类型分为两种:Capacity Scheduler和FAIR Scheduler。

Capacity Schedule: 多个组织共享一个Hadoop集群,每个组织可以分配到全部集群资源的一部分。每个组织被配置一个专门的队列,每个队列被配置为可以使用一定的集群资源。队列可以进一步按层次划分,这样每个组织内的不同用户能够共享该组织队列所分配的资源。在一个队列内,使用FIFO调度策略对应用进行调整。

FAIR Scheduler: 该调度方式旨在为所有运行的应用公平分配资源。下面解释资源是如何在队列之间公平共享的。想象两个用户A和B,分别拥有自己的队列。A启动一个作业,在B没有需求时A会分配到全部可用资源;当A的作业仍在运行时B启动一个作业,一段时间后,A和B的作业都将使用一半的集群资源。这时,如果B启动第二个作业且其他作业仍在运行,那么第二个作业将与B的其他作业(这里是B的第一个作业)公平的共享B所对应队列的资源。由于这里最终A有一个作业,B有两个作业,所以最终的资源分配是:B的每个作业将占用四分之一的集群资源,合计为一半的资源,而A的作业占用一半的资源。这就是资源在用户之间的公平共享。

Capacity Scheduler

创建Capacity Scheduler资源池的步骤如下:

  1. 在调度策略为Capacity Scheduler的情况下,点击 “创建资源池” 按钮 。

  2. 配置资源池。在点击“创建资源池”后,将会出现如图所示的创建资源池配置列表。如图,将会创建一个名称为test、占用33.3%资源份额、队列最小资源份额10%、资源最大份额75%、单个用户最大占用该队列50%资源的队列。

各个配置项的解释如下表:

配置参数项 Hadoop YARN对应参数项 说明
名称 - 指资源池队列的名称,注意同一层级的资源池名称不能重复(必填)
资源份额 yarn.scheduler.capacity..capacity 指该资源池队列占用资源份额,取值范围为0-100(必填)
miniUserLimit yarn.scheduler.capacity..minimum-user-limit-percent 资源池限制的最小值,指队列占用资源的最小最百分比。
maximumCapacity yarn.scheduler.capacity..maximum-capacity 资源池限制的最大值,指队列占用资源的最大百分比
单个用户限制比例 yarn.scheduler.capacity..user-limit-factor 允许用户获取的队列资源,取值范围0-1.0(默认情况下值为1.0,确保单个用户不超过队列配置的资源)
最大内存 yarn.scheduler.capacity..maximum-allocation-mb Resource Manager分配给单个容器的最大内存
最大核数 yarn.scheduler.capacity..maximum-allocation-vcores Resource Manager分配给单个容器的最大虚拟内核
最大应用数 yarn.scheduler.capacity..maximum-applications 队列允许处于运行和挂起状态的最大应用数
AM最大资源占比 yarn.scheduler.capacity..maximum-am-resource-percent 可运行application master的最大资源百分比
状态 yarn.scheduler.capacity..state 队列的运行状态。如果队列处于STOPPED状态,则新的application将不能提交给该队列以及其子队列
提交访问控制 yarn.scheduler.capacity.root..acl_submit_applications 指定那些用户/用户组能够将application提交给指定队列的ACL。如果未指定,则该属性的ACL将从父队列继承
管理访问控制 yarn.scheduler.capacity.root..acl_administer_queue 指定那些用户/用户组可以管理该队列上的application的ACL。如果未指定,则该属性的ACL将从父队列继承

对创建好的资源池可以实现”编辑”、”删除”、”创建子池”的操作。

  • 编辑:实现对资源池的配置修改。
  • 删除:实现删除资源池。
  • 创建子池:在当前资源池下创建子资源池。创建子池的配置同创建资源池。

更多设置

管理页面的“更多设置”是资源池的默认配置和全局配置,“更多设置”中的配置内容将作为整个资源池的默认配置内容。

点击”更多设置”按钮后,将会弹出配置项。

各个配置项的解释如下表:

配置参数项 Hadoop YARN对应参数项 说明
最大应用数 yarn.scheduler.capacity.maximum-applications 允许队列处于运行和挂起状态的最大应用数
最大AM比 yarn.scheduler.capacity.maximum-am-resource-percent 可运行application master的最大资源百分比
资源计算类 yarn.scheduler.capacity.resource-calculator 该配置实现对资源的计算方式。
如:org.apache.hadoop.yarn.util.resource
.DefaultResourceCalculator仅仅将内存进行资源计算。
节点延迟等待次数 yarn.scheduler.capacity.node-locality-delay 表示调度器在放松节点限制、改为匹配同一机架上的其他节点前,准备错过的调度机会次数。
放置规则 yarn.scheduler.capacity.queue-mappings 此配置指定用户/用户组与特定队列的映射关系。
队列映射覆盖 yarn.scheduler.capacity.queue-mappings-override.enable 该配置用于指定队列映射是否可以覆盖用户指定的队列。
提交访问控制 yarn.scheduler.capacity.root.acl_submit_applications 默认指定那些用户/用户组能够将application提交给队列的ACL。如果未指定,则该属性的ACL将从父队列继承
管理访问控制 yarn.scheduler.capacity.root.acl_administer_queue 默认指定那些用户/用户组可以管理队列上的application的ACL。如果未指定,则该属性的ACL将从父队列继承

Fair Scheduler

创建资源池的步骤如下:

  1. 在调度策略选择为Fair Scheduler的情况下,点击“创建资源池”按钮

  2. 配置资源池。在点击 “创建资源池” 按钮后,将会出现如图所示的资源池配置列表。如下图,将会创建一个名称为test、权重为25、最小内存516M、最小内核为4、最大内存1024、最大内核数为8、最多可同时运行application数200、application master最大占用资源为 “0.8*队列资源份额” 、队列调度策略为DRF并开启了抢占模式的队列。

各个配置项的解释如下:

配置参数项 Hadoop YARN对应参数项 说明
名称 - 指资源池队列的名称,注意同一层级的资源池名称不能重复(必填)
权重 weight 资源池队列占用的资源份额权重
最小内存及虚拟内核 minResources 队列可以获取的最小资源(内存与内核要么都设置,要么都不设置)
最大内存及虚拟内核 maxResources 队列可以获取的最大资源(内存与内核要么都设置,要么都不设置)
正在运行的应用程序最大数量 maxRunningApps 队列可同时运行的application最大数
Application Master 最大份额 maxAMShare 运行application master的资源份额占比(注:当该值为-1时,表示禁用该特性,AMShare不做检查)
计划策略 schedulingPolicy 设置队列的调度规则
抢占模式 allowPreemptionFrom 是否开启抢占模式
公平份额抢占阀值 fairSharePreemptionThreshold 在开启了抢占模式后,若在公平份额抢占超时内没有获取到达到该阀值对应的资源量,将会抢占容器
公平份额抢占超时 fairSharePreemptionTimeout 在开启了抢占模式后,获取到公平份额抢占阀值对应的资源量的超时时间。 如果未设置,队列将从其父队列继承该值。
最小份额抢占超时 minSharePreemptionTimeout 在开启了抢占模式后,获取到被承诺的最小共享资源的超时时间。 如果未设置,队列将从其父队列继承该值。
提交访问控制 aclSubmitApps 可以将应用程序提交到该队列的用户/用户组的列表。
管理访问控制 aclAdministerApps 可以管理队列application的用户/用户组的列表。目前唯一的管理操作是终止应用程序。

对创建好的资源池队列可以实现 ”编辑”、”删除”、”创建子池”操作。

更多设置

点击 “更多设置”,将会出现如图所示的配置项列表。

各个配置项的解释说明如下表:

配置参数项 Hadoop YARN对应参数项 说明
默认调度策略 defaultQueueSchedulingPolicy 设置队列的默认调度策略
每资源池最大运行应用程序数 queueMaxAppsDefault 设置队列运行的application最大数
默认Application Master 最大份额 queueMaxAMShareDefault 运行application master的资源份额数
公平份额抢占阀值 defaultFairSharePreemptionThreshold 设置全局的公平份额抢占阀值
公平份额抢占超时 defaultFairSharePreemptionTimeout 设置全局的公平份额抢占超时
最小共享优先权超时时间 defaultMinSharePreemptionTimeout 设置全局的最小份额抢占超时
放置规则 queuePlacementPolicy 配置放置规则,将应用放置到对应的队列。各规则依次执行,直至匹配到合适的规则。
创建队列:含义为当不满足此规则时,是否创建符合条件的规则。
各规则含义如下:
Specified:表示把应用放到所指名的队列中。
User:将应用放置到与该用户同名的队列中。队列名含有句点 “.”时,队列名以 “dot”代替句点。如用户名为“first.last” 对应的队列名为 “firstdot_last”。
primaryGroup:将应用放置到以用户的主Unix组名命名的队列中。队列名含有句点 “.”时,队列名以 “_dot
”代替句点。
secondaryGroupExistingQueue:将应用放置到以用户的次级Unix组名命名的队列中。队列名含有句点 “.”时,队列名以 “dot”代替句点。
secondaryGroupExistingQueueNestedUser:与secondaryGroupExistingQueue区别在于secondaryGroupExistingQueue规则的队列必须是以root为父队列,而该规则对应队列的父队列可以是任意队列。
specifiedNestedUser:与Specified区别在于Specified规则的队列必须是以root为父队列,而该规则对应队列的父队列可以是任意队列。
primaryGroupNestedUser:与primaryGroup区别在于primaryGroup规则的队列必须是以root为父队列,而该规则对应队列的父队列可以是任意队列。
Default:该规则是一条兜底规则,当前面规则不匹配时,将启用该规则,将应用加入到所设置的队列中。
Reject:该应用被拒绝。
用户限制 User 配置特定用户最大运行application数

配置完成并进行保存,点击“同步配置到集群”进行同步。“同步配置到集群”后的选项框为“√”号时表示同步成功,重启yarn服务后,本次配置内容便生效。若“同步配置到集群”后的选项框为“!”号时表示同步失败。

HDFS

在“资源管理”页面选择“HDFS”选项,即可看到已创建的test用户对应的空间目录以及配额等内容,可以查看到当前用户使用的情况。

Namespace配额:用户目录下能存在的目录数和文件数的配额,默认值200
Space配额:用户目录存储空间大小,默认值2000M

点击“修改配额”按钮,即可修改用户的配额。系统每隔10分钟自动同步配置到集群。管理员也可以点击“同步配置到集群”进行同步。同步后无需重启HDFS服务即可生效。

资源监控

在管理页面,点击“资源监控”按钮。选择 “Yarn资源队列”选项,即可查看各个队列资源使用情况。

在资源队列的饼图中点击想要查看的队列,即可查看对应队列的详细情况。如图,查看队列sub_test1的详情。

HDFS资源监控

在管理页面,点击“资源监控”按钮,选择“HDFS”选项,即可查看资源监控图表。并可以选择显示的时间粒度,查询特定的目录图表。

已提交任务

若当前用户为管理员用户,则已提交任务显示当前集群下已提交的所有任务;若当前用户为非管理员用户,则仅显示当前用户提交的作业。用户可以查看任务详情,了解任务的进度和执行结果,以及查看任务的运行日志。默认保留最近20000条数据,清理间隔为12小时。

  1. 选择“多租户管理>已提交任务”, 查看到任务列表。

  2. 点击“任务列表”中的任务ID,查看任务详情。


  3. 点击“任务详情”页面的“日志管理”按钮,管理日志信息。

    说明:若想查看任务执行日志,可通过配置OpenVPN Client进行访问。具体配置请参使用OpenVPN访问集群

  4. 点击“拉取日志”可以预览日志,并提供下载日志和清除日志缓存选项。默认保存近一周的日志,清理间隔为12小时。

  5. 在“任务详情”页,点击任务执行ID可以查看具体的container信息。


报警策略

通过添加报警策略,为Hadoop Manager系统中已有的监控项,设置阈值。超出阈值的监控项会触发报警信息,报警消息显示在报警记录模块中。

新增策略

  1. 选择“报警管理>报警策略>新增策略”,进入新增策略的页面。
  2. 填写下图所示的表单,*号表示必填项。
  3. 点击“保存”,完成添加。

    说明:

    • 选择监控项:支持单选,服务类型和监控项是二级联动效果。
    • 所属策略组:支持单选,如无合适的策略组,可点击“新建策略组”进行创建。
    • 报警规则:根据上面“选择监控项”,会自动带入当前监控项的报警规则。

禁用/启用策略

禁用状态下的报警策略,当该策略超出阈值时,不再发送报警,用户无法在报警记录中查看到该报警记录,也不会发送报警通知;启用状态下的报警策略,则正常发送报警和报警通知。

  1. 选择“报警管理>报警策略”,进入报警策略列表页。
  2. 选择报警策略列表的“操作”一栏,点击“启用”或者“禁用”按钮,实现对策略的启用或者禁用。

新增策略组

用户可以将多个策略添加到同一个策略组,便于用户按组查看策略以及配置报警通知。

说明:

  • 同一个报警策略可以被添加到多个策略组。
  • 策略组列表中的“策略数量”,点击“查看”,显示当前策略组的所有报警策略。
  • 设置报警通知:为当前策略组的所有策略添加报警通知。

新增策略组的步骤如下:

  1. 选择“报警管理>报警策略”,进入报警策略列表页。
  2. 点击“新增策略组”,进入到新增页面。

  3. 填写表单内容,*号表示必填项。

  4. 点击“保存”,完成新增。

    说明:选择策略:列表中显示当前支持的所有监控项,支持通过监控项名称进行筛选。

报警记录

报警记录包括新报警记录和所有报警记录。新报警记录是显示当前处于报警状态的策略以及报警信息;所有报警记录显示集群历史所有的报警记录。

新报警记录

  1. 选择“报警管理>报警记录>新报警记录”,进入报警记录的页面。

    说明:当某个报警记录恢复到正常时,该报警记录会从列表中消失。

  2. 点击 报警记录列表中“报警记录”一列中的“查看”,弹出当前报警记录的所有报警项的详情。

    说明:

    • 支持根据“严重程度”筛选报警记录。
    • 支持按照“报警发生时间”进行排序。

历史报警记录

历史报警记录里显示所有发生过的报警记录,包括当前处于报警状态以及已恢复正常状态的报警记录。
用户可以通过选择日期范围、服务类型,以及输入记录ID、主机进行筛选报警记录。

  1. 选择“报警管理>报警记录>所有报警记录”,进入所有报警记录的页面。

报警通知

报警通知功能为用户推送监控项超出阈值的报警信息,通过这种方式,用户能及时获取到集群出现异常的原因,及时进行修复。

创建报警通知

  1. 选择“报警管理>报警通知”,进入报警通知的管理页面。
  2. 点击 “新增报警通知”按钮,进入到创建报警通知的页面。
  3. 填写报警通知的相关信息,*号表示必填项。
  4. 点击“保存”,完成新增。

说明:

  • 选择策略组:支持多选。如果选中某个策略组,则包含策略组里的所有策略。
  • 选择严重性:支持多选。至少满足其中一种严重性时,会发送报警通知。
  • 通知方式:支持邮件和短信两种方式,其中邮件是必填项。
  • 联系人:支持多选。只有系统用户可作为联系人,请确保所选联系人已设置邮箱地址,否则无法正常发送通知。
  • 同一个通知里的多个策略同时发生报警时,只发送一次通知,通知里包含所有报警信息。

查看报警记录

  1. 选择“报警管理>报警通知”,进入报警通知的管理页面。
  2. 点击 报警通知列表的操作栏的“查看记录”按钮,查看当前报警通知的所有报警记录。

禁用/启用报警通知

禁用报警通知后,当该报警通知中包含的策略项发生报警时,不再给用户发送报警通知。如需再次使用该报警通知,可以再次启动该报警通知。

禁用/启用报警通知的步骤如下:

  1. 选择“报警管理>报警通知”,进入报警通知的管理页面。
  2. 当报警通知处于“已启动”状态时,点击 报警通知列表的操作栏的“禁用”按钮,禁用后该报警通知的状态变成“已禁用”;反之,点击“启用”按钮。

通知记录

通知记录里显示所有历史报警通知已发送的通知,包括所有通知成功和通知失败的记录。
用户可以通过选择日期范围,以及输入记录ID、报警通知名称、联系人进行筛选报警记录。

用户管理

集群管理平台的用户角色分为两种,管理员和普通用户,管理员可以添加普通用户,普通用户的权限受到限制(例如,服务启停,配置修改,多租户管理等)。

点击右上角用户详情,管理员会比普通用户多一个用户管理的链接,点击进入用户列表页

用户列表中,管理员可以进行编辑,禁用,重置密码等操作。

编辑用户

管理员可以修改用户信息,增加管理权限,os认证等。os认证的功能是在整个集群的每台虚机中,创建同名的操作系统账户,操作系统账户密码和管理系统密码一致。Hdfs目录,代表该用户在hdfs上的目录,可以在资源管理中调整该目录的容量限制。

新增用户

编辑用户类似,唯一不同的是,新增管理系统用户时,会同步在hdfs中创建同名目录(例如,创建test用户时,会在hdfs中创建/user/test目录)

说明:当hadoop集群开启kerberos时,认证中会出现kerberos认证的选项,用户可根据需要选择开启kerberos。