Since S3A now works perfectly with S3Guard turned off, Could Magic
Committor work with S3Guard is off? If Yes, will performance degenerate? Or
if HADOOP-17400 is fixed, then it will have comparable performance?

Steve Loughran <ste...@cloudera.com.invalid> 于2020年12月4日周五 下午10:00写道:

> as sent to hadoop-general.
>
> TL;DR. S3 is consistent; S3A now works perfectly with S3Guard turned off,
> if not, file a JIRA.  rename still isn't real, so don't rely on that or
> create(path, overwrite=false) for atomic operations
>
> -------
>
> If you've missed the announcement, AWS S3 storage is now strongly
> consistent: https://aws.amazon.com/s3/consistency/
>
> That's full CRUD consistency, consistent listing, and no 404 caching.
>
> You don't get: rename, or an atomic create-no-overwrite. Applications need
> to know that and code for it.
>
> This is enabled for all S3 buckets; no need to change endpoints or any
> other settings. No extra cost, no performance impact. This is the biggest
> change in S3 semantics since it launched.
>
> What does this mean for the Hadoop S3A connector?
>
>
>    1. We've been testing it for a while, no problems have surfaced.
>    2. There's no need for S3Guard; leave the default settings alone. If
>    you were using it, turn it off, restart *everything* and then you can
>    delete the DDB table.
>    3. Without S3 listings may get a bit slower.
>    4. There's been a lot of work in branch-3.3 on speeding up listings
>    against raw S3, especially for code which uses listStatusIterator() and
>    listFiles (HADOOP-17400).
>
>
> It'll be time to get Hadoop 3.3.1 out the door for people to play with;
> it's got a fair few other s3a-side enhancements.
>
> People are still using S3Guard and it needs to be maintained for now, but
> we'll have to be fairly ruthless about what isn't going to get closed as
> WONTFIX. I'm worried here about anyone using S3Guard against non-AWS
> consistent stores. If you are, send me an email.
>
> And so for releases/PRs, tdoing est runs with and without S3Guard is
> important. I've added an optional backwards-incompatible change recently
> for better scalability: HADOOP-13230. S3A to optionally retain directory
> markers. which adds markers=keep/delete to the test matrix. This is a pain,
> though as you can choose two options at a time it's manageable.
>
> Apache HBase
> ============
>
> You still need the HBoss extension in front of the S3A connector to use
> Zookeeper to lock files during compaction.
>
>
> Apache Spark
> ============
>
> Any workflows which chained together reads directly after
> writes/overwrites of files should now work reliably with raw S3.
>
>
>    - The classic FileOutputCommitter commit-by-rename algorithms aren't
>    going to fail with FileNotFoundException during task commit.
>    - They will still use copy to rename work, so take O(data) time to
>    commit filesWithout atomic dir rename, v1 commit algorithm can't isolate
>    the commit operations of two task attempts. So it's unsafe and very slow.
>    - The v2 commit is slow, doesn't have isolation between task attempt
>    commits against any filesystem.If different task attempts are generating
>    unique filenames (possibly to work around s3 update inconsistencies), it's
>    not safe. Turn that option off.
>    - The S3A committers' algorithms are happy talking directly to S3.
>    But: SPARK-33402 is needed to fix a race condition in the staging
>    committer.
>    - The "Magic" committer, which has relied on a consistent store, is
>    safe. There's a fix in HADOOP-17318 for the staging committer; hadoop-aws
>    builds with that in will work safely with older spark versions.
>
>
> Any formats which commit work by writing a file with a unique name &
> updating a reference to it in a consistent store (iceberg &c) are still
> going to work great. Naming is irrelevant and commit-by-writing-a-file is
> S3's best story.
>
> (+ SPARK-33135 and other uses of incremental listing will get the benefits
> of async prefetching of the next page of list results)
>
> Disctp
> ======
>
> There'll be no cached 404s to break uploads, even if you don't have the
> relevant fixes to stop HEAD requests before creating files (HADOOP-16932
> and revert of HADOOP-8143)or update inconsistency (HADOOP-16775)
>
>    - If your distcp version supports -direct, use it to avoid rename
>    performance penaltiesIf your distcp version doesn't have HADOOP-15209 it
>    can issue needless DELETE calls to S3 after a big update, and end up being
>    throttled badly. Upgrade if you can.
>    - If people are seeing problems: issues.apache.org + component HADOOP
>    is where to file JIRAs; please tag the version of hadoop libraries you've
>    been running with.
>
>
> thanks,
>
> -Steve
>

Reply via email to