如何解决在 GCP Logging 中获取 DataProc 输出
我有一个 DataProc 作业,它在执行过程中输出一些日志。我可以在作业输出中看到这些日志。
我的集群是根据documentation用这样的参数创建的:
dataproc:jobs.file-backed-output.enable=true
dataproc:dataproc.logging.stackdriver.enable=true
dataproc:dataproc.logging.stackdriver.job.driver.enable=true
dataproc:dataproc.logging.stackdriver.job.yarn.container.enable=true
我可以在 Logging 中看到所有系统日志,但看不到我工作的输出。我发现的最大值是滚动输出文件的 URL(甚至不是具体文件)。
我是否有机会将作业输出转发到 Logging?
根据 documentation 集群可以使用 spark:spark.submit.deployMode=cluster 创建,因此输出将登录到 yarn 用户日志组。但每当我这样做时,我的工作就会失败:
21/03/15 16:20:16 ERROR org.apache.spark.deploy.yarn.ApplicationMaster: Uncaught exception:
java.lang.IllegalStateException: User did not initialize spark context!
解决方法
我能够创建一个集群并提交如下作业。
我去了 StackDriver 并刷新了我的页面。
刷新后,我可以看到 Cloud Dataproc Job
日志过滤器。
我还注意到我运行的两个作业,作业输出都记录为“任何日志级别”。不确定您是否使用了任何日志级别过滤。
通过 Cloud Dataproc Job
并刷新页面后,您能否在日志记录过滤器中看到 dataproc:dataproc.logging.stackdriver.job.driver.enable=true
?
您使用的是受支持的图像版本之一吗?
重现步骤: 集群创建:
gcloud dataproc clusters create log-exp --region=us-central1 \
--properties 'dataproc:dataproc.logging.stackdriver.job.driver.enable=true'
作业提交:PySpark
gcloud dataproc jobs submit pyspark \
gs://dataproc-examples/pyspark/hello-world/hello-world.py \
--cluster=log-exp \
--region=us-central1
作业提交:Spark
gcloud dataproc jobs submit spark \
--cluster=log-exp \
--region=us-central1 \
--class=org.apache.spark.examples.SparkPi \
--jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
-- 100
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。