การแลกเปลี่ยนระหว่าง Storm และ Hadoop (MapReduce)


12

ใครบางคนกรุณาบอกฉันเกี่ยวกับการแลกเปลี่ยนที่เกี่ยวข้องเมื่อเลือกระหว่าง Storm และ MapReduce ใน Hadoop Cluster สำหรับการประมวลผลข้อมูล แน่นอนนอกเหนือจากที่เห็นได้ชัดว่า Hadoop (การประมวลผลผ่าน MapReduce ใน Hadoop Cluster) เป็นระบบการประมวลผลแบบชุดและ Storm เป็นระบบการประมวลผลแบบเรียลไทม์

ฉันทำงานกับ Hadoop Eco System แล้ว แต่ฉันไม่ได้ทำงานกับ Storm หลังจากดูงานนำเสนอและบทความมากมายฉันยังไม่สามารถหาคำตอบที่น่าพอใจและครอบคลุมได้

หมายเหตุ: คำว่าการแลกเปลี่ยนที่นี่ไม่ได้หมายถึงการเปรียบเทียบกับสิ่งที่คล้ายกัน มันมีไว้เพื่อแสดงถึงผลที่ตามมาของการรับผลลัพธ์แบบเรียลไทม์ที่ขาดหายไปจากระบบประมวลผลแบบแบทช์

คำตอบ:


13

MapReduce : กรอบการคำนวณแบบกระจายที่ยอมรับความผิดได้ MapReduce ช่วยให้คุณสามารถดำเนินการกับข้อมูลจำนวนมาก - มีงานจำนวนมากใส่เพื่อป้องกันความล้มเหลวเนื่องจากฮาร์ดแวร์ MapReduce เป็นตัวเลือกที่ดีสำหรับการคำนวณผลลัพธ์ได้อย่างรวดเร็วเพราะมันช้า (งาน MapReduce ทั่วไปใช้เวลาในการสั่งนาทีหรือชั่วโมงไม่ใช่ไมโครวินาที)

งาน MapReduce ใช้ไฟล์ (หรือที่เก็บข้อมูลบางอย่าง) เป็นอินพุตและเขียนไฟล์ผลลัพธ์ หากคุณต้องการให้ผลลัพธ์เหล่านี้พร้อมใช้งานกับแอปพลิเคชันคุณจะต้องรับผิดชอบในการวางข้อมูลนี้ในที่ที่สามารถเข้าถึงได้ นี่อาจเป็นไปได้ช้าและจะมีความล่าช้าระหว่างค่าที่คุณสามารถแสดงและค่าที่แสดงถึงระบบของคุณในสถานะปัจจุบัน

ความแตกต่างที่สำคัญในการพิจารณาใช้ MapReduce ในการสร้างระบบแบบเรียลไทม์คือการฝึกฝนแบบจำลองของคุณและการประยุกต์ใช้แบบจำลองของคุณ หากคุณคิดว่าพารามิเตอร์แบบจำลองของคุณไม่เปลี่ยนแปลงอย่างรวดเร็วคุณสามารถปรับให้พอดีกับ MapReduce จากนั้นมีกลไกในการเข้าถึงพารามิเตอร์ก่อนการพอดีเมื่อคุณต้องการใช้แบบจำลองของคุณ

Storm : ระบบการคำนวณแบบเรียลไทม์และสตรีมมิ่ง Storm เป็นเฟรมเวิร์กออนไลน์ความหมายในแง่นี้บริการที่โต้ตอบกับแอ็พพลิเคชันที่รันอยู่ ตรงกันข้ามกับ MapReduce มันจะได้รับข้อมูลขนาดเล็ก (ไม่ใช่ไฟล์ทั้งหมด) เนื่องจากมีการประมวลผลในแอปพลิเคชันของคุณ คุณกำหนด DAG ของการดำเนินการเพื่อดำเนินการกับข้อมูล กรณีการใช้งานทั่วไปและเรียบง่ายสำหรับ Storm คือการติดตามเคาน์เตอร์และการใช้ข้อมูลนั้นเพื่อเติมข้อมูลแดชบอร์ดตามเวลาจริง

สตอร์มไม่มีอะไรเกี่ยวข้องกับข้อมูลของคุณ ที่นี่การสตรีมเป็นอีกวิธีหนึ่งที่จะกล่าวว่าการเก็บข้อมูลที่คุณสนใจและทิ้งส่วนที่เหลือไว้ ในความเป็นจริงคุณอาจมีเลเยอร์คงอยู่ในแอปพลิเคชันของคุณที่ได้บันทึกข้อมูลไปแล้วและนี่เป็นการแยกความกังวลที่ดีและเป็นธรรม

หากคุณต้องการทราบข้อมูลเพิ่มเติม ... หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับระบบเรียลไทม์ที่เหมาะสมกับพารามิเตอร์ของ MR และใช้โมเดลในแบบที่แตกต่างกันตรงนี้คือสไลด์สำหรับการพูดคุย HBase

กระดาษที่ยอดเยี่ยมที่แต่งงานแบบเรียลไทม์ในการนับและคงอยู่ในวิธีที่น่าสนใจคือGoogle News Personalization: Scalable Online Collaborative Filtering

อีกประการหนึ่งที่น่าสนใจของการแต่งงานและนายพายุSummingBird Summingbird ช่วยให้คุณกำหนดการดำเนินการวิเคราะห์ข้อมูลที่สามารถใช้งานผ่าน Storm หรือ MR


9

มันเหมือนกับถามเกี่ยวกับการแลกเปลี่ยนระหว่างกระทะกับลิ้นชักเครื่องเงินของคุณ พวกเขาไม่ใช่สองสิ่งที่คุณเปรียบเทียบจริงๆ คุณอาจใช้ร่วมกันเป็นส่วนหนึ่งของโครงการขนาดใหญ่

Hadoop นั้นไม่ใช่สิ่งเดียว แต่เป็นชื่อของสมาพันธ์บริการเช่น HDFS, Hive, HBase, MapReduce เป็นต้น Storm เป็นสิ่งที่คุณใช้กับบริการเหล่านี้เช่น HDFS หรือ HBase มันเป็นกรอบการประมวลผลสตรีม มีคนอื่น ๆ ในระบบนิเวศ Hadoop ที่ขยายเช่น Spark Streaming

คุณจะเลือกเฟรมเวิร์กการประมวลผลเมื่อใด เมื่อคุณต้องการตอบสนองต่อข้อมูลใหม่ในเวลาจริง หากคุณต้องการเครื่องมือประเภทนี้คุณสามารถปรับใช้เครื่องมือประเภทนี้ได้เช่นกัน


ฉันอ้างถึงการประมวลผลผ่าน MapReduce ในระบบ Hadoop Echo เช่นเดียวกับ Hadoop เพราะนั่นเป็นคำที่ใช้กันทั่วไป (แม้ว่าจะผิดทางเทคนิคและฉันได้เปลี่ยนคำถามตาม)
mbbce

อาจเป็นฉันผิด แต่ฉันคิดว่ามีมากกว่านั้นเพียงแค่มีการประมวลผลแบบเรียลไทม์ หากไม่มีการแลกเปลี่ยนระหว่างกันทุกคนจะต้องทำสิ่งต่าง ๆ ในเวลาจริง วิธีการแบบผสมผสานช่วยให้ได้รับประโยชน์สูงสุดจากทั้งสองโลก (ในระดับหนึ่ง) นั่นเป็นเหตุผลที่ Summingbird ถูกสร้างขึ้น
mbbce

1
ข้อแตกต่างที่สำคัญคือระบบการประมวลผลสตรีมสามารถสัมผัสข้อมูลเพียงครั้งเดียวและโดยตัวมันเองก็ไม่มีสถานะระยะยาว ปัญหาบางอย่างไม่สามารถแก้ไขได้ด้วยวิธีนี้ สำหรับปัญหาซึ่งเป็นสิ่งที่ตกลงก็เร็วกว่าที่จะใช้ระบบที่ไม่ต้องการข้อมูลที่ยังคงอยู่ก่อนในที่เก็บข้อมูล (อ่านซ้ำได้) MapReduce นั้นไม่ช้ากว่า Storm ทั้งสองเป็นภาชนะ พวกเขาเป็นกระบวนทัศน์ที่แตกต่างกันสำหรับปัญหาที่แตกต่างกัน
Sean Owen

การไม่มีสถานะถาวรในระยะยาวหมายความว่าระบบใกล้เวลาจริงดังกล่าวไม่สามารถรวบรวมการอัปเดตอินพุตในระยะเวลานานได้หรือไม่ คุณสามารถอ้างอิงฉันถึงแหล่งข้อมูลใด ๆ ที่พูดถึงเพิ่มเติมเกี่ยวกับเรื่องนี้ได้หรือไม่?
mbbce

นี่เป็นนิยามของระบบการสตรีม หากคุณนึกภาพระบบที่สามารถเข้าถึงสถานะระยะยาวได้ก็จะไม่ได้ทำการสตรีม
Sean Owen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.