您的当前位置:首页正文

hadoop正式集群监控软件ganglia部署小结

2020-11-12 来源:爱go旅游网


Hadoop生产集群监控软件Ganglia

部署小结

1.

背景介绍 .................................................................................................................................. 3 1.1 Ganglia简介 ....................................................................................................................... 3

1.1.1 Ganglia特点............................................................................................................. 3 1.1.2 Ganglia组件介绍 ..................................................................................................... 3 1.2 生产环境介绍 ............................................................................................................... 3 1.3 Ganglia部署规划.......................................................................................................... 4

1.3.1 Ganglia主节点部署位置 .................................................................................. 4 1.3.2 rrd文件存放位置 ................................................................................................. 4 1.3.2 监控指标采集 ................................................................................................... 4

2. Ganglia部署过程 ..................................................................................................................... 6

2.1 安装过程 ....................................................................................................................... 6

2.1.1 安装Ganglia ...................................................................................................... 6 2.1.2 修改配置文件 ................................................................................................... 7 2.2 常见问题及解决方法 ...................................................................................................... 10

2.2.1常见问题处理 ........................................................................................................ 10 2.2.2常用调试方法 ........................................................................................................ 11

附录A Ganglia依赖包 ................................................................................................................ 12 附录B Hadoop监控指标说明 ....................................................................................................... 13 附录C 主机监控指标说明 ........................................................................................................... 16

1. 背景介绍

1.1 Ganglia简介 1.1.1 Ganglia特点

 Ganglia是一个针对高性能分布式系统(例如,集群、网格、云计算等)所设计的可扩

展监控系统,最多支持2000个节点;

 Ganglia允许用户远程监控系统的实时或历史统计数据,主要包含cpu、memory、disk、

I/O、process、network等六大方面的数据,对合理调整、分配系统资源,提高系统整体性能起到重要作用;

 Ganglia具有低单节点负载和高一致性的特点,并能够适应不同的操作系统和处理器体

系结构,具有很好的扩展性,允许用户加入自己所要监控的状态信息,如Hadoop各项指标。

1.1.2 Ganglia组件介绍

 Gmond(Ganglia Monitor Daemon):监控进程,负责数据采集等工作

Gmond组件部署于集群中各个被监控的节点,可以把它理解为客户端。其主要功能是从操作系统或指定的主机收集状态信息,收集的信息在gmond之间传递或发送到Gmetad读取。Gmond收集主机状态信息的方式灵活,状态信息均以XML格式进行传输,可以级联形成层次结构,使得Ganglia拥有良好的可扩展性。并且带来的系统负载非常少,对用户的影响非常小。

 gmetad(Ganglia Metadata Daemon):元数据进程,负责数据收集汇总等工作。

Gmetad组件可以部署于集群中的某一节点,也可以部署于集群外的某一专门服务器,可以把它理解为服务端。其主要功能是周期性地从指定的Gmond组件或其他Gmetad组件拉取数据,并将拉取的数据存储在本地数据库(rrd)。这些存储的状态信息供Ganglia-Web组件使用。

 gweb(Ganglia Webfrontend):可视化工具

Ganlgia-Web组件和Gmetad组件须部署于同一节点,它通过数据库轮询的方式从Gmetad组件中获取状态信息,并以web形式图形化地展示各个节点的状态信息。

1.2 生产环境介绍

本次Ganglia监控软件部署于亦庄Hadoop生产集群中。集群信息如附录A。

1.3 Ganglia部署规划 1.3.1 Ganglia主节点部署位置

Gmetad部署节点应有较好的CPU、内存等性能,其部署位置可以是集群中的某个节点(不建议使用Namenode等其他重要节点,可使用Datanode及Tasktracker节点),或某台专用主机。当集群中节点较多时,监控指标收集的相关过程会更多的消耗gmetad所在节点的CPU、网络等性能。因此为避免对集群性能及稳定性造成影响,本次将gmetad所在节点部署于Hadoop集群外的一台专用主机上。

1.3.2 rrd文件存放位置

根据Hadoop测试集群部署经验,在9个节点的环境下,每个节点监控指标的rrd文件占用空间约为200-400M,另外summary info占用空间约1G,总计9个节点的rrds目录占用空间合约4.2G。理论上RRD数据库文件占用空间为定值,目前尚未知该文件占用空间是否达到门限。

生产集群中共84个节点,故至少需要约40G的空间存储监控数据。

1.3.2 监控指标采集

1) Hadoop相关指标与初步汇总如: 一级监控点 二级监控点 namenode jobtracker 进程监控 datanode进程 tasktracker进程 secondary namenode HDFS 空间使用率 HDFS空间使用率最小的节点的使用率和其主机名称 HDFS空间使用率最大的节点的使用率和其主机名称 丢失的数据块数 损坏的数据块数 正在运行的job数 正在运行map数 正在运行reduce数 告警规则 namenode有namenode进程不存在即告警 namenode有jobtracker进程不存在即告警 数据节点有datanode进程不存在即告警 数据节点有tasktracker进程不存在即告警 >=80% >0 >0 优先级 1 1 1 1 1 1 1 1 2 2 1 1 1 HDFS监控 MapReduce作业监控

异常作业监控 task运行速度 jobtracker young gc 次数 jobtracker full gc 次数 平均每次jobtracker young JVM监控 gc 用时 平均每次jobtracker full gc 用时 阻塞数threadsblocked 2)监控指标采集周期 可针对指标特性及重要性来权衡采集周期与主机资源消耗,默认周期为10s。

1 2 1 1 1 1 1 2. Ganglia部署过程

2.1 安装过程

由于集群网络及yum源受限,同时为保证不改变集群原有配置(包括已安装的依赖包版本、配置文件信息等,以防止对Hadoop等其他应用造成影响),本次安装采用手工rpm安装:下载缺少的依赖包或相应的devel版,通过ftp传入集群中进行安装,安装前可添加—test参数进行测试,并根据结果进行相应调整(包括rpm包的增删、.so文件的处理等)。Ganglia依赖包不完全统计如附录A所列,可根据实际情况进行调整。

根据测试环境部署经验,集群中各节点已安装的依赖包及其版本差异较大,故暂无法全部采用批量安装的方式进行Ganglia的安装,需在生产环境集群中对各节点逐一统计后,可分组批量安装。实际在Hadoop生产集群对每个节点进行统计后,发现各节点所需依赖包均一致,可实现一次批量安装,故以上分组批量安装经验供参考。

为将可能对生产集群带来的影响尽量减小,本次首先在datanode及tasktracker节点进行Ganglia安装。经观察测试发现未对集群造成可见影响,随后分批对zookeeper、取数节点以及namenode和jobtracker进行Ganglia安装。

2.1.1 安装Ganglia

创建目录/home/ocdc/gangliaInstall,然后将依赖包通过ftp传入/home/ocdc/gangliaInstall目录下。其中,ganglia-gmetad及ganglia-web相关文件只需传到Ganglia主监控节点。

文件传输完成后在/home/ocdc/gangliaInstall/目录下执行 rpm –ivh *.rpm -–test

根据提示在当前目录中增加缺少的依赖包或删除重复的依赖包,以及建立某些库文件的软链接。确认处理完列出的error和warning(基本是由于待安装依赖包已存在或版本不同所致,可通过增删改依赖包解决)后,执行 rpm –ivh *.rpm

根据测试环境部署经验,ganglia-web采用rpm方式安装后,其在gmetad及apache的conf文件中难以配置,易引起Ganglia监控页面无法显示曲线的问题。所以对于主监控节点的ganglia-web组件采用二进制tar方式安装: cd /home/ocdc/gangliaInstall/

tar –zxvf ganglia-web-3.6.2.tar.gz cd ganglia-web-3.6.2

对Makefile文件进行如下修改:

#以下GDESTDIR、GWEB_STATEDIR和GMETAD_ROOTDIR路径根据实际数据盘规划 GDESTDIR = /data1/ganglia GCONFDIR = /etc/ganglia/

GWEB_STATEDIR = /data1/ganglia GMETAD_ROOTDIR = /data1/ganglia APACHE_USER = ganglia

然后执行: make

make install

至此,完成Ganglia安装过程。

2.1.2 修改配置文件

在修改配置文件过程中,除新建或拷贝配置文件外,均已对原配置文件进行备份,在以下修改过程中不再赘述。

 在Ganglia主监控节点上,进行以下配置与修改: /etc/ganglia/gmetad.conf文件

#为集群ocdc添加收集监控信息的gmond节点,可选择ganglia主节点本身 data_source \"ocdc\" localhost #修改所属用户

setuid_username \"ganglia\"

#修改对主机名的大小写敏感性 case_sensitive_hostnames 1

/etc/ganglia/conf.php文件

#ganglia-web及其配置文件位置

$conf['gweb_root'] = \"/data1/ganglia\"; $conf['gweb_confdir'] = \"/etc/ganglia\"; #rrd数据库文件父目录

$conf['gmetad_root'] = \"/data1/ganglia\"; #存放rrd数据文件位置

$conf['rrds'] = \"${conf['gmetad_root']}/rrds\";

#rrdtool执行文件位置,注意此文件亦可能位于/usr/local/bin/rrdtool $conf['rrdtool'] = \"/usr/bin/rrdtool\";

创建RRD数据文件目录并修改属主与权限 mkdir –p /data1/ganglia/rrds/ cd /data1/ganglia

chown –R ganglia:ganglia rrds chmod –R 777 rrds

/etc/php.d/json.ini文件 #启用JSON扩展

extension=json.so

/etc/httpd/conf.d/ganglia.conf文件

#添加以下语句,以允许集群外节点通过http访问Ganglia监控页面 Allow from all

/data1/ganglia/header.php文件,文件位置以实际配置为准 #为Ganglia配置时区等信息

ini_set('date.timezone', 'PRC'); if (isset($_GET['date_only'])) { $d = date(\"r\"); echo $d; exit(0); }

if (isset($_GET['date_only'])) { $d = date(\"r\"); echo $d; exit(0); }

将gmetad设为开机启动:

#首先检查gmond是否在启动列表中 chkconfig --list gmetad #若无输出,则继续执行 chkconfig --add gmetad

#确认gmetad在启动列表后执行

chkconfig --level 345 gmetad on

 在集群中所有节点上(包括主监控节点),进行以下配置与修改: /etc/ganglia/gmond.conf #为各节点划分集群及属主 cluster {

name = \"ocdc\"

owner = \"ganglia\" }

#设置各监控节点互相通报集群状态的UDP通道,本测试集群采用单播方式,故已注释掉多播通道

udp_send_channel {

host = gmetadIpaddress port = 8649 ttl = 1 }

udp_recv_channel { port = 8649 }

#配置各节点向主监控节点汇报集群状态的TCP通道 tcp_accept_channel { port = 8649 acl{

default = \"deny\"

access{

ip = gmetadIpaddress mask = 32

action = \"allow\" } }

gzip_output = no }

将gmond设为开机启动:

#首先检查gmond是否在启动列表中 chkconfig --list gmond #若无输出,则继续执行 chkconfig --add gmond

#确认gmond在启动列表后执行

chkconfig --level 345 gmond on

配置Hadoop相关监控metrics:

由于测试环境与生产环境中MapReduce版本为1.0,HDFS版本为2.0。故Hadoop侧Metrics配置需针对MapReduce与HDFS分别配置。

/home/ocdc/hadoop-2.0.0-mr1-cdh4.2.1/conf/hadoop-metrics.properties文件 #配置HDFS监控项

dfs.class = org.apache.hadoop.metrics.ganglia.GangliaContext31 dfs.period = 10

dfs.servers = gmetadIpaddress:8649

#配置MapReduce监控项

mapred.class = org.apache.hadoop.metrics.ganglia.GangliaContext31 mapred.period = 10

mapred.servers = gmetadIpaddress:8649 #配置JVM监控项

jvm.class = org.apache.hadoop.metrics.ganglia.GangliaContext31 jvm.period = 10

jvm.servers = gmetadIpaddress:8649 #配置RPC监控项

rpc.class=org.apache.hadoop.metrics.ganglia.GangliaContext31 rpc.period=10

rpc.servers= gmetadIpaddress:8649 #配置UGI监控项

ugi.class=org.apache.hadoop.metrics.ganglia.GangliaContext31 ugi.period=10

ugi.servers= gmetadIpaddress:8649

/home/ocetl/hadoop-2.0.0-cdh4.2.1/etc/hadoop/hadoop-metrics2.properties文件 #设置监控状态信息发送至Ganglia,取代原有保存至文件方式

*.sink.ganglia.class = org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31

*.sink.ganglia.period = 10

*.sink.ganglia.supportsparse = true

*.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both *.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40 #配置各监控状态信息单播发送通道,本集群未启用nodemanager及mrappmaster namenode.sink.ganglia.servers = gmetadIpaddress:8649 datanode.sink.ganglia.servers = gmetadIpaddress:8649 jobtracker.sink.ganglia.servers = gmetadIpaddress:8649 tasktracker.sink.ganglia.servers = gmetadIpaddress:8649 maptask.sink.ganglia.servers = gmetadIpaddress:8649 reducetask.sink.ganglia.servers = gmetadIpaddress:8649 #nodemanager.sink.ganglia.servers = gmetadIpaddress:8649 #mrappmaster.sink.ganglia.servers = gmetadIpaddress:8649

2.2 常见问题及解决方法 2.2.1常见问题处理

1)There was an error collecting ganglia data: fsockopen error: Permission denied 该问题可能是未关闭SELinux导致,检查方法为输入命令: sestatus

若状态为disabled,则表示其已关闭,否则需要修改/etc/selinux/config文件: SELINUX = disabled

注意,以上方法需要重启节点后生效,若要立即关闭SELinux,需执行: setenforce 0

2)web页面可以显示图片,但无法加载曲线,图片上报错no matching metrics detected: 这个问题可能是两个原因导致的,分别在Hadoop测试集群以及之前本地虚机搭建的测试环境中遇到。

第一个原因是主监控节点上gmetad.conf文件中case_sensitive_hostnames值设为0,导致Ganglia生成文件时对大小写不敏感,使得记录的RRD数据文件目录命名为小写,而测试集群中主机名均含大写字母,如HZ-HDP-DN-01,从而Ganglia-web无法根据主机名获取到相应的状态文件。

第二个原因是初次安装时RRD内记录上次更新cache的时间戳晚于当前时间,导致cache更新失败,无法读取数据。此时删除RRD数据文件目录/data1/rrds/下的所有文件即可解决。

3) 使用rpm安装Ganglia-web后,web侧配置困难: 此方法安装Ganglia-web导致其安装与配置文件分散,位置不明确,为以后的修改造成不便。另安装时许多参数难以把控,其默认设置与实际需求配置有些不同,在尝试修改时使用rpm –q及find等命令均无法定位其安装目录。初步认为其各项配置参数已自动整合至服务端以及apache侧的相关配置文件中。配置完成后web页面仍无法显示监控信息。为避免浪费太多时间,同时考虑到以后修改web侧配置的方便性,采用tar二进制安装方式取代rpm

安装,经配置后web页面显示正常。

2.2.2常用调试方法

1)查看守护进程状态: ps -aux | grep gm 或者

service gmetad status service gmond status

2)节点守护进程gmetad与gmond以调试方式启动查看异常: gmetad –d2 gmond –d2

3)测试各监控节点是否可以传播状态信息到主节点: telnet gmetadIpaddress 8649

若输出xml格式的状态信息,则表示正常。

4)测试主节点接收的状态信息是否可以写入RRD数据库: 查看/var/lib/ganglia/rrds/目录下是否有当前集群信息及其更新时间。 5)查看错误信息:

tail –n 100 /var/log/message

tail –f /var/log/httpd/error_log 6)查看gmond简要统计信息: gstat -a

附录A Ganglia依赖包

apache-2.4.10-16.mga5.x86_64.rpm apr-1.3.9-5.el6_2.x86_64.rpm apr-devel-1.3.9-5.el6_2.x86_64.rpm apr-util-1.3.9-3.el6_0.1.x86_64.rpm cairo-1.8.8-3.1.el6.x86_64.rpm cairo-devel-1.8.8-3.1.el6.x86_64.rpm check-devel-0.9.3-5.fc6.x86_64.rpm dbus-1.2.24-7.el6_3.x86_64.rpm dbus-devel-1.2.24-7.el6_3.x86_64.rpm dejavu-fonts-common-2.30-2.el6.noarch.rpm dejavu-lgc-sans-mono-fonts-2.30-2.el6.noarch.rpm dejavu-sans-mono-fonts-2.30-2.el6.noarch.rpm expat-devel-2.0.1-11.el6_2.x86_64.rpm fontconfig-2.8.0-3.el6.x86_64.rpm fontconfig-devel-2.8.0-3.el6.x86_64.rpm fontpackages-filesystem-1.41-1.1.el6.noarch.rpm freetype-2.3.11-6.el6_2.9.x86_64.rpm freetype-devel-2.3.11-6.el6_2.9.x86_64.rpm ganglia-3.7.1-2.el6.x86_64.rpm ganglia-devel-3.7.1-2.el6.x86_64.rpm ganglia-gmetad-3.7.1-2.el6.x86_64.rpm ganglia-gmond-3.7.1-2.el6.x86_64.rpm ganglia-gmond-python-3.7.1-2.el6.x86_64.rpm ganglia-web-3.7.0-2.el6.x86_64.rpm glib2-devel-2.22.5-7.el6.x86_64.rpm libart_lgpl-2.3.20-5.1.el6.x86_64.rpm libart_lgpl-devel-2.3.20-5.1.el6.x86_64.rpm libconfuse-2.6-3.puias6.x86_64.rpm libpng-1.2.49-1.el6_2.x86_64.rpm libpng-devel-1.2.49-1.el6_2.x86_64.rpm libthai-0.1.12-3.el6.x86_64.rpm libX11-1.5.0-4.el6.x86_64.rpm libX11-common-1.5.0-4.el6.noarch.rpm libX11-devel-1.5.0-4.el6.x86_64.rpm libXau-1.0.6-4.el6.x86_64.rpm libXau-devel-1.0.6-4.el6.x86_64.rpm libxcb-1.8.1-1.el6.x86_64.rpm libxcb-devel-1.8.1-1.el6.x86_64.rpm libXext-1.3.1-2.el6.x86_64.rpm libXext-devel-1.3.1-2.el6.x86_64.rpm libXft-2.3.1-2.el6.x86_64.rpm libXft-devel-2.3.1-2.el6.x86_64.rpm libxml2-devel-2.7.6-8.el6_3.4.x86_64.rpm libXrender-0.9.7-2.el6.x86_64.rpm libXrender-devel-0.9.7-2.el6.x86_64.rpm pango-1.28.1-7.el6_3.x86_64.rpm pango-devel-1.28.1-7.el6_3.x86_64.rpm pcre-devel-7.8-6.el6.x86_64.rpm php-bcmath-5.3.3-22.el6.x86_64.rpm php-process-5.3.3-22.el6.x86_64.rpm php-xml-5.3.3-22.el6.x86_64.rpm php-ZendFramework-1.12.13-1.el6.noarch.rpm pixman-0.26.2-4.el6.x86_64.rpm pixman-devel-0.26.2-4.el6.x86_64.rpm python-devel-2.6.6-36.el6.x86_64.rpm rpm-4.8.0-32.el6.x86_64.rpm rpm-build-4.8.0-32.el6.x86_64.rpm rpm-build-4.8.0-37.el6.x86_64.rpm rrdtool-1.3.8-6.el6.x86_64.rpm xorg-x11-proto-devel-7.4-35.el6.noarch.rpm zlib-devel-1.2.3-29.el6.x86_64.rpm

附录B Hadoop监控指标说明

指标名 dfs.namenode.SafeModeTime dfs.namenode.AddBlockOps dfs.namenode.BlockReportAvgTime dfs.namenode.BlockReportNumOps dfs.namenode.CreateFileOps dfs.namenode.DeleteFileOps dfs.namenode.FileInfoOps dfs.namenode.FilesCreated dfs.namenode.FilesDeleted dfs.namenode.FilesInGetListingOps dfs.namenode.FilesRenamed dfs.namenode.FsImageLoadTime dfs.namenode.GetAdditionalDatanodeOps dfs.namenode.GetBlockLocations dfs.namenode.GetListingOps dfs.namenode.SyncsAvgTime dfs.namenode.SyncsNumOps dfs.namenode.TransactionsAvgTime dfs.namenode.TransactionsBatchedInSync dfs.namenode.TransactionsNumOps dfs.datanode.BlockReportsAvgTime dfs.datanode.BlockReportsNumOps dfs.datanode.BlocksRead dfs.datanode.BlocksRemoved dfs.datanode.BlocksReplicated dfs.datanode.BlocksVerified dfs.datanode.BlocksWritten dfs.datanode.BytesRead dfs.datanode.BytesWritten dfs.datanode.CopyBlockOpAvgTime dfs.datanode.CopyBlockOpNumOps dfs.datanode.HeartbeatsAvgTime dfs.datanode.HeartbeatsNumOps dfs.datanode.ReadBlockOpAvgTime dfs.datanode.ReadBlockOpNumOps dfs.datanode.ReadsFromLocalClient dfs.datanode.ReadsFromRemoteClient dfs.datanode.WriteBlockOpAvgTime dfs.datanode.WriteBlockOpNumOps dfs.datanode.WritesFromLocalClient dfs.datanode.WritesFromRemoteClient dfs.datanode.PacketAckRoundTripTimeNanosAvg指标含义 safemode时间 写入block次数 block report的平均时间次数 block report的次数 创建文件次数 删除文件次数 查看文件info次数 已创建的文件个数 已删除的文件个数 getlist操作次数 重命名文件个数 fsimage加载时间 GetAdditionalDatanode操作次数 获取block位置操作次数 getListing操作次数 将操作同步为editlog的平均时间 将操作同步为editlog的次数 transcation的平均时间 transcation在flush时发现已经被sync的情况的次数 transcation的个数 向namenode汇报block的平均时间 向namenode汇报block的次数 从硬盘读块的次数 删除块的个数 备份块操作的个数 验证块的次数 写入块的个数 读出总字节 写入总字节 复制块的平均时间 复制块的次数 向namenode汇报的平均时间 向namenode汇报的次数 读数据块的平均时间 读数据块的次数 本地读取的次数 远程读取的次数 写数据块的平均时间 写数据块的次数 写本地的次数 写远程的次数 包确认平均时间 Time dfs.datanode.PacketAckRoundTripTimeNanosNumOps dfs.datanode.FlushNanosAvgTime dfs.datanode.FlushNanosNumOps dfs.datanode.ReplaceBlockOpAvgTime dfs.datanode.ReplaceBlockOpNumOps dfs.datanode.SendDataPacketBlockedOnNetworkNanosAvgTime dfs.datanode.SendDataPacketBlockedOnNetworkNanosNumOps dfs.datanode.SendDataPacketTransferNanosAvgTime dfs.datanode.SendDataPacketTransferNanosNumOps dfs.FSNamesystem.BlockCapacity dfs.FSNamesystem.BlocksTotal dfs.FSNamesystem.CapacityRemainingGB dfs.FSNamesystem.CapacityTotalGB dfs.FSNamesystem.CapacityUsedGB dfs.FSNamesystem.CorruptBlocks dfs.FSNamesystem.ExcessBlocks dfs.FSNamesystem.ExpiredHeartbeats dfs.FSNamesystem.FilesTotal dfs.FSNamesystem.LastCheckpointTime dfs.FSNamesystem.LastWrittenTransactionId dfs.FSNamesystem.MillisSinceLastLoadedEdits dfs.FSNamesystem.MissingBlocks dfs.FSNamesystem.TotalFiles dfs.FSNamesystem.UnderReplicatedBlocks dfs.FSNamesystem.PendingDataNodeMessageCount dfs.FSNamesystem.PendingDeletionBlocks dfs.FSNamesystem.PendingReplicationBlocks dfs.FSNamesystem.PostponedMisreplicatedBlocks dfs.FSNamesystem.ScheduledReplicationBlocks dfs.FSNamesystem.TotalLoad dfs.FSNamesystem.TransactionsSinceLastCheckpoint dfs.FSNamesystem.TransactionsSinceLastLogRoll mapred.ShuffleMetrics.ShuffleConnections mapred.ShuffleMetrics.ShuffleOutputBytes mapred.ShuffleMetrics.ShuffleOutputsFailed mapred.ShuffleMetrics.ShuffleOutputsOK mapred.shuffleInput.shuffle_failed_fetches 包确认次数 文件系统flush平均时间 文件系统flush次数 块替换平均时间 块替换次数 网络上发送块平均时间 网络上发生块次数 网络上发送包平均时间 网络上发送包个数 block的总容量 block的当前容量 HDFS文件系统剩余的容量 HDFS文件系统总体容量 HDFS文件系统已使用的容量 已损坏的block数量 多余的block 超时的心跳 文件总数 最近一次做checkpoint的时间 最近一次写入的transactionid 距离上一次加载edit的时间 丢失的block数量 文件总个数 副本个数不够的block datanode的请求被queue在standby namenode的个数 未被验证的block个数 等待被备份的block个数 被推迟处理的错误备份的block个数 排定要备份的block个数 namenode的Xceiver个数 从上次checkpoint起到现在新的transcation的个数 从上次roll editlog起到现在新的transcation的个数 shuffle的连接数 shuffle输出数据大小 shuffle失败的次数 shuffle成功的次数 从map输出中取数据过程中获取失败次数 mapred.shuffleInput.shuffle_fetchers_busy_percent mapred.shuffleInput.shuffle_input_bytes mapred.shuffleInput.shuffle_success_fetches 在获取map输出过程中并行获取线程忙碌占总并行获取线程百分比 shuffle过程中读入数据字节 从map输出中取数据过程中获取成功次数 mapred.shuffleOutput.shuffle_failed_outputs 向reduce发送map输出失败次数 mapred.shuffleOutput.shuffle_handler_busy_p向reduce发送map输出中server线程ercent 忙碌占总工作线程百分比。 mapred.shuffleOutput.shuffle_output_bytes shuffle过程中输出数据字节 mapred.shuffleOutput.shuffle_success_output向reduce成功 s mapred.tasktracker.mapTaskSlots 设置map槽数 mapred.tasktracker.maps_running 正在运行的map数 mapred.tasktracker.reduceTaskSlots 设置reduce槽数 mapred.tasktracker.reduces_running 正在运行的reduce数 mapred.tasktracker.tasks_completed 完成任务数 mapred.tasktracker.tasks_failed_ping 因tasktracker与task交互失败导致的失败的task数目 mapred.tasktracker.tasks_failed_timeout 因task未在配置时间内汇报进度而超时kill的task数目 jvm.JvmMetrics.GcCount JVM进行GC的次数 jvm.JvmMetrics.GcTimeMillis GC花费的时间,单位为微妙 jvm.JvmMetrics.LogError Log中输出ERROR的次数 jvm.JvmMetrics.LogFatal Log中输出FATAL的次数 jvm.JvmMetrics.LogInfo Log中输出INFO的次数 jvm.JvmMetrics.LogWarn Log中输出WARN的次数 jvm.metrics.maxMemoryM jvm试图使用最大内存(M),如果没有限制返回Long.MAX_VALUE jvm.JvmMetrics.MemHeapCommittedM JVM分配的堆大小(单位MB) jvm.JvmMetrics.MemHeapUsedM JVM已经使用的堆大小(单位MB) jvm.JvmMetrics.MemNonHeapCommittedM JVM分配给非堆的大小(单位M) jvm.JvmMetrics.MemNonHeapUsedM JVM已使用的非堆的大小(单位M) jvm.JvmMetrics.ThreadsBlocked 处于BLOCKED状态线程数量 jvm.JvmMetrics.ThreadsNew 处于NEW状态线程数量 jvm.JvmMetrics.ThreadsRunnable 处于RUNNABLE状态线程数量 jvm.JvmMetrics.ThreadsTerminated 处于TERMINATED状态线程数量 jvm.JvmMetrics.ThreadsTimedWaiting 处于TIMED_WAITING状态线程数量 jvm.JvmMetrics.ThreadsWaiting 处于WAITING状态线程数量

附录C 主机监控指标说明

指标名称 load_one load_intr load_five load_sintr load_fifteen cpu_idle 描述 1分钟平均负载 CPU参与IO中断所占时间百分比 5分钟平均负载 CPU参与IO软中断所占时间百分比 15分钟平均负载 CPU空闲、系统没有显著磁盘IO请求的时间所占百分比 cpu_aidle 百分比 自启动开始CPU空闲时间所占百分比(不是所有系统都适用) cpu_nice 百分比 以user level、nice level运行时的cpu占用率 cpu_user 百分比 以user level运行时的cpu占用率 cpu_system 百分比 以system level运行时的cpu占用率 cpu_wio 百分比 CPU空闲或系统有显著磁盘IO请求的时间所占百分比 cpu_num 个数 cpu总数(只收集一次) cpu_speed MHz cpu速率(只收集一次) part_max_used 百分比 所有分区已经被占用的百分比 disk_total GB 所有分区总可用磁盘空间 disk_free GB 所有分区总空闲磁盘空间 mem_total KB 总内存空间 proc_run 个数 正在运行的进程数目 mem_cached KB 缓存(cache)容量 swap_total KB swap容量 mem_free KB 可用内存容量 mem_buffers KB buffer容量 mem_shared KB shared容量 proc_total 个数 进程总数 swap_free KB 可用于swap的容量 pkts_out packets/second 每秒发出的包数 pkts_in packets/second 每秒接收的包数 bytes_in bytes/second 每秒受到的字节数 bytes_out bytes/second 每秒发出的字节数 os_release 字符串 操作系统发布日期 gexec 字符串 gexec可用 mtu 整数 网络最大传输单位 location 字符串 主机位置 os_name 字符串 操作系统名称 boottime 时间 系统最近启动时间 sys_clock 时间 系统时钟时间 heartbeat 整数 上次心跳发送时间 machine_type 字符串 系统架构 单位 周期内平均 百分比 周期内平均 百分比 周期内平均 百分比 类型 cpu cpu cpu cpu cpu cpu cpu cpu cpu cpu cpu cpu cpu 磁盘 磁盘 磁盘 内存 内存 内存 内存 内存 内存 内存 内存 内存 网络 网络 网络 网络 系统 系统 系统 系统 系统 系统 系统 系统 系统

因篇幅问题不能全部显示,请点此查看更多更全内容