应用程序错误日志在哪里?

问题描述 投票:2回答:1

预期必须通过在日志文件中查找错误消息来调试我们的Python代码,我创建了一个Hadoop Streaming作业,该作业会引发异常,但找不到错误消息(或堆栈跟踪)。

类似的问题hadoop streaming: where are application logs?hadoop streaming: how to see application logs?使用Python的logging模块,在这里不希望使用此模块,因为Python已经记录了错误,因此我们不必这样做。

这里是映射器代码;我们使用Hadoop的内置reducer aggregate

#!/usr/bin/python
import sys, re
import random

def main(argv):
  line = sys.stdin.readline()
  pattern = re.compile("[a-zA-Z][a-zA-Z0-9]*")
  try:
    while line:
      for word in pattern.findall(line):
        print "LongValueSum:" + word.lower() + "\t" + "1"
        x = 1 / random.randint(0,99)
      line = sys.stdin.readline()
  except "end of file":
    return None
if __name__ == "__main__":
  main(sys.argv)

x = 1 / random.randint(0,99)行是应该 创建一个ZeroDivisionError,确实作业失败,但是对日志文件进行grep操作不会显示错误。我们需要在某个地方设置一个特殊的标志吗?

我们浏览了Google Dataproc文档和Hadoop Streaming文档。

python hadoop-streaming google-cloud-dataproc
1个回答
1
投票
[运行Cloud Dataproc作业时,作业驱动程序输出流式传输到GCP控制台,显示在命令终端窗口中(用于从命令行提交的作业),并存储在Cloud Storage中,请参阅accessing job driver output。您也可以在StackDriver中找到名称为dataproc.job.driver的日志。

您还可以在创建集群时启用YARN容器日志,并在StackDriver中查看它们,请参阅instructions

除此之外,StackDriver中的yarn-userlogs也可能有用。

© www.soinside.com 2019 - 2024. All rights reserved.