当我尝试使用spark应用程序对表进行并发读/写时,出现以下错误:
19/10/28 15:26:49 WARN TaskSetManager: Lost task 213.0 in stage 6.0 (TID 407, prod.internal, executor 3): java.io.FileNotFoundException: Item not found: 'gs://bucket/db_name/table_name/p1=xxx/part-1009-54ad3fbb-5eed-43ba-a7da-fb875382897c.c000'. If you enabled STRICT generation consistency, it is possible that the live version is still available but the intended generation is deleted.
at com.google.cloud.hadoop.repackaged.gcs.com.google.cloud.hadoop.gcsio.GoogleCloudStorageExceptions.getFileNotFoundException(GoogleCloudStorageExceptions.java:38)
at com.google.cloud.hadoop.repackaged.gcs.com.google.cloud.hadoop.gcsio.GoogleCloudStorageImpl.open(GoogleCloudStorageImpl.java:631)
我正在使用googleclouddataprocversion1.4和hadoop组件版本。我以前是从Parquet地板表的同一分区进行写和读的,但它过去常常抛出一个刷新表错误。现在我用的是 ORC
格式化表,但错误保持不变。使用spark应用程序在配置单元表上并发读/写有什么解决方案吗?
2条答案
按热度按时间siv3szwd1#
你可以试着跑步;
在读/写操作之前,它可以“偶尔”工作。
oprakyz72#
第一个错误行表示您的bucket中找不到文件,您可能需要对此进行检查。确保检查文件夹是否存在,并确保可以访问文件和请求的版本。
对于“严格的生成一致性”,这很可能与云存储和连接器产生有关,更确切地说与“强一致性操作”有关。https://cloud.google.com/storage/docs/consistency
您是否查看了错误日志以了解发生此错误的原因?您运行应用程序的环境是什么类型的?
这可能更像是一个与您要实现的并发机制相关的配置单元问题。https://cwiki.apache.org/confluence/display/hive/locking
另外,我建议您更多地了解在clouddataproc上使用apachehive的建议和功能。如果需要从位于多个位置的配置单元服务器访问配置单元数据,还可以考虑使用多区域存储桶。https://cloud.google.com/solutions/using-apache-hive-on-cloud-dataproc