【原创】大叔经验分享(6)Oozie如何查看提交到Yarn上的任务日志

通过oozie job id可以查看流程详细信息,命令如下:

oozie job -info 0012077-180830142722522-oozie-hado-W

 

流程详细信息如下:

Job ID : 0012077-180830142722522-oozie-hado-W

------------------------------------------------------------------------------------------------------------------------------------

Workflow Name : test_wf

App Path      : hdfs://hdfs_name/oozie/test_wf.xml

Status        : KILLED

Run           : 0

User          : hadoop

Group         : -

Created       : 2018-09-25 02:51 GMT

Started       : 2018-09-25 02:51 GMT

Last Modified : 2018-09-25 02:53 GMT

Ended         : 2018-09-25 02:53 GMT

CoordAction ID: -

 

Actions

------------------------------------------------------------------------------------------------------------------------------------

ID                                                                            Status    Ext ID                 Ext Status Err Code 

------------------------------------------------------------------------------------------------------------------------------------

0012077-180830142722522-oozie-hado-W@:start:                                  OK        -                      OK         -        

------------------------------------------------------------------------------------------------------------------------------------

0012077-180830142722522-oozie-hado-W@test_spark_task                  ERROR     application_1537326594090_5663FAILED/KILLEDJA018    

------------------------------------------------------------------------------------------------------------------------------------

0012077-180830142722522-oozie-hado-W@Kill                                     OK        -                      OK         E0729    

------------------------------------------------------------------------------------------------------------------------------------

 

失败的任务定义如下

<action name="test_spark_task"> 

        <spark xmlns="uri:oozie:spark-action:0.1"> 

            <job-tracker>${job_tracker}</job-tracker> 

            <name-node>${name_node}</name-node> 

            <master>${jobmaster}</master> 

            <mode>${jobmode}</mode> 

            <name>${jobname}</name> 

            <class>${jarclass}</class> 

            <jar>${jarpath}</jar> 

            <spark-opts>--executor-memory 4g --executor-cores 2 --num-executors 4 --driver-memory 4g</spark-opts> 

        </spark>

 

在yarn上可以看到application_1537326594090_5663对应的application如下

application_1537326594090_5663       hadoop oozie:launcher:T=spark:W=test_wf:A=test_spark_task:ID=0012077-180830142722522-oozie-hado-W         Oozie Launcher

 

查看application_1537326594090_5663日志发现

2018-09-25 10:52:05,237 [main] INFO  org.apache.hadoop.yarn.client.api.impl.YarnClientImpl  - Submitted application application_1537326594090_5664

 

yarn上application_1537326594090_5664对应的application如下

application_1537326594090_5664       hadoop    TestSparkTask SPARK

 

即application_1537326594090_5664才是Action对应的spark任务,为什么中间会多一步,类结构和核心代码详见 https://www.cnblogs.com/barneywill/p/9895225.html

简要来说,Oozie执行Action时,即ActionExecutor(最主要的子类是JavaActionExecutor,hive、spark等action都是这个类的子类),JavaActionExecutor首先会提交一个LauncherMapper(map任务)到yarn,其中会执行LauncherMain(具体的action是其子类,比如JavaMain、SparkMain等),spark任务会执行SparkMain,在SparkMain中会调用org.apache.spark.deploy.SparkSubmit来提交任务

 

如果提交的是spark任务,那么按照上边的方法就可以跟踪到实际任务的applicationId;
如果你提交的hive2任务,实际是用beeline启动,从hive2开始,beeline命令的日志已经简化,不像hive命令可以看到详细的applicationId和进度,这时有两种方法:

1)修改hive代码,使得beeline命令和hive命令一样有详细日志输出

详见:https://www.cnblogs.com/barneywill/p/10185949.html

2)根据application tag手工查找任务

oozie在使用beeline提交任务时,会添加一个mapreduce.job.tags参数,比如

--hiveconf
mapreduce.job.tags=oozie-9f896ad3d40c261235dc6858cadb885c

但是这个tag从yarn application命令中查不到,只能手工逐个查找(实际启动的任务会在当前LuancherMapper的applicationId上递增),

然后就可以看到实际启动的applicationId了

 

另外还可以从job history server上看到application的详细信息,比如configuration、task等

查看hive任务执行的完整sql详见:https://www.cnblogs.com/barneywill/p/10083731.html

 

转载于:https://www.cnblogs.com/barneywill/p/10109487.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Beta 冲刺(3/7)

Beta 冲刺&#xff08;3/7&#xff09; Beta 冲刺 &#xff08;3/7&#xff09; 队名&#xff1a;第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬&#xff08;组长&#xff09; 过去两天完成了哪些任务 文字/口头描述 参与开发关键词提醒部分展示G…

vuex的理解

首先需要了解vuex的基本概念和使用方式&#xff0c;vue的官网也有很详细的说明或者浏览&#xff1a;https://zhuanlan.zhihu.com/p/24357762。vue是单页应用所以当页面刷新时vuex的数据随之也被清空了&#xff0c;如何实现页面被刷新而数据没有被清空呢&#xff1f;vuex主要是v…

Redis高可用sentinel

1.sentine介绍 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案&#xff0c;当用Redis做Master-slave的高可用方案时&#xff0c;假如master宕机了&#xff0c;Redis本身(包括它的很多客户端)都没有实现自动进行主备切换&#xff0c;而Redis-sentinel本身也是一个独立运行…

关于eclipse web项目认不到用户库的问题

解决方法&#xff1a; 选中项目右键属性&#xff0c;弹出对话框&#xff0c;选择Deployment Assembly&#xff0c;设置用户库对应路径。

Python中 类和对象调用其他类中的变量和方法

class house_item: def __init__(self,name,area): self.namename self.areaarea def __str__(self): return "%s,\n面积是%.2f" % (self.name,self.area)class house: def __init__(self,house_type,house_area): self.typeho…

201771010109焦旭超《面向对象程序设计(java)》第十六周学习总结

1、实验目的与要求 (1) 掌握线程概念&#xff1b; (2) 掌握线程创建的两种技术&#xff1b; (3) 理解和掌握线程的优先级属性及调度方法&#xff1b; (4) 掌握线程同步的概念及实现技术&#xff1b; 2、实验内容和步骤 实验1&#xff1a;测试程序并进行代码注释。 测试程序1&am…

Hibernate hql getHibernateTemplate()常用方法汇总

getHibernateTemplate()常用方法 一、find(String queryString); 示例&#xff1a; Java代码 this.getHibernateTemplate().find("from bean.User"); 返回所有User对象 二、find(String queryString , Object value); 示例&#xff1a; Java代码 this.getHib…

ASP.NET操作DataTable各种方法总结(给Datatable添加行列、DataTable选择排序等)

using System; using System.Collections.Generic; using System.Data; using System.Text;namespace Gzcms.Common {public class CreateTable{public static DataTable getTable(){//1.创建 datatable DataTable dt new DataTable("datatable");//可以给表创建一…

csvn下载地址

csvn下载地址&#xff1a;https://ctf.open.collab.net/sf/go/projects.svnedge/wiki

封装jquery的ajax,便于加载等待提示框

先贴上代码。传入4给参数&#xff0c;保证post&#xff0c;get都能执行&#xff0c;和普通的ajax区别在于添加了设置的timeout。并在每一次的发送接收请求后执行dialog&#xff08;&#xff09;方法。function AjaxRequest(apiUrl, method, param, callback) {$.ajax({url: api…

nginx+tomcat7+memcached

tomcat/conf/server.xml下Context标签下添加 <Manager className"de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes"n1:127.0.0.1:11211" sticky"false" lockingMode"auto" …

c# Brush、Color、String相互转换

using System.Windows.Media; 1、String转换成Color Color color (Color)ColorConverter.ConvertFromString(string); 2、String转换成Brush BrushConverter brushConverter new BrushConverter(); Brush brush (Brush)brushConverter.ConvertFromString(string)…

jSignature使用方法

一、初始画布var arguments { width: 100%, height: 100%, color:#000, "decor-color": "transparent",//去除默认画布上那条横线 lineWidth: 3 }; $("#signature")…

修改gitignore 后不起作用

git rm -r --cached .git add .git commit -m update .gitignore转载于:https://www.cnblogs.com/php-no-2/p/10131903.html

问题解决:Sublime 乱码显示GBK编码文件解决

安装Package Control 自动安装很方便&#xff0c;网上代码很多。我用的是Sublime Text3&#xff0c;通过View–Show Console或者使用快捷键Ctrl 调出console&#xff0c;然后将下边的代码复制粘贴&#xff0c; import urllib.request,os; pf Package Control.sublime-package…

bzoj 1069 [SCOI2007]最大土地面积——旋转卡壳

题目&#xff1a;https://www.lydsy.com/JudgeOnline/problem.php?id1069 发现 n 可以 n^2 。所以枚举对角线&#xff0c;分开的两部分三角形就可以旋转卡壳了。 注意坐标是实数。忘了改生成函数调了 2h …… 也不知道用不用管凸包上只有 3 个点的情况。反正这样的话就是枚举一…

阿里巴巴的26款超神Java开源项目!

1.分布式应用服务开发的一站式解决方案 Spring Cloud Alibaba Spring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件&#xff0c;方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托…

eclipse导出doc,文件夹为空

解决方法为&#xff1a; 在Extra Javadoc options输入框中填入-encoding UTF-8 -charset UTF-8

centos7安装csvn

1.赋予svnuser用户sudo权限&#xff0c;以root权限执行: 执行命令vi /etc/sudoers 在## Allow root to run any commands anywhere root ALL(ALL) ALL 之后添加 svnuser ALL(ALL) ALL 赋予用户svnuser sudo的权限。 强制保存并退出Esc:wq! 2.配置csvn使用1-…

为DEV C++/CodeBlock配置gdb调试遇到的问题

DEV C和CodeBlock都只是一个IDE&#xff0c;不能编译调试&#xff0c;需要自己配置MINGW和gdb调试 1、MINGW 在这下载mingw-get-setup.exe安装即可。 https://sourceforge.net/projects/mingw/files/MinGW/ 配置MINGW很简单&#xff0c;安装包就好了&#xff0c;可以只安装gcc和…