[ 
https://issues.apache.org/jira/browse/HUDI-4382?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated HUDI-4382:
---------------------------------
    Labels: pull-request-available  (was: )

> Add logger for HoodieCopyOnWriteTableInputFormat
> ------------------------------------------------
>
>                 Key: HUDI-4382
>                 URL: https://issues.apache.org/jira/browse/HUDI-4382
>             Project: Apache Hudi
>          Issue Type: Bug
>            Reporter: Wenning Ding
>            Priority: Major
>              Labels: pull-request-available
>
> When querying the ro and rt bootstrap mor tables using presto I observed both 
> are failed with the following excecption:
> {{java.lang.NoSuchFieldError: LOG
>     at 
> org.apache.hudi.hadoop.HoodieCopyOnWriteTableInputFormat.makeExternalFileSplit(HoodieCopyOnWriteTableInputFormat.java:199)
>     at 
> org.apache.hudi.hadoop.HoodieCopyOnWriteTableInputFormat.makeSplit(HoodieCopyOnWriteTableInputFormat.java:100)
>     at 
> org.apache.hudi.hadoop.realtime.HoodieMergeOnReadTableInputFormat.doMakeSplitForRealtimePath(HoodieMergeOnReadTableInputFormat.java:266)
>     at 
> org.apache.hudi.hadoop.realtime.HoodieMergeOnReadTableInputFormat.makeSplit(HoodieMergeOnReadTableInputFormat.java:211)
>     at 
> org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:345)
>     at 
> org.apache.hudi.hadoop.realtime.HoodieMergeOnReadTableInputFormat.getSplits(HoodieMergeOnReadTableInputFormat.java:79)
>     at 
> org.apache.hudi.hadoop.HoodieParquetInputFormatBase.getSplits(HoodieParquetInputFormatBase.java:68)
>     at 
> com.facebook.presto.hive.StoragePartitionLoader.loadPartition(StoragePartitionLoader.java:278)
>     at 
> com.facebook.presto.hive.DelegatingPartitionLoader.loadPartition(DelegatingPartitionLoader.java:81)
>     at 
> com.facebook.presto.hive.BackgroundHiveSplitLoader.loadSplits(BackgroundHiveSplitLoader.java:224)
>     at 
> com.facebook.presto.hive.BackgroundHiveSplitLoader.access$700(BackgroundHiveSplitLoader.java:50)
>     at 
> com.facebook.presto.hive.BackgroundHiveSplitLoader$HiveSplitLoaderTask.process(BackgroundHiveSplitLoader.java:153)
>     at 
> com.facebook.presto.hive.util.ResumableTasks.safeProcessTask(ResumableTasks.java:47)
>     at 
> com.facebook.presto.hive.util.ResumableTasks.access$000(ResumableTasks.java:20)
>     at 
> com.facebook.presto.hive.util.ResumableTasks$1.run(ResumableTasks.java:35)
>     at 
> com.facebook.airlift.concurrent.BoundedExecutor.drainQueue(BoundedExecutor.java:78)
>     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:750)}}
>  
> The reason we saw {{java.lang.NoSuchFieldError: LOG}} during the presto query 
> is because in this {{HoodieCopyOnWriteTableInputFormat}} class, it inherits 
> field {{LOG}} from its parent class {{FileInputFormat}} which is a class from 
> Hadoop.
> So in the compile time, it would reference this field from 
> {{{}FileInputFormat.class{}}}. However, in the runtime, the presto doesn't 
> have all the Hadoop classes in its classpath, what Presto uses is its own 
> Hadoop dependency e.g. {{{}hadoop-apache2:jar{}}}. I checked that 
> {{hadoop-apache2}} does not have class {{FileInputFormat}} shaded which 
> causes this runtime error.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to