हाल ही में हम "एचएमएफएस पर ईएमआर" -> "एसएम पर ईएमआर" (लगातार दृश्य सक्षम ईएमआरएफएस) से माइग्रेट हुए हैं और हमने महसूस किया है कि एस 3 को लिखने वाले स्पार्क 'सेवएटेबल' (लकड़ी का प्रारूप) एचडीएफएस की तुलना में ~ 4x धीमा था लेकिन हमने DirectParquetOutputCommitter - [1] w/स्पार्क 1.6 का उपयोग करने का कामकाज पाया। S3 सुस्ती के लिएस्पार्क 2.0 'DirectParquetOutputCommitter' को बहिष्कृत करता है, इसके बिना कैसे रहना है?
कारण - हम तथाकथित लकड़ी टैक्स का भुगतान करना पड़ा [2] जहां डिफ़ॉल्ट उत्पादन committer अस्थायी तालिका करने के लिए लिखते हैं और बाद में इसे का नाम बदलता है जहां S3 में नाम बदलने की कार्रवाई
भी बहुत महंगा है हम 'DirectParquetOutputCommitter' का उपयोग करने का जोखिम समझते हैं जो डेटा भ्रष्टाचार w/सट्टा कार्यों को सक्षम करने की संभावना है।
अब w/स्पार्क 2.0 इस वर्ग को बहिष्कृत कर दिया गया है और हम सोच रहे हैं कि टेबल पर हमारे पास कौन से विकल्प हैं ताकि जब हम स्पार्क 2.0 में अपग्रेड करते हैं तो हमें ~ 4x धीमे लिखने की आवश्यकता नहीं होती है। किसी भी विचार/सुझाव/सिफारिशों की अत्यधिक सराहना की जाएगी।
एक वैकल्पिक हल है कि हम में से एक है सोच सकते हैं - HDFS पर सहेजें और फिर s3DistCp के माध्यम से एस 3 में कॉपी (यह कैसे S3 के लिए हमारी हाइव मेटाडाटा-स्टोर अंक के रूप में समझदार तरीके से किया जा सकता है पर कोई विचार?)
ऐसा लगता है कि नेटफ्लिक्स ने इसे ठीक किया है - [3], किसी भी विचार पर जब वे स्रोत खोलने की योजना बना रहे हैं?
धन्यवाद।
[2] - https://www.appsflyer.com/blog/the-bleeding-edge-spark-parquet-and-s3/
[3] - https://www.youtube.com/watch?v=85sew9OFaYc&feature=youtu.be&t=8m39s http://www.slideshare.net/AmazonWebServices/bdt303-running-spark-and-presto-on-the-netflix-big-data-platform
मुझे अभी भी एक ही समस्या का सामना करना पड़ा है और वापस emr 4.8 पर वापस आ गया है। यहां जवाब देखने के लिए Curios। कुछ और जानकारी यहां मिल सकती है: https://issues.apache.org/jira/browse/SPARK-10063 – Niros