当使用GCS作为hdfs时,如果更新/暂时删除了GCS文件的读取数据标签>作业,是否可以继续运行(as it does with native hdfs)?
我也可以进行一些测试,但只是想知道是否有人知道。
答案 0 :(得分:4)
这种行为与HDFS非常相似,很多时候,飞行中的阅读都会很好,你会很幸运,他们会正确地运行完成。这是因为Dataproc使用的GoogleCloudStorageReadChannel
大部分时间在读取的整个持续时间内都有一个无限范围流,在删除文件元数据后至少暂时存活。
但是,如果文件已在技术上被删除,则无法保证此流将运行至完成,即使预期单个流运行完成,临时错误也可能导致通道attempt explicit low-level retries如果文件已被删除,则保证失败。
对于更新,如果您执行类似重写具有更多数据的单个文件(例如,通过重写整个文件来模拟附加而不更改文件的第一部分的内容),则行为应该是正确的,在通道首次打开时读取文件的大小,因为Hadoop的拆分计算应该使工作者只读取该限制,即使文件在作业中间被更大的文件替换。