ODPS JOB logview 查看方法

概述

Logview是一个在ODPS Job提交后查看和Debug任务的工具。可看到的内容有:

  • 任务的运行状态
  • 任务的运行结果
  • 任务的细节和每个步骤的进度

在用odpscmd提交任务时,会自动生成Logview的链接。生成的链接中的最后一部分是token,这是用户打开该页面并查看job信息的钥匙,Logview页面的有效期为一周。

 

Logview配置

 

注意调用odps cli 客户端时配置logview host

测试环境

project_name=odps_smoke_xxx
access_id=xxxxxxxxxxxxxxxxxxxxx
access_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
log_view_host= http://logview.xxxxxt.com:9000
tunnel_endpoint= http://dt.cxxxxxt-it.com

生产环境

实例名称:ypd_dat_xxx
AccessKey:xxxxxxxxxx
AccessSecret:xxxxxxxxxxxxxxxxx
project_name=ypd_dat_xxx
log_view_host= http://10.12.3.62:9000

客户端任务执行例子

登录统一验证机,执行查询命令

简单查询只会及时返回信息

使用函数会触发MR过程

root@ydt-acp-dcp01:/home/admin #odpscmd -e "select count(*) from report;"

ID = 20170321025448540g69z705
Log view:
http://logview.cnxxxxxxt-it.com:9000/logview/?h=http://service.cxxxxxt-it.com/api&p=cloud_report&i=20170321025448540g69z705&token=RDdlRGhQVEdLa3RuUXI3aDBmRExYR05jS29RPSxPRFBTX09CTzoxNjEzNjM1MTMxMDMwODQzLDE0OTA2Njk2ODgseyJTdGF0ZW1lbnQiOlt7IkFjdGlvbiI6WyJvZHBzOlJlYWQiXSwiRWZmZWN0IjoiQWxsb3ciLCJSZXNvdXJjZSI6WyJhY3M6b2RwczoqOnByb2plY3RzL2Nsb3VkX3JlcG9ydC9pbnN0YW5jZXMvMjAxNzAzMjEwMjU0NDg1NDBnNjl6NzA1Il19XSwiVmVyc2lvbiI6IjEifQ==
Summary:
resource cost: cpu 0.00 Core * Min, memory 0.00 GB * Min
inputs:
cloud_report.report: 0 (0 bytes)
outputs:
Job run time: 0.000
Job run mode: service job
M1_Stg1:
instance count: 1
run time: 0.000
instance time:
min: 0.000, max: 0.000, avg: 0.000
input records:
input: 0 (min: 0, max: 0, avg: 0)
output records:
R2_1_Stg1: 1 (min: 1, max: 1, avg: 1)
R2_1_Stg1:
instance count: 1
run time: 0.000
instance time:
min: 0.000, max: 0.000, avg: 0.000
input records:
input: 1 (min: 1, max: 1, avg: 1)
output records:
R2_1_Stg1FS_4108230: 1 (min: 1, max: 1, avg: 1)

+------------+
| _c0 |
+------------+
| 0 |
+------------+
root@ydt-acp-dcp01:/home/admin #

查看logview分析页面

下面结合具体的 UI界面来说明每个组件的含义。

登录上述客户端运行后返回的logview地址

image2017-3-21%2013%3A56%3A30.png?versio

在Logview的首页,上方为用户提交的SQL生成的ODPS Instance,每个SQL提交后会生成唯一的ID。Latency指的运行总共消耗的时间,别的页面的latency含义类似。 下方是该task的说明,其中的两项说明一下:

  • Result: 在Job运行结束后,可以看到运行结果,如一条select SQL的结果如下图。


  • Detail: 在Job中运行中和结束后,均可以点击Detail来查看任务运行的具体情况。
  • 点击上图result 右边的 detail

image2017-3-21%2013%3A57%3A13.png?versio

一个ODPS Task由一个或者多个Fuxi Job组成。例如当用户的SQL任务十分复杂时,ODPS会向Fuxi提交多个Fuxi Job。

每个Fuxi Job由一个或者多个Fuxi Task组成。简单的MapReduce通常会产生两个Fuxi Task,一个是Map一个是Reduce,用户会见到两个Fuxi Task的名字分别为M1和R2,当SQL比较复杂时,可能会产生多个Fuxi Task。

在每个Task中,可以看到Task的名字,对于M1_stg1,表示这是一个Map task,stage为1。R2_1_stg1中间的1表示它依赖M1执行结束才能开始执行。同理,J5_2_4_Stg2表示Join5这个阶段要依赖R2和M4两个task完全成才能启动运行。I/O Records表示这个task的输入和输出的records数。
每个Fuxi Task由一个或者多个Fuxi Instance组成,当用户的输入数据量变大时,ODPS会在每个Task启动更多的节点来处理数据。每个节点就是一个Fuxi Instance。双击Fuxi Task最右边一栏查看,或者直接双击该行,就可以打开具体的Fuxi Instance信息。
image2017-3-22%2015%3A53%3A36.png?versio

在页面的下方,Logview为不同阶段的Instance进行了分组,查看出错的节点可以选择Failed栏。

在StdOut和StdErr两栏中,可以查看标准输出和标准错误信息,用户自己打印的信息也可以在这里查看。

问题排查

出错的任务

当有任务出错时,用户可以在Logview页面的Result中看到错误的提示信息,也可以在Detail页面中通过Fuxi Instance的stderr查看具体某个Instance出错的信息。

数据倾斜 运行缓慢有时是由于在某个Fuxi Task的所有Fuxi Instance中,有个别Instance形成长尾造成,长尾的现象就是同一个Task内任务分配不均。这时可以在任务运行完后在Summay标签页中看运行结果。在每个Task中都可以看到形如这样的输出:

output records:
R2_1_Stg1: 199998999  (min: 22552459, max: 177446540, avg: 99999499)

在这里如果看到min和max相差很大,就说明在这一阶段出现了数据倾斜,比如在Join时某个字段中有一个值出现的比例很高,在这一字段上做Join就会出现数据倾斜。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值