有没有办法将Dataproc Spark作业的输出发送到Google Cloud日志记录? As explained in the Dataproc docs来自作业驱动程序的输出(Spark作业的主控)可在控制台中的Dataproc-> Jobs下使用。我希望在Cloud Logging中记录日志有两个原因:
目前,Cloud Logging中显示的Dataproc唯一输出是来自yarn-yarn-nodemanager- *和container _ * .stderr的日志项。我的应用程序代码的输出显示在Dataproc-> Jobs中,但不显示在Cloud Logging中,它只是Spark master的输出,而不是执行程序的输出。
tl;博士
现在不支持本机,但将在Cloud Dataproc的未来版本中本机支持。也就是说,在此期间有一个手动解决方法。
解决方法
Cloud Dataproc群集使用fluentd收集日志并将其转发到Cloud Logging。流利的配置是您看到转发的一些日志而不是其他日志的原因。因此,简单的解决方法(直到Cloud Dataproc支持Cloud Logging中的作业详细信息)是修改flientd配置。群集上流利的配置文件位于:
/etc/google-fluentd/google-fluentd.conf
有两件事情可以收集最简单的细节:
56
包含我的群集上的文件)编辑配置后,您需要重新启动google-fluentd
服务:
/etc/init.d/google-fluentd restart
最后,根据您的需要,您可能需要也可能不需要在群集上的所有节点上执行此操作。根据您的使用案例,听起来您可能只是更改主节点并进行设置。
您可以使用dataproc initialization actions for stackdriver:
gcloud dataproc clusters create <CLUSTER_NAME> \
--initialization-actions gs://<GCS_BUCKET>/stackdriver.sh \
--scopes https://www.googleapis.com/auth/monitoring.write