我正在使用的应用程序有很多mapreduce cron作业在运行,其中一些作业时不时地会产生错误(大多数应用程序错误、transiterErrors、DatabaseErrors、TimeOuts等),这些错误有些零星,而且大部分情况下不会困扰我。在
然而,在调试和测试时,我发现不可能确定哪些作业导致了哪些错误。日志通常只给我一个实例,但甚至没有提示作业的id。url只是一个通用的/mapreduce/worker_回调,因此也没有任何帮助。在
我觉得我好像漏掉了什么东西,或者真的没有办法确定哪个日志属于哪个MR管道,或者相反——找到特定于某个MR管道的日志?在
在您的日志中,您有
task_name=appengine-mrshard-158112310423699B53FC1-22-0
。158112310423699B53FC1
部分对应于一个特定的作业ID。此作业的详细信息通常可以在app/mapreduce的url中找到。这样,你就可以找到你给这份工作起的名字了。在查看作业的详细信息
要查看特定作业ID的详细信息(例如
158112310423699B53FC1
):查看整个管道
使用以下步骤可以从作业ID中找到根管道ID。在
使用作业ID查询
_AE_MR_MapreduceState
表。使用datastore viewer:管道ID可以在
mapreduce_spec
列中找到,即pipeline_id
。找到的管道ID可能不是根管道ID。若要查找根管道ID,请查询
^{pr2}$_AE_Pipeline_Record
。使用数据存储查看器:列root_pipeline的键是MapReduce作业的根管道ID。
最后,使用根管道键的名称,可以在此处查看整个MapReduce管道:
相关问题 更多 >
编程相关推荐