java应用程序在hadoop集群中作为map reduce作业与单个mapper任务一起执行。如果一个javamapreduce作业(不是hive或任何其他作业只是一个直接的mapreduce作业)是oozie的一部分,那么我们将得到一个单独的mapper启动器,而实际的mapreduce作业将独立运行。那么,有没有办法将启动程序与实际的mapreduce作业运行联系起来呢?比如用启动器jobid获取实际操作的jobid?有命令要知道吗?
c7rzv4ha1#
你可以去oozie用户界面获取这些信息。单击所需的操作并转到 Child Job URLs 选项卡。在那里你可以找到所有的儿童工作启动的具体行动。 java 没有子url的oozie中的操作:map-reduce oozie的子URL选项卡中的操作:对于Map减少作业,您可以访问 Child Job URLs 选项卡并获取所有子mapreduce作业URL。
Child Job URLs
java
map-reduce
lmvvr0a82#
理想的方法是使用oozie客户机javaapi。api将帮助您获得工作流id,然后您可以从中获得外部id,即实际的hadoop作业id。另一种方法是使用oozie客户机web服务api。这将返回特定工作流的整个作业详细信息的json。然后您可以添加一个json解析器,从中提取externalid以获得实际的hadoop作业id。
bqucvtff3#
我们可以从logs链接获取任何子id的启动程序id,该链接可以从
http://<rm httpaddress:port>/ws/v1/history/mapreduce/jobs/<jobid>/jobattempts
这里我们得到一个包含logs链接的xml。如果我们通过链接中的syslog进行解析,我们会得到一个类似
Service: job_
使用这个正则表达式并找出启动程序id。如果有启动程序,那么我们可以从这里获得它(甚至对于oozie工作流中的java操作),实际的行是这样的
INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Kind: mapreduce.job, Service: <jobid>
之后的jobid Service: 是启动器作业id
Service:
3条答案
按热度按时间c7rzv4ha1#
你可以去oozie用户界面获取这些信息。单击所需的操作并转到
Child Job URLs
选项卡。在那里你可以找到所有的儿童工作启动的具体行动。java
没有子url的oozie中的操作:map-reduce
oozie的子URL选项卡中的操作:对于Map减少作业,您可以访问
Child Job URLs
选项卡并获取所有子mapreduce作业URL。lmvvr0a82#
理想的方法是使用oozie客户机javaapi。api将帮助您获得工作流id,然后您可以从中获得外部id,即实际的hadoop作业id。
另一种方法是使用oozie客户机web服务api。这将返回特定工作流的整个作业详细信息的json。然后您可以添加一个json解析器,从中提取externalid以获得实际的hadoop作业id。
bqucvtff3#
我们可以从logs链接获取任何子id的启动程序id,该链接可以从
这里我们得到一个包含logs链接的xml。如果我们通过链接中的syslog进行解析,我们会得到一个类似
使用这个正则表达式并找出启动程序id。如果有启动程序,那么我们可以从这里获得它(甚至对于oozie工作流中的java操作),实际的行是这样的
之后的jobid
Service:
是启动器作业id