技巧Get:如何使用Hadoop API实现集群信息统计

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud

适用于hadoop 2.7及以上版本)

涉及到RESTful API

  • ResourceManager REST API’s:

    https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html

  • WebHDFS REST API:

    https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/WebHDFS.html

  • MapReduce History Server REST API’s:

    https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/HistoryServerRest.html

  • Spark Monitoring and Instrumentation

    http://spark.apache.org/docs/latest/monitoring.html

1. 统计HDFS文件系统实时使用情况

  • URL

    http://emr-header-1:50070/webhdfs/v1/?user.name=hadoop&op=GETCONTENTSUMMARY

  • 返回结果:

    {"ContentSummary":
  • 关于返回结果的说明:

    {"name" : "ContentSummary","properties":
  • 注意length与spaceConsumed的关系,跟hdfs副本数有关。

  • 如果要统计各个组工作目录的使用情况,使用如下请求:

    http://emr-header-1:50070/webhdfs/v1/user/feed_aliyun?user.name=hadoop&op=GETCONTENTSUMMARY

2. 查看集群的实时信息和状态

  • URL

http://emr-header-1:8088/ws/v1/cluster

  • 返回结果

{ "clusterInfo": { "id": 1495123166259,

3. 查看资源队列的实时信息,包括队列的配额信息、资源使用实时情况

  • URL

http://emr-header-1:8088/ws/v1/cluster/scheduler

  • 返回结果

{ "scheduler": { "schedulerInfo": { "type": "capacityScheduler",
  • 具体参数说明参考: https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Application_Queue_API

4. 查看实时的作业列表,列表信息中也包含了作业运行的详情信息,包括作业名称、id、运行状态、起止时间,资源使用情况。

  • URL

http://emr-header-1:8088/ws/v1/cluster/apps

  • 返回结果

{ "apps":
  • 如果要统计固定时间段的,可以加上"?finishedTimeBegin={时间戳}&finishedTimeEnd={时间戳}"参数,例如 http://emr-header-1:8088/ws/v1/cluster/apps?finishedTimeBegin=1496742124000&finishedTimeEnd=1496742134000

5. 统计作业扫描的数据量情况

job扫描的数据量,需要通过History Server的RESTful API查询,MapReduce的和Spark的又有一些差异。

5.1 Mapreduce job扫描数据量

  • URL

http://emr-header-1:19888/ws/v1/history/mapreduce/jobs/job_1495123166259_0962/counters

  • 返回结果

{ "jobCounters" : { "id" : "job_1326381300833_2_2", "counterGroup" : [

其中org.apache.hadoop.mapreduce.lib.input.FileInputFormatCounter里面的BYTES_READ为job扫描的数据量

具体参数:https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/HistoryServerRest.html#Job_Counters_API

5.2 Mapreduce job扫描数据量

  • URL

http://emr-header-1:18080/api/v1/applications/application_1495123166259_1050/executors

每个executor的totalInputBytes总和为整个job的数据扫描量。

更多参考:http://spark.apache.org/docs/latest/monitoring.html

相关推荐