当数据空间作业读取gcs上的文件时,会发生什么?

时间:2016-09-13 18:26:25

标签: google-cloud-storage google-cloud-dataproc

当使用GCS作为hdfs时,如果更新/暂时删除了GCS文件的读取数据作业,是否可以继续运行(as it does with native hdfs)

我也可以进行一些测试,但只是想知道是否有人知道。

1 个答案:

答案 0 :(得分:4)

这种行为与HDFS非常相似,很多时候,飞行中的阅读都会很好,你会很幸运,他们会正确地运行完成。这是因为Dataproc使用的GoogleCloudStorageReadChannel大部分时间在读取的整个持续时间内都有一个无限范围流,在删除文件元数据后至少暂时存活。

但是,如果文件已在技术上被删除,则无法保证此流将运行至完成,即使预期单个流运行完成,临时错误也可能导致通道attempt explicit low-level retries如果文件已被删除,则保证失败。

对于更新,如果您执行类似重写具有更多数据的单个文件(例如,通过重写整个文件来模拟附加而不更改文件的第一部分的内容),则行为应该是正确的,在通道首次打开时读取文件的大小,因为Hadoop的拆分计算应该使工作者只读取该限制,即使文件在作业中间被更大的文件替换。