แผนที่ฝั่งเข้าร่วมกับ เข้าร่วม



โพสต์นี้กล่าวถึงฝั่ง Hadoop Map เข้าร่วมกับ Vs. เข้าร่วม นอกจากนี้ยังเรียนรู้ว่าการลดแผนที่คืออะไรตารางเข้าร่วมการเข้าร่วมข้อดีของการใช้การดำเนินการเข้าร่วมด้านแผนที่ใน Hive

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

เข้าร่วม เป็นประโยคที่รวมบันทึกของสองตาราง (หรือชุดข้อมูล)
สมมติว่าเรามีตาราง A และ B สองตารางเมื่อเราดำเนินการเข้าร่วมกับตารางเหล่านี้จะส่งคืนระเบียนซึ่งเป็นการรวมคอลัมน์ทั้งหมด o f A และ B





ตอนนี้ให้เราเข้าใจการทำงานของการเข้าร่วมปกติด้วยตัวอย่าง ..

เมื่อใดก็ตามที่เราใช้การดำเนินการเข้าร่วมงานจะถูกกำหนดให้กับงานลดแผนที่ซึ่งประกอบด้วยสองขั้นตอน - ก ‘แผนที่เวที ’และ‘ ลดขั้นตอน ’. งานของผู้ทำแผนที่ในช่วงแผนที่คือการทำ 'อ่าน' ข้อมูลจากตารางเข้าร่วมและถึง 'กลับ' ที่ 'เข้าร่วมคีย์' และ 'เข้าร่วมมูลค่า' จับคู่เป็นไฟล์กลาง นอกจากนี้ในขั้นตอนการสับเปลี่ยนไฟล์กลางนี้จะถูกจัดเรียงและรวมเข้าด้วยกัน งานของตัวลดในช่วงลดขั้นตอนคือการใช้ผลลัพธ์ที่เรียงลำดับนี้เป็นข้อมูลเข้าและทำภารกิจการเข้าร่วม



  • การเข้าร่วมฝั่งแผนที่คล้ายกับการเข้าร่วม แต่งานทั้งหมดจะดำเนินการโดยผู้ทำแผนที่เพียงอย่างเดียว

  • การเข้าร่วมฝั่งแผนที่ส่วนใหญ่จะเหมาะกับตารางขนาดเล็กเพื่อเพิ่มประสิทธิภาพงาน



การเข้าร่วมฝั่งแผนที่จะเพิ่มประสิทธิภาพงานอย่างไร

สมมติว่าเรามีสองโต๊ะซึ่งหนึ่งในนั้นเป็นโต๊ะเล็ก เมื่อเราส่งงานลดแผนที่งานแผนที่ลดพื้นที่จะถูกสร้างขึ้นก่อนที่จะเข้าร่วมงานลดแผนที่เดิมซึ่งจะอ่านข้อมูลของตารางขนาดเล็กจาก HDFS และจัดเก็บไว้ในตารางแฮชในหน่วยความจำ หลังจากอ่านแล้วจะทำให้ตารางแฮชในหน่วยความจำเป็นไฟล์ตารางแฮช

ในขั้นตอนต่อไป เมื่องานการรวม Map Reduce ดั้งเดิมทำงานอยู่จะย้ายข้อมูลในไฟล์ตารางแฮชไปยังแคชแบบกระจาย Hadoop ซึ่งจะเติมไฟล์เหล่านี้ไปยังดิสก์ภายในเครื่องของผู้ทำแผนที่แต่ละตัว ดังนั้นผู้ทำแผนที่ทั้งหมดสามารถโหลดไฟล์ตารางแฮชถาวรนี้กลับเข้าไปในหน่วยความจำและทำการรวมได้เหมือนเดิม ขั้นตอนการดำเนินการของการรวมแผนที่ที่ปรับให้เหมาะสมแสดงไว้ในรูปด้านล่าง หลังจากการเพิ่มประสิทธิภาพตารางขนาดเล็กจะต้องอ่านเพียงครั้งเดียว นอกจากนี้หากผู้ทำแผนที่หลายเครื่องทำงานบนเครื่องเดียวกันแคชแบบกระจายจะต้องพุชไฟล์ตารางแฮชหนึ่งสำเนาไปยังเครื่องนี้เท่านั้น

ข้อดีของการใช้ map side join:

  • การรวมฝั่งแผนที่ช่วยในการลดต้นทุนที่เกิดขึ้นสำหรับการเรียงลำดับและการรวมในไฟล์ สับเปลี่ยน และ ลด ขั้นตอน
  • การรวมฝั่งแผนที่ยังช่วยในการปรับปรุงประสิทธิภาพของงานโดยการลดเวลาในการทำงานให้เสร็จ

ข้อเสียของการเข้าร่วมฝั่งแผนที่:

  • การรวมฝั่งแผนที่จะเพียงพอก็ต่อเมื่อหนึ่งในตารางที่คุณดำเนินการรวมฝั่งแผนที่มีขนาดเล็กพอที่จะใส่ลงในหน่วยความจำได้ ดังนั้นจึงไม่เหมาะที่จะทำการรวมฝั่งแผนที่บนโต๊ะซึ่งเป็นข้อมูลขนาดใหญ่ของทั้งคู่

ตัวอย่างง่ายๆสำหรับแผนที่ลดการเข้าร่วม:

ให้เราสร้างตารางสองตาราง:

  • Emp : มีรายละเอียดของพนักงานเช่นชื่อพนักงานรหัสพนักงานและแผนกที่เธอสังกัด

  • ฝ่าย: มีรายละเอียดเช่นชื่อแผนกรหัสแผนกและอื่น ๆ

สร้างไฟล์อินพุตสองไฟล์ดังที่แสดงในภาพต่อไปนี้เพื่อโหลดข้อมูลลงในตารางที่สร้างขึ้น

staff.txt

dept.txt

ตอนนี้ให้เราโหลดข้อมูลลงในตาราง

ให้เราดำเนินการ ด้านแผนที่ เข้าร่วม ในสองตารางเพื่อแยกรายชื่อแผนกที่พนักงานแต่ละคนทำงานอยู่

ที่นี่ แผนกตารางที่สอง เป็นโต๊ะเล็ก ๆ จำไว้เสมอว่าจำนวนแผนกจะน้อยกว่าจำนวนพนักงานในองค์กรเสมอ

java ide ที่ดีที่สุดสำหรับ ubuntu

ตอนนี้เรามาทำภารกิจเดียวกันด้วยความช่วยเหลือของการรวมฝั่งลดปกติ

ในขณะที่เรียกใช้การรวมทั้งสองคุณจะพบความแตกต่างทั้งสอง:

  • การเข้าร่วมลดแผนที่ทำให้งานเสร็จสิ้นในเวลาที่น้อยลงเมื่อเทียบกับเวลาที่ใช้ในการเข้าร่วมปกติ

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

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

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

ไม่เคยมีเวลาไหนดีไปกว่าการควบคุม Hadoop! เริ่มต้นตอนนี้ด้วยหลักสูตร Big Data และ Hadoop ที่คัดสรรมาเป็นพิเศษโดย Edureka

อ้างอิง:
https://www.facebook.com/notes/facebook-engineering/join-optimization-in-apache-hive/470667928919

กระทู้ที่เกี่ยวข้อง:

การฝึกอบรม Big Data 7 วิธีสามารถเปลี่ยนองค์กรของคุณได้