-
Notifications
You must be signed in to change notification settings - Fork 151
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Umbrella] Object Storage Support (Help Wanted) #1030
Comments
I'm not familiar with object storage. Could you give me more inputs? @hiboyang @pspoerri @melodyyangaws @zhaohc10 @LantaoJin @yuyang733 |
cc @xianjingfeng @zuston Could we finish this issue together? |
Regarding upload to S3: As long as you use the Apache HDFS S3A adapter you can stream data to an object store. However you can only append as long as you keep the stream open and you can only do so from a single client. The S3A filesystem implementation uses buffered multi-part uploads to stream a file to an object store. Streaming from multiple clients should be possible in principle, but the coordination overhead and the way Java streams are implemented make things tricky. Regarding Regarding |
Thanks for your input. |
Yes. I will
I hope the append could be avoided in this design. And I think it's OK to store same partition data into different files in object store. Like this:
The one flush of shuffle-server for one partition could be flushed into one file. But this is ensured by the following rules.
For reader, it could get the If I'm wrong, feel free to point out |
It is ok for me. |
Agree. And I think we can let users to choose whether store index files in memory or other external system. |
Yeah, a lot of small index files will not work well in object storage like S3. Maybe good idea to store in other places. Or is it possible to serve index file from Spark driver? |
With my limited experience, I think s3 is a good choice in this issue. If we choose to support s3, then it will easily extend to other filesystems (NFS, CIFS, EFS, GCS fuse, Azure File System) by using a solution like MinIO.
I think we may have other solution for merging small index files like application-and-practice-of-spark-small-file-merging-function-on-aws-s3? Feel free to correct me if I am wrong. |
Thanks for your input. |
I will propose a document at this weekend. First, we can only define some interfaces. Then, we will implement some object systems according to the need of xianjingfeng and zuston. @xianjingfeng What object system do you want to implement? |
@jiafuzha Do you have extra input? |
s3 |
Is this on the roadmap? @jerqi @xianjingfeng |
I'm interested on this proposal, and will implement this in rust side. @jerqi |
Code of Conduct
Search before asking
Describe the proposal
Now, remote shuffle storage only support Hadoop Compatible Filesystem. Object storage is also important and widely used in the big data system. Object storage has different implement. Some systems don't support the method of
list
or have bad performance of the methodlist
. Some systems need to consider file names to use more buckets of object. Some object storage don't support the methodappend
. Now, we use store index and data separately, it will cause many small index files if we don't support the methodappend
. So we should consider merging index files and data files. To have better performance, we should support object storage to adapt different object storage systems.https://docs.google.com/document/d/1E88wZA9Yhr-pGeUEfxo6uSgsIXxg_ivPYBNcTOeaaZA/edit
Task list
Are you willing to submit PR?
The text was updated successfully, but these errors were encountered: