ganglia监控hadoop相关配置及监控指标说明
修改配置文件:$HADOOP_HOME/etc/hadoop/hadoop-metrics.properties
添加如下内容:
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=10
# default for supportsparse is false
*.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
#192.168.0.100组播地址 8801是接受和发送数据端口
namenode.sink.ganglia.servers=239.2.11.71:8801
datanode.sink.ganglia.servers=239.2.11.71:8801
jobtracker.sink.ganglia.servers=239.2.11.71:8801
tasktracker.sink.ganglia.servers=239.2.11.71:8801
maptask.sink.ganglia.servers=239.2.11.71:8801
reducetask.sink.ganglia.servers=239.2.11.71:8801
各项控制指标说明: dfs.datanode.blockChecksumOp_avg_time 块校验平均时间
dfs.datanode.blockChecksumOp_num_ops 块检验次数
dfs.datanode.blockReports_avg_time 块报告平均时间
dfs.datanode.blockReports_num_ops 块报告次数
dfs.datanode.block_verification_failures 块验证失败次数
dfs.datanode.blocks_read 从硬盘读块总次数
dfs.datanode.blocks_removed 删除块数目
dfs.datanode.blocks_replicated 块复制总次数
dfs.datanode.blocks_verified 块验证总次数
dfs.datanode.blocks_written 向硬盘写块总次数
dfs.datanode.bytes_read 读出总字节包含crc验证文件字节数
dfs.datanode.bytes_written 写入总字节数(在写入每个packet时计数)
dfs.datanode.copyBlockOp_avg_time 复制块平均时间 (单位ms)
dfs.datanode.copyBlockOp_num_ops 复制块次数
dfs.datanode.heartBeats_avg_time 向namenode汇报平均时间
dfs.datanode.heartBeats_num_ops 向namenode汇报总次数
dfs.datanode.readBlockOp_avg_time 读块平均时间(单位ms)
dfs.datanode.readBlockOp_num_ops 读块总次数 一般和dfs.datanode.blocks_read 一致,先从硬盘读入输入流,增加dfs.datanode.blocks_read 计数,然后再增加该计数
dfs.datanode.reads_from_local_client 从本地读入块次数
dfs.datanode.reads_from_remote_client 从远程读入块次数
dfs.datanode.replaceBlockOp_avg_time 替换块平均时间(负载均衡策略)
dfs.datanode.replaceBlockOp_num_ops 替换块次数(负载均衡策略)
dfs.datanode.volumeFailures notfound 和block拥有的volume 失败有关
dfs.datanode.writeBlockOp_avg_time 写块平均时间
dfs.datanode.writeBlockOp_num_ops 写块总次数一般和dfs.datanode.blocks_written 一致,先从硬盘,增加dfs.datanode.blocks_read 计数,然后再增加该计数
dfs.datanode.writes_from_local_client 写本地次数
dfs.datanode.writes_from_remote_client 写远程次数
jvm.metrics.gcCount gc总次数
jvm.metrics.gcTimeMillis gc总耗时(ms)
jvm.metrics.logError jvm error 次数
jvm.metrics.logFatal jvm出现fatal次数
jvm.metrics.logInfo jvm info出现次数
jvm.metrics.logWarn jvm warn出现次数
jvm.metrics.maxMemoryM jvm试图使用最大内存(M),如果没有限制返回Long.MAX_VALUE
jvm.metrics.memHeapCommittedM jvm提交堆内存大小
jvm.metrics.memHeapUsedM jvm使用堆内存大小
jvm.metrics.memNonHeapCommittedM jvm非堆内存已提交大小
jvm.metrics.memNonHeapUsedM jvm非堆内存已使用大小
jvm.metrics.threadsBlocked 正在阻塞等待监视器锁的线程数目
jvm.metrics.threadsNew 尚未启动的线程数目
jvm.metrics.threadsRunnable 正在执行状态的线程数目
jvm.metrics.threadsTerminated 已退出线程数目
jvm.metrics.threadsTimedWaiting 等待另一个线程执行取决于指定等待时间的操作的线程数目
jvm.metrics.threadsWaiting 无限期地等待另一个线程来执行某一特定操作的线程数目
rpc.metrics.NumOpenConnections number of open connections rpc连接打开的数目
rpc.metrics.ReceivedBytes number of bytes received rpc收到的字节数
rpc.metrics.RpcProcessingTime_avg_time Average time for RPC Operations in last interval rpc在最近的交互中平均操作时间
rpc.metrics.RpcProcessingTime_num_ops rpc在最近的交互中连接数目
rpc.metrics.RpcQueueTime_avg_time rpc在交互中平均等待时间
rpc.metrics.RpcQueueTime_num_ops rpc queue中完成的rpc操作数目
rpc.metrics.SentBytes number of bytes sent rpc发送的数据字节
rpc.metrics.callQueueLen length of the rpc queue rpc 队列长度
rpc.metrics.rpcAuthenticationFailures number of failed authentications rpc 验证失败次数
rpc.metrics.rpcAuthenticationSuccesses number of successful authentications 验证成功数
rpc.metrics.rpcAuthorizationFailures number of failed authorizations 授权失败次数
rpc.metrics.rpcAuthorizationSuccesses number of successful authorizations 成功次数
mapred.shuffleInput.shuffle_failed_fetches 从map输出中取数据过程中获取失败次数
mapred.shuffleInput.shuffle_fetchers_busy_percent 在获取map输出过程中并行获取线程忙碌占总并行获取线程百分比
mapred.shuffleInput.shuffle_input_bytes shuffle过程中读入数据字节
mapred.shuffleInput.shuffle_success_fetches 从map输出中取数据过程中获取成功次数
mapred.shuffleOutput.shuffle_failed_outputs 向reduce发送map输出失败次数
mapred.shuffleOutput.shuffle_handler_busy_percent 向reduce发送map输出中server线程忙碌占总工作线程(在tasktracker.http.threads中配置)百分比。
mapred.shuffleOutput.shuffle_output_bytes shuffle过程中输出数据字节
mapred.shuffleOutput.shuffle_success_outputs 向reduce成功
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未在mapred.task.timeout配置的(默认10分钟)时间内汇报进度而超时kill的task数目
rpc.detailed-metrics.canCommit_avg_time rpc询问是否提交任务平均时间
rpc.detailed-metrics.canCommit_num_ops rpc询问是否提交任务次数
rpc.detailed-metrics.commitPending_avg_time rpc报告任务提交完成,但是该提交仍然处于pending状态的平均时间
rpc.detailed-metrics.commitPending_num_ops rpc报告任务提交完成,但是该提交仍然处于pending状态的次数
rpc.detailed-metrics.done_avg_time rpc报告任务成功完成的平均时间
rpc.detailed-metrics.done_num_ops rpc报告任务成功完成的次数
rpc.detailed-metrics.fatalError_avg_time rpc报告任务出现fatalerror的平均时间
rpc.detailed-metrics.fatalError_num_ops rpc报告任务出现fatalerror的次数
rpc.detailed-metrics.getBlockInfo_avg_time 从指定datanode获取block的平均时间
rpc.detailed-metrics.getBlockInfo_num_ops 从指定datanode获取block的次数
rpc.detailed-metrics.getMapCompletionEvents_avg_time reduce获取已经完成的map输出地址事件的平均时间
rpc.detailed-metrics.getMapCompletionEvents_num_ops reduce获取已经完成的map输出地址事件的次数
rpc.detailed-metrics.getProtocolVersion_avg_time 获取rpc协议版本信息的平均时间
rpc.detailed-metrics.getProtocolVersion_num_ops 获取rpc协议版本信息的次数
rpc.detailed-metrics.getTask_avg_time 当子进程启动后,获取jvmtask的平均时间
rpc.detailed-metrics.getTask_num_ops 当子进程启动后,获取jvmtask的次数
rpc.detailed-metrics.ping_avg_time 子进程周期性的检测父进程是否还存活的平均时间
rpc.detailed-metrics.ping_num_ops 子进程周期性的检测父进程是否还存活的次数
rpc.detailed-metrics.recoverBlock_avg_time 为指定的block开始恢复标记生成的平均时间
rpc.detailed-metrics.recoverBlock_num_ops 为指定的block开始恢复标记生成的次数
rpc.detailed-metrics.reportDiagnosticInfo_avg_time 向父进程报告任务错误消息的平均时间,该操作应尽可能少,这些消息会在jobtracker中保存
rpc.detailed-metrics.reportDiagnosticInfo_num_ops 向父进程报告任务错误消息的次数
rpc.detailed-metrics.startBlockRecovery_avg_time 开始恢复block的平均时间
rpc.detailed-metrics.startBlockRecovery_num_ops 开始恢复block的次数
rpc.detailed-metrics.statusUpdate_avg_time 汇报子进程进度给父进程的平均时间
rpc.detailed-metrics.statusUpdate_num_ops 汇报子进程进度给父进程的次数
rpc.detailed-metrics.updateBlock_avg_time 更新block到新的标记及长度的平均操作时间
rpc.detailed-metrics.updateBlock_num_ops 更新block到新的标记及长度的次数
参考资料:http://anyoneking.com/archives/677