google-cloud-dataflow - Google Dataflow - 如果写入本地服务器,如何在 java 中指定 TextIO?
问题描述
Google Dataflow - 如果从 Dataflow 写入本地服务器,如何指定 TextIO?(前提是 On-prem 服务器通过 Cloud VPN 连接到 GCP)
pipeline.apply("Writer",TextIO.write().to("XXX.XXX.XXX.XXX://tmp/somedirectory/somefilename");
在运行 Dataflow 作业时,是否像上面那样提供本地 IP 和目录?我尝试了,并且在步骤摘要中添加了元素,作业成功完成,但我没有看到本地服务器中写入的任何文件。[不确定它是否与本地服务器的身份验证有关]
解决方案
Apache beam textio 需要使用模式前缀指定文件系统,例如 file:// gs:// hdfs:// 。没有任何这些我相信它默认为本地文件。
因此,鉴于您指定的“文件名”没有架构,我怀疑它会被写入工作人员的本地磁盘,这不是很有用!
因此,正如@ajp 建议的那样,您需要写入例如 GCS,然后让您的本地服务器从 GCS 读取。- 您或许可以使用 pub/sub 消息作为结果准备就绪的信号通知本地服务器
推荐阅读
- caching - 将浏览器缓存用于移动设备
- imagemagick - ImageMagick 7.0.7-34 安装给出“未定义的对‘PNGSetExifProfile’的引用”
- java - spring cloud zuul 1.1.0M4版本添加拦截器
- python-3.x - 使用 Selenium WebDriver 进行性能测试
- vb.net - 删除该属性并提供您自己的私有锁对象。- 代码 Dx
- php - 加分,然后显示余额
- dynamic - Restsharp,响应分块不同的 JSON 文档
- .net - “IBM437”不是受支持的编码名称
- javascript - Cesuim 处理时间栏点击
- bash - 无法在 mac 上执行 bash 脚本