应用程序错误日志在哪里?
Where are application errors logs?
考虑到必须通过在日志文件中查找错误消息来调试我们的 Python 代码,我创建了一个抛出异常但找不到错误消息的 Hadoop Streaming 作业(或堆栈跟踪)。
类似的问题 hadoop streaming: where are application logs? and 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 文档。
当您 运行 Cloud Dataproc 作业时,作业驱动程序输出流式传输到 GCP 控制台,显示在命令终端 window(对于从命令行提交的作业),并存储在云存储,请参阅 accessing job driver output。您还可以在 StackDriver 中找到名称为 dataproc.job.driver
.
的日志
您还可以在创建集群时启用 YARN 容器日志并在 StackDriver 中查看它们,请参阅 instructions。
除此之外,StackDriver 中的 yarn-userlogs
可能也很有用。
考虑到必须通过在日志文件中查找错误消息来调试我们的 Python 代码,我创建了一个抛出异常但找不到错误消息的 Hadoop Streaming 作业(或堆栈跟踪)。
类似的问题 hadoop streaming: where are application logs? and 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 文档。
当您 运行 Cloud Dataproc 作业时,作业驱动程序输出流式传输到 GCP 控制台,显示在命令终端 window(对于从命令行提交的作业),并存储在云存储,请参阅 accessing job driver output。您还可以在 StackDriver 中找到名称为 dataproc.job.driver
.
您还可以在创建集群时启用 YARN 容器日志并在 StackDriver 中查看它们,请参阅 instructions。
除此之外,StackDriver 中的 yarn-userlogs
可能也很有用。