我有一个Cloud Dataflow工作,在运行任何应用程序逻辑之前都处于启动阶段。我通过在processElement
步骤内部添加了一个日志输出语句对此进行了测试,但是它没有出现在日志中,所以它似乎没有被访问。
我在日志中可以看到以下消息,每分钟都会显示一次:
logger: Starting supervisor: /etc/supervisor/supervisord_watcher.sh: line 36: /proc//oom_score_adj: Permission denied
这些每隔几秒循环一次:
VM is healthy? true.
http: TLS handshake error from 172.17.0.1:38335: EOF
Job is in state JOB_STATE_RUNNING, will check again in 30 seconds.
作业ID为2015-09-14_06_30_22-15275884222662398973
,但我还有另外两个工作(2015-09-14_05_59_30-11021392791304643671
,2015-09-14_06_08_41-3621035073455045662
),我早上就开始工作,并且遇到同样的问题。
关于可能导致此问题的任何想法?
答案 0 :(得分:2)
听起来你的管道有一个BigQuery源,后跟DoFn
。在运行DoFn
(因此到达打印语句)之前,管道运行BigQuery导出作业以在GCS中创建数据的快照。这可确保管道获得BigQuery表中包含的数据的一致视图。
看起来这个BigQuery导出工作花了很长时间。遗憾的是,这不是出口过程的进度指标。如果再次运行管道并让它运行更长时间,则应完成导出过程,然后DoFn
将开始运行。
我们正在研究改善出口工作的用户体验,以及弄清楚为什么花费的时间比我们预期的要长。