KnightChess created HUDI-5797:
---------------------------------
Summary: bulk insert as row will throw error without mdt init
Key: HUDI-5797
URL: https://issues.apache.org/jira/browse/HUDI-5797
Project: Apache Hudi
Issue Type: Bug
Components: spark
Reporter: KnightChess
Assignee: KnightChess
`bulkinsert as row` not initTable first, it will trigger mdt init when commit
result after write in the same job, and this init will use fileSystem to init,
which will contain orphan file or error file. For example, if writer not flush
but kill by RM, the parquet file size may be 0, will triiger the following
questions when init mdt.
{code:java}
Job aborted due to stage failure: Task 1 in stage 13.0 failed 4 times, most
recent failure: Lost task 1.3 in stage 13.0 (TID 102100)
(bigdata-nmg-hdp10339.nmg01.diditaxi.com executor 832):
java.lang.IllegalStateException
at
org.apache.hudi.common.util.ValidationUtils.checkState(ValidationUtils.java:53)
at
org.apache.hudi.metadata.HoodieMetadataPayload.lambda$null$4(HoodieMetadataPayload.java:328)
at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1321)
at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
at
java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1683)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at
java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at
java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at
org.apache.hudi.metadata.HoodieMetadataPayload.lambda$createPartitionFilesRecord$5(HoodieMetadataPayload.java:323)
at org.apache.hudi.common.util.Option.ifPresent(Option.java:97)
at
org.apache.hudi.metadata.HoodieMetadataPayload.createPartitionFilesRecord(HoodieMetadataPayload.java:321)
at
org.apache.hudi.metadata.HoodieBackedTableMetadataWriter.lambda$getFilesPartitionRecords$f70c2081$1(HoodieBackedTableMetadataWriter.java:1105)
at
org.apache.spark.api.java.JavaPairRDD$.$anonfun$toScalaFunction$1(JavaPairRDD.scala:1070)
at scala.collection.Iterator$$anon$10.next(Iterator.scala:461)
at org.apache.spark.util.Utils$.getIteratorSize(Utils.scala:1892)
at org.apache.spark.rdd.RDD.$anonfun$count$1(RDD.scala:1249)
at org.apache.spark.rdd.RDD.$anonfun$count$1$adapted(RDD.scala:1249)
at
org.apache.spark.SparkContext.$anonfun$runJob$5(SparkContext.scala:2261)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
at org.apache.spark.scheduler.Task.run(Task.scala:131)
at
org.apache.spark.executor.Executor$TaskRunner.$anonfun$run$3(Executor.scala:506)
at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1463)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:509)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)