rajarshisarkar edited a comment on issue #2991:
URL: https://github.com/apache/iceberg/issues/2991#issuecomment-926014364


   @alex-shchetkov @fcvr1010 @jackye1995 I was able to reproduce the issue 
(Configurations: EMR 6.2.0, Iceberg 0.11.1, Master node: 1 instance, Core node: 
10 instances, Spark 3.0.1). When `--conf 
spark.driver.extraJavaOptions=-Djava.io.tmpdir=/tmp/driver` is not passed then 
the `tmp` container folder looks something like this: 
   
   ```
   
/mnt1/yarn/usercache/hadoop/appcache/application_1632368478936_0025/container_1632368478936_0025_02_000021/tmp
   
/mnt1/yarn/usercache/hadoop/appcache/application_1632368478936_0025/container_1632368478936_0025_02_000021/tmp/liblz4-java-4965470198489888535.so.lck
   
/mnt1/yarn/usercache/hadoop/appcache/application_1632368478936_0025/container_1632368478936_0025_02_000021/tmp/liblz4-java-4965470198489888535.so
   ```
   
   However, I still got the issue even though the folder and temp files were 
there (this specific node had 4 executor tasks running on it simulatenously):
   ```
   System.getProperty("java.io.tmpdir"): 
/mnt1/yarn/usercache/hadoop/appcache/application_1632368478936_0025/container_1632368478936_0025_02_000021/tmp
        at 
org.apache.iceberg.aws.s3.S3OutputFile.createOrOverwrite(S3OutputFile.java:61)
        at 
org.apache.iceberg.parquet.ParquetIO$ParquetOutputFile.createOrOverwrite(ParquetIO.java:153)
        at 
org.apache.iceberg.shaded.org.apache.parquet.hadoop.ParquetFileWriter.<init>(ParquetFileWriter.java:293)
        at 
org.apache.iceberg.shaded.org.apache.parquet.hadoop.ParquetFileWriter.<init>(ParquetFileWriter.java:259)
        at 
org.apache.iceberg.parquet.ParquetWriter.<init>(ParquetWriter.java:101)
        at 
org.apache.iceberg.parquet.Parquet$WriteBuilder.build(Parquet.java:250)
        at 
org.apache.iceberg.spark.source.SparkAppenderFactory.newAppender(SparkAppenderFactory.java:110)
        at 
org.apache.iceberg.spark.source.SparkAppenderFactory.newDataWriter(SparkAppenderFactory.java:139)
        at 
org.apache.iceberg.io.BaseTaskWriter$RollingFileWriter.newWriter(BaseTaskWriter.java:310)
        at 
org.apache.iceberg.io.BaseTaskWriter$RollingFileWriter.newWriter(BaseTaskWriter.java:303)
        at 
org.apache.iceberg.io.BaseTaskWriter$BaseRollingWriter.openCurrent(BaseTaskWriter.java:271)
        at 
org.apache.iceberg.io.BaseTaskWriter$BaseRollingWriter.<init>(BaseTaskWriter.java:233)
        at 
org.apache.iceberg.io.BaseTaskWriter$BaseRollingWriter.<init>(BaseTaskWriter.java:223)
        at 
org.apache.iceberg.io.BaseTaskWriter$RollingFileWriter.<init>(BaseTaskWriter.java:305)
        at 
org.apache.iceberg.io.PartitionedWriter.write(PartitionedWriter.java:73)
        at 
org.apache.spark.sql.execution.datasources.v2.DataWritingSparkTask$.$anonfun$run$7(WriteToDataSourceV2Exec.scala:441)
        at 
org.apache.spark.util.Utils$.tryWithSafeFinallyAndFailureCallbacks(Utils.scala:1411)
        at 
org.apache.spark.sql.execution.datasources.v2.DataWritingSparkTask$.run(WriteToDataSourceV2Exec.scala:477)
        at 
org.apache.spark.sql.execution.datasources.v2.V2TableWriteExec.$anonfun$writeWithV2$2(WriteToDataSourceV2Exec.scala:385)
        at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
        at org.apache.spark.scheduler.Task.run(Task.scala:127)
        at 
org.apache.spark.executor.Executor$TaskRunner.$anonfun$run$3(Executor.scala:446)
        at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1377)
        at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:449)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
   Caused by: java.io.IOException: No such file or directory
        at java.io.UnixFileSystem.createFileExclusively(Native Method)
        at java.io.File.createTempFile(File.java:2026)
        at 
org.apache.iceberg.aws.s3.S3OutputStream.newStream(S3OutputStream.java:181)
        at 
org.apache.iceberg.aws.s3.S3OutputStream.<init>(S3OutputStream.java:115)
        at 
org.apache.iceberg.aws.s3.S3OutputFile.createOrOverwrite(S3OutputFile.java:58)
        ... 26 more
   ```
   
   Also, do note that the executor tasks running on the node where the driver 
is running do not fail. Not sure why the temp files are not with prefix 
[s3fileio-](https://github.com/apache/iceberg/blob/0.11.x/aws/src/main/java/org/apache/iceberg/aws/s3/S3OutputStream.java#L178).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to