Tôi đã gặp phải một số vấn đề khi cố gắng lưu một SchemaRDD rất lớn như trong định dạng Parquet trên S3. Tôi đã đăng các câu hỏi cụ thể cho những vấn đề đó, nhưng đây là những gì tôi thực sự cần phải làm. Mã phải giống như thế nàyTiết kiệm >> 25T SchemaRDD trong định dạng Parquet trên S3
import org.apache.spark._
val sqlContext = sql.SQLContext(sc)
val data = sqlContext.jsonFile("s3n://...", 10e-6)
data.saveAsParquetFile("s3n://...")
Tôi gặp sự cố nếu tôi có hơn 2000 phân vùng hoặc nếu có phân vùng lớn hơn 5G. Điều này đặt một giới hạn trên trên kích thước tối đa SchemaRDD tôi có thể xử lý theo cách này. Giới hạn prctical gần hơn với 1T vì kích thước phân vùng khác nhau rất nhiều và bạn chỉ cần 1 phân vùng 5G để có quá trình không thành công.
câu hỏi đối phó với những vấn đề cụ thể tôi đã gặp là
- Multipart uploads to Amazon S3 from Apache Spark
- Error when writing a repartitioned SchemaRDD to Parquet with Spark SQL
- Spark SQL unable to complete writing Parquet data with a large number of shards
câu hỏi này là để xem nếu có bất kỳ giải pháp cho mục tiêu chính mà không nhất thiết phải giải quyết trực tiếp một vấn đề trên.
Để chưng cất thứ xuống có 2 vấn đề
Viết đã trở thành mảnh đơn lớn hơn 5G S # thất bại. AFAIK giới hạn này được xây dựng trong giới hạn
s3n://
nhóm. Có thể cho các nhóms3://
nhưng dường như không hoạt động với Spark vàhadoop distcp
từ HDFS cục bộ cũng không thể thực hiện được.Viết tệp tóm tắt có xu hướng không thành công khi có 1000 phân đoạn. Dường như có nhiều vấn đề với điều này. Viết trực tiếp vào S3 tạo ra lỗi trong câu hỏi được liên kết ở trên. Việc ghi trực tiếp vào HDFS cục bộ sẽ tạo ra lỗi OOM ngay cả trên một r3.8xlớn (ram 244G) một lần khi có khoảng 5000 mảnh. Điều này dường như độc lập với khối lượng dữ liệu thực tế. Tệp tóm tắt có vẻ cần thiết để truy vấn hiệu quả.
Kết hợp các vấn đề này giới hạn Bảng xếp chồng trên S3 đến 25T. Trong thực tế nó thực sự là ít hơn đáng kể kể từ khi kích thước phân đoạn có thể thay đổi rộng rãi trong một RDD và giới hạn 5G áp dụng cho phân đoạn lớn nhất.
Tôi làm cách nào để viết >> 25D RDD làm ván sàn cho S3?
Tôi đang sử dụng Spark-1.1.0.