สถาปัตยกรรมเส้นด้าย Hadoop คืออะไรและส่วนประกอบต่างๆ
เผยแพร่แล้ว: 2020-02-10สารบัญ
Hadoop YARN บทนำ
YARN เป็นส่วนประกอบหลักของ Hadoop v2.0 YARN ช่วยเปิด Hadoop โดยอนุญาตให้ประมวลผลและเรียกใช้ข้อมูลสำหรับการประมวลผลแบบแบตช์ การประมวลผลแบบสตรีม การประมวลผลแบบโต้ตอบ และการประมวลผลกราฟซึ่งจัดเก็บไว้ใน HDFS ด้วยวิธีนี้ จะช่วยให้เรียกใช้แอปพลิเคชันแบบกระจายประเภทต่างๆ ที่ไม่ใช่ MapReduce
ในสถาปัตยกรรม YARN เลเยอร์การประมวลผลจะถูกแยกออกจากเลเยอร์การจัดการทรัพยากร ในการสร้างการแยกระหว่างตัวจัดการแอปพลิเคชันและตัวจัดการทรัพยากรเป็นความรับผิดชอบของตัวติดตามงานในเวอร์ชัน Hadoop 1.0 YARN อนุญาตให้ข้อมูลที่จัดเก็บใน HDFS (ระบบไฟล์กระจาย Hadoop) ถูกประมวลผลและเรียกใช้โดยเครื่องมือประมวลผลข้อมูลต่างๆ เช่น การประมวลผลแบบแบตช์ การประมวลผลสตรีม การประมวลผลแบบโต้ตอบ การประมวลผลกราฟ และอื่นๆ อีกมากมาย ดังนั้นประสิทธิภาพของระบบจึงเพิ่มขึ้นด้วยการใช้ YARN การประมวลผลของแอปพลิเคชันมีกำหนดการใน YARN ผ่านส่วนประกอบต่างๆ ทรัพยากรหลายประเภทยังได้รับการจัดสรรอย่างต่อเนื่องเพื่อการใช้ประโยชน์สูงสุด YARN ช่วยได้มากในการใช้ทรัพยากรที่มีอยู่อย่างเหมาะสม ซึ่งจำเป็นมากสำหรับการประมวลผลข้อมูลปริมาณมาก
ทำไมต้อง YARN?
MapReduce ทำหน้าที่จัดการและประมวลผลทรัพยากร Hadoop v1.0 เรียกอีกอย่างว่า MapReduce เวอร์ชัน 1 (MRV1) มีเจ้านายเพียงคนเดียวสำหรับ Job Tracker
คุณจะไม่เชื่อว่าโปรแกรมนี้เปลี่ยนอาชีพของนักเรียนได้อย่างไรใน Hadoop เวอร์ชันก่อนหน้านั้นคือ Hadoop เวอร์ชัน 1.0 ซึ่งเรียกอีกอย่างว่า MapReduce เวอร์ชัน 1 (MRV1) ใช้เพื่อดำเนินการทั้งงานของกระบวนการและการจัดการทรัพยากรด้วยตัวเอง มีโมดูลติดตามงานที่รับผิดชอบทุกอย่าง ดังนั้นจึงเป็นต้นแบบเดียวที่จัดสรรทรัพยากรสำหรับแอปพลิเคชัน ดำเนินการจัดกำหนดการสำหรับความต้องการ และตรวจสอบงานของการประมวลผลในระบบ Hadoop เวอร์ชัน 1.0 ลดงานและกำหนดแผนที่ในกระบวนการย่อยต่างๆ ซึ่งเรียกว่าตัวติดตามงาน Task Tracker ยังรายงานความคืบหน้าของกระบวนการเป็นระยะๆ แต่ปัญหาหลักไม่ใช่ปัญหาคือการออกแบบต้นแบบเดียวสำหรับทุกคน ส่งผลให้เกิดปัญหาคอขวด อีกทั้งการใช้ทรัพยากรในการคำนวณไม่มีประสิทธิภาพ ดังนั้นความสามารถในการปรับขนาดจึงกลายเป็นปัญหากับ Hadoop เวอร์ชันนี้ แต่ในแง่ดี ปัญหานี้แก้ไขได้โดย YARN ซึ่งเป็นองค์ประกอบหลักที่สำคัญใน Hadoop เวอร์ชัน 2.0 ซึ่งเปิดตัวในปี 2555 โดย Yahoo และ Hortonworks แนวคิดพื้นฐานที่อยู่เบื้องหลังการบรรเทาทุกข์นี้คือการแยก MapReduce ออกจากการจัดการทรัพยากรและการจัดกำหนดการงานแทนที่จะเป็นต้นแบบเดียว ดังนั้น YARN จึงมีหน้าที่รับผิดชอบในการจัดตารางงานและการจัดการทรัพยากร
ใน Hadoop 2.0 แนวคิดของ Application Master และ Resource Manager ได้รับการแนะนำโดย YARN ทั่วทั้งคลัสเตอร์ของ Hadoop การใช้ทรัพยากรจะถูกตรวจสอบโดยตัวจัดการทรัพยากร
มีคุณสมบัติบางอย่างของ YARN เนื่องจากมีชื่อเสียงมาก ได้แก่ :

- ผู้เช่าหลายราย: YARN อนุญาตให้เข้าถึงเอ็นจิ้นการประมวลผลข้อมูลหลายตัว เช่น เอ็นจิ้นการประมวลผลแบบแบตช์ เอ็นจิ้นการประมวลผลสตรีม เอ็นจิ้นการประมวลผลเชิงโต้ตอบ เอ็นจิ้นการประมวลผลกราฟ และอีกมากมาย สิ่งนี้ทำให้บริษัทได้รับประโยชน์จากการเช่าหลายราย
- การ ใช้คลัสเตอร์: คลัสเตอร์ถูกใช้อย่างมีประสิทธิภาพ เนื่องจากคลัสเตอร์ถูกใช้แบบไดนามิกใน Hadoop ด้วยความช่วยเหลือของ YARN
- ความเข้ากันได้ : YARN ยังเข้ากันได้กับ Hadoop เวอร์ชันแรก เช่น Hadoop 1.0 เนื่องจากใช้แอปลดแผนที่ที่มีอยู่ ดังนั้น YARN จึงสามารถใช้กับ Hadoop 1.0 ได้
- ความสามารถใน การปรับขนาด : Hadoop อนุญาตให้คลัสเตอร์และโหนดหลายพันรายการใน Resource Manager ของ YARN จัดการและขยายได้
ส่วนประกอบของ YARN
- คอนเทนเนอร์:
ในคอนเทนเนอร์ เราสามารถค้นหาทรัพยากรทางกายภาพ เช่น ดิสก์บนโหนดเดียว, คอร์ CPU, RAM Container Launch Context (CLC) ใช้เพื่อเรียกใช้คอนเทนเนอร์ ข้อมูลเกี่ยวกับการขึ้นต่อกัน โทเค็นการรักษาความปลอดภัย ตัวแปรสภาพแวดล้อมซึ่งได้รับการดูแลเป็นบันทึกที่รู้จักกันในชื่อ Container Launch Context (CLC)
- บนโฮสต์เฉพาะ แอปพลิเคชันสามารถใช้หน่วยความจำที่ระบุจาก CPU และหน่วยความจำเท่านั้น จำนวนหน่วยความจำที่ระบุนี้สามารถใช้ได้หลังจากคอนเทนเนอร์ได้รับอนุญาตเท่านั้น
- บริบทการเปิดคอนเทนเนอร์ใช้เพื่อจัดการคอนเทนเนอร์ YARN เรียกอีกอย่างว่าคอนเทนเนอร์ LifeCycle (CLC) คำสั่งที่จำเป็นสำหรับการสร้างกระบวนการจะถูกเก็บไว้ในบันทึกนี้ นอกจากนี้ยังบันทึกเพย์โหลดสำหรับบริการ Node Manager, โทเค็นความปลอดภัย, การพึ่งพา, การแมปของตัวแปรสภาพแวดล้อม
- แอปพลิเคชันหลัก:
ในกรอบงาน เมื่อส่งงานเดียวจะเรียกว่าใบสมัคร การตรวจสอบความคืบหน้าของแอปพลิเคชัน การติดตามสถานะแอปพลิเคชัน การเจรจาเกี่ยวกับทรัพยากรกับผู้จัดการทรัพยากรเป็นความรับผิดชอบของผู้จัดการแอปพลิเคชัน ข้อกำหนดทั้งหมดของแอปพลิเคชันที่จะเรียกใช้ทำได้โดยส่งบริบทการเปิดใช้คอนเทนเนอร์ (CLC) แอปพลิเคชันต้นแบบโพสต์คอนเทนเนอร์ Launch Context (CLC) โดยการร้องขอคอนเทนเนอร์จากตัวจัดการโหนด ในบางครั้ง ผู้จัดการทรัพยากรจะได้รับรายงานความสมบูรณ์หลังจากที่แอปพลิเคชันได้เริ่มต้นขึ้น

- ตัวจัดการโหนด:
ตัวจัดการโหนดดูแลแต่ละโหนดในคลัสเตอร์ Hadoop และยังจัดการคอนเทนเนอร์ที่เกี่ยวข้องกับแต่ละโหนดเฉพาะ มีการลงทะเบียนกับ Resource Manager และส่งสถานะความสมบูรณ์ของแต่ละโหนดไปยัง Resource Manager โดยระบุว่ากระบวนการของโหนดเสร็จสิ้นการทำงานกับทรัพยากรหรือไม่ เนื่องจากเป้าหมายหลักคือการจัดการแต่ละโหนดคอนเทนเนอร์ที่กำหนดโดยตัวจัดการทรัพยากร ตัวจัดการโหนดยังสร้างกระบวนการคอนเทนเนอร์เมื่อได้รับการร้องขอจากต้นแบบแอปพลิเคชัน เมื่อแอปพลิเคชันหลักส่งและถามคอนเทนเนอร์ที่แนบมาจากตัวจัดการโหนดโดย CLC (Container Launch Context) ซึ่งรวมถึงทุกสิ่งที่แอปพลิเคชันจำเป็นต้องดำเนินการ จากนั้นตัวจัดการโหนดจะสร้างคอนเทนเนอร์กระบวนการที่ร้องขอและรัน ตัวจัดการโหนดยังรับผิดชอบในการตรวจสอบการใช้ทรัพยากรโดยแต่ละคอนเทนเนอร์และรายงานไปยังตัวจัดการทรัพยากร ดังนั้นตัวจัดการโหนดและตัวจัดการทรัพยากรจึงทำงานร่วมกันเพื่อสื่อสารระหว่างโหนดและจัดการการใช้ทรัพยากรโดยแต่ละโหนดในคลัสเตอร์ นอกจากนี้ยังสามารถฆ่าคอนเทนเนอร์ได้หากได้รับคำสั่งจากตัวจัดการทรัพยากร สุดท้าย ตัวจัดการโหนดจะบันทึกทุกอย่างโดยระบบการจัดการบันทึกในนั้น
โหนดเฉพาะได้รับการดูแลโดย Node Manager Node Manager จะจัดการเวิร์กโฟลว์และแอปพลิเคชันของโหนด มีการจัดการบันทึก และ Node Manager จะตรวจสอบการใช้ทรัพยากร ตัวจัดการทรัพยากรให้คำแนะนำในการฆ่าคอนเทนเนอร์ให้กับ Node Manager แอปพลิเคชันหลักร้องขอให้ตัวจัดการโหนดเริ่มกระบวนการคอนเทนเนอร์ การสร้างกระบวนการคอนเทนเนอร์เป็นความรับผิดชอบของ Node Manager
- ตัวจัดการทรัพยากร:
การจัดการทรัพยากรและการกำหนดแอปทั้งหมดเป็นความรับผิดชอบของ Resource Manager และเป็นภูตหลักของ YARN คำขอที่ได้รับจากตัวจัดการทรัพยากรจะถูกส่งต่อไปยังตัวจัดการโหนดที่เกี่ยวข้อง ตามแอปพลิเคชัน ทรัพยากรได้รับการจัดสรรโดยตัวจัดการทรัพยากรเพื่อให้เสร็จสมบูรณ์
- การใช้งานคลัสเตอร์ได้รับการปรับให้เหมาะสม เช่น การรักษาการใช้งานทรัพยากรทั้งหมดให้ใช้งานได้โดยเทียบกับข้อจำกัดประเภทต่างๆ เช่น SLA การรับประกันความเป็นธรรม และความจุ
- ตัวจัดการทรัพยากรจะจัดสรรทรัพยากรที่มีอยู่
- ตัวจัดการทรัพยากรอนุญาโตตุลาการทรัพยากรคลัสเตอร์
- การประมวลผลคำขอที่เกิดขึ้นจริงเกิดขึ้นในโหนด และตัวจัดการโหนดจะจัดการมัน เมื่อใดก็ตามที่ได้รับคำขอสำหรับการประมวลผล มันจะโอนคำขอในส่วนต่างๆ ไปยังตัวจัดการโหนดที่เกี่ยวข้อง
- ตัวจัดการทรัพยากรเป็นผู้มีอำนาจสูงสุดในการจัดสรรทรัพยากร
มีสององค์ประกอบหลักของตัวจัดการทรัพยากร ซึ่งได้แก่: –

- ตัวจัดการแอปพลิเคชัน –
ตัวจัดการแอปพลิเคชันมีหน้าที่จัดการชุดงานหรือแอปพลิเคชันที่ส่งมา ขั้นแรกจะตรวจสอบและยืนยันข้อกำหนดเฉพาะของแอปพลิเคชันที่ส่งมา และอาจปฏิเสธแอปพลิเคชันหากมีทรัพยากรไม่เพียงพอ นอกจากนี้ยังช่วยให้แน่ใจว่าไม่มีแอปพลิเคชันอื่นที่มี ID เดียวกันซึ่งถูกส่งไปแล้วซึ่งอาจเกิดจากไคลเอนต์ที่ผิดพลาดหรือเป็นอันตราย จากนั้นจะส่งใบสมัครที่ส่งมาหลังจากการตรวจสอบความถูกต้องไปยังตัวจัดกำหนดการ สุดท้าย ยังสังเกตสถานะของแอปพลิเคชันและจัดการแอปพลิเคชันที่เสร็จสิ้นแล้วเพื่อบันทึกหน่วยความจำของ Resource Manager บางส่วน ตัวจัดการแอปพลิเคชันจะเก็บแคชของแอปพลิเคชันที่เสร็จแล้วและย้ายแอปพลิเคชันเก่าที่เสร็จแล้วออกเพื่อรองรับพื้นที่สำหรับแอปพลิเคชันที่ส่งใหม่
- กำหนดการ –
ตามความพร้อมใช้งานของทรัพยากรและการจัดสรรแอปพลิเคชัน ตัวจัดกำหนดการจะจัดกำหนดการงาน ไม่มีงานอื่นใดที่ดำเนินการโดยตัวจัดกำหนดการเหมือนกับไม่มีการเริ่มงานใหม่หลังจากล้มเหลว การติดตาม หรือการตรวจสอบงาน ปลั๊กอินตัวจัดกำหนดการประเภทต่างๆ คือ Fair Scheduler และ Capacity Scheduler ซึ่งได้รับการสนับสนุนโดยตัวจัดกำหนดการ YARN สำหรับพาร์ติชันของทรัพยากรคลัสเตอร์
ขั้นตอนของเวิร์กโฟลว์ของแอปพลิเคชันใน Hadoop YARN
ลูกค้าส่งใบสมัคร
- Application Manager เริ่มต้นโดยการจัดสรรคอนเทนเนอร์โดย Resource Manager
- Resource Manager และ Application Manager ลงทะเบียนระหว่างกัน
- Application Manager ทำการเจรจาเกี่ยวกับคอนเทนเนอร์กับ Resource Manager
- Node Manager เปิดคอนเทนเนอร์หลังจากได้รับแจ้งจาก Application Manager
- การดำเนินการของรหัสแอปพลิเคชันเสร็จสิ้นในคอนเทนเนอร์
- Application Manager หรือ Resource Manager จะตรวจสอบสถานะของแอปพลิเคชันหลังจากที่ลูกค้าติดต่อมา
- การยกเลิกการลงทะเบียน Application Manager เสร็จสิ้นด้วย Resource Manager หลังจากกระบวนการเสร็จสิ้น
ห่อ
หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมเกี่ยวกับ Big Data โปรดดูที่ PG Diploma in Software Development Specialization in Big Data program ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 7 กรณี ครอบคลุมภาษาและเครื่องมือในการเขียนโปรแกรม 14 รายการ เวิร์กช็อป ความช่วยเหลือด้านการเรียนรู้และจัดหางานอย่างเข้มงวดมากกว่า 400 ชั่วโมงกับบริษัทชั้นนำ
เรียนรู้ หลักสูตรการพัฒนาซอฟต์แวร์ ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว