Apache spark java.io.FileNotFoundException:在ORC表上未找到并发读/写项
当我尝试使用spark应用程序对表进行并发读/写时,出现以下错误:Apache spark java.io.FileNotFoundException:在ORC表上未找到并发读/写项,apache-spark,hive,google-cloud-storage,Apache Spark,Hive,Google Cloud Storage,当我尝试使用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-
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)
我正在使用GoogleCloudDataProc1.4版和股票hadoop组件版本。
我以前是从拼花地板表的同一分区写和读的,但它曾经抛出一个刷新表错误。现在我使用的是ORC
格式表,但错误保持不变。是否有使用spark应用程序在配置单元表上并发读/写的解决方案?您可以尝试运行
spark.sql("refresh table your_table")
语句在执行读/写操作之前,它可以“偶尔”工作。第一条错误行表示您的存储桶中找不到文件,您可能需要对此进行检查。确保检查文件夹是否存在,并确保可以访问文件和请求的版本 对于“严格的生成一致性”,这很可能与云存储有关,并由连接器生成,更准确地说与“强一致性操作”有关。 您是否查看了错误日志以了解发生此错误的原因?您运行应用程序的环境是什么类型的 这可能更像是一个与您想要实现的并发机制相关的配置单元问题。
此外,我建议您更多地考虑使用Apache蜂箱在云DATAPROC上的建议和功能。如果需要从位于多个位置的蜂巢服务器访问蜂巢数据,您也可以考虑使用多区域桶。
此异常是否在执行读取操作时发生,是否存在并发写入操作?@jjayadeep是的,在同一分区上存在并发读取/写入操作。1.我使用最新的生成一致性。2.并发性关闭。3.我使用所有建议的设置。我使用google cloud dataproc。再薄一个g我注意到,当我将表位置切换到hdfs而不是google存储时,就没有问题了。