如何在googleappengine上查找特定于单个MapReduce作业的日志?

2024-05-15 01:00:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用的应用程序有很多mapreduce cron作业在运行,其中一些作业时不时地会产生错误(大多数应用程序错误、transiterErrors、DatabaseErrors、TimeOuts等),这些错误有些零星,而且大部分情况下不会困扰我。在

然而,在调试和测试时,我发现不可能确定哪些作业导致了哪些错误。日志通常只给我一个实例,但甚至没有提示作业的id。url只是一个通用的/mapreduce/worker_回调,因此也没有任何帮助。在

我觉得我好像漏掉了什么东西,或者真的没有办法确定哪个日志属于哪个MR管道,或者相反——找到特定于某个MR管道的日志?在


Tags: 实例id应用程序url管道错误作业情况
1条回答
网友
1楼 · 发布于 2024-05-15 01:00:10

在您的日志中,您有task_name=appengine-mrshard-158112310423699B53FC1-22-0158112310423699B53FC1部分对应于一个特定的作业ID。此作业的详细信息通常可以在app/mapreduce的url中找到。这样,你就可以找到你给这份工作起的名字了。在

查看作业的详细信息

要查看特定作业ID的详细信息(例如158112310423699B53FC1):

appid.appspot.com/mapreduce/detail?mapreduce_id=158112310423699B53FC1

查看整个管道

使用以下步骤可以从作业ID中找到根管道ID。在

  1. 使用作业ID查询_AE_MR_MapreduceState表。使用datastore viewer:

    SELECT * FROM _AE_MR_MapreduceState WHERE __key__ = Key('_AE_MR_MapreduceState','158112310423699B53FC1')
    

    管道ID可以在mapreduce_spec列中找到,即pipeline_id

  2. 找到的管道ID可能不是根管道ID。若要查找根管道ID,请查询_AE_Pipeline_Record。使用数据存储查看器:

    ^{pr2}$

    列root_pipeline的键是MapReduce作业的根管道ID。

  3. 最后,使用根管道键的名称,可以在此处查看整个MapReduce管道:

    appid.appspot.com/mapreduce/pipeline/status?root=0607a90aa90f11e2bbfea3556e435fbc

相关问题 更多 >

    热门问题