[
https://issues.apache.org/jira/browse/HBASE-28459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bryan Beaudreault updated HBASE-28459:
--------------------------------------
Description:
In hadoop3 there's the s3 magic committer which can speed up s3 writes
dramatically. In HFileOutputFormat2.createRecordWriter we cast the passed in
committer as a FileOutputCommitter. This causes a class cast exception when the
s3 magic committer is enabled:
{code:java}
Error: java.lang.ClassCastException: class
org.apache.hadoop.fs.s3a.commit.magic.MagicS3GuardCommitter cannot be cast to
class org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter {code}
We can cast to PathOutputCommitter instead, but its only available in hadoop3+.
So we will need to use reflection to work around this in branch-2.
was:
In hadoop3 there's the s3 magic committer which can speed up s3 writes
dramatically. In HFileOutputFormat2.createRecordWriter we cast the passed in
committer as a FileOutputCommitter. This causes a class cast exception when the
s3 magic committer is enabled:
Error: java.lang.ClassCastException: class
org.apache.hadoop.fs.s3a.commit.magic.MagicS3GuardCommitter cannot be cast to
class org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter
We can cast to PathOutputCommitter instead, but its only available in hadoop3+.
So we will need to use reflection to work around this in branch-2.
> HFileOutputFormat2 ClassCastException with s3 magic committer
> -------------------------------------------------------------
>
> Key: HBASE-28459
> URL: https://issues.apache.org/jira/browse/HBASE-28459
> Project: HBase
> Issue Type: Bug
> Reporter: Bryan Beaudreault
> Priority: Major
>
> In hadoop3 there's the s3 magic committer which can speed up s3 writes
> dramatically. In HFileOutputFormat2.createRecordWriter we cast the passed in
> committer as a FileOutputCommitter. This causes a class cast exception when
> the s3 magic committer is enabled:
>
> {code:java}
> Error: java.lang.ClassCastException: class
> org.apache.hadoop.fs.s3a.commit.magic.MagicS3GuardCommitter cannot be cast to
> class org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter {code}
>
> We can cast to PathOutputCommitter instead, but its only available in
> hadoop3+. So we will need to use reflection to work around this in branch-2.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)