google-cloud-dataflow - 由于设备上没有剩余空间,作业无法完成排空
问题描述
我有一个使用 26GB 内存和 4TB 永久磁盘运行的流式传输作业。
输入集合的估计大小为1.5GB,所以我认为磁盘空间应该足够了。
但是stackdriver上有一些日志,比如
Warning: failed to write fluentd log output: write /var/log/dataflow/boot-json.log: no space left on device
[ERROR:serialization_utils.cc(302)] error writing message length: No space left on device
Failed to write position file, err: write /var/lib/agent/state/harness-boot.pos: no space left on device
这将导致作业无法成功排空。这项工作将永远停滞不前。
似乎与永久磁盘无关,而是启动磁盘?
解决方案
我终于发现,由于数据不符合我想要加载到的 BigQuery 表的架构,它被卡在了耗尽状态。虽然没有明确的信息。我需要手动加载生成的文件数据流以查看实际的错误消息。
根本原因是,当我想将字符串值写入"null"
表中的不可为空的字符串列时,null
Beam SDK 会以某种方式将值解析为 a 然后失败。
推荐阅读
- security - 保护 Google 应用制作工具中记录的特定字段
- angular - 包含 mat-accordion 的 mat-tab(s)
- c# - Windows 服务文件观察器,将重复数据多次插入数据库
- asp.net-mvc - 我们在 Kentico CMS 中有文档管理系统吗?如果是,如何集成?
- angular - 发送带有图像的 JSON 对象
- python - 使用 python 子进程 Popen 进行非阻塞输出流
- javascript - encodeURIComponent 与 Handlebars.Utils.escapeExpression
- pthreads - pthreads:唤醒线程是否具有重新进入临界区的优先级
- dart - 空状态页面和导航器问题?
- pytorch - 我可以在 Windows 上实现 kaldi-pytorch 吗?