สถาปัตยกรรมเส้นด้าย 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 เนื่องจากมีชื่อเสียงมาก ได้แก่ :

  1. ผู้เช่าหลายราย: YARN อนุญาตให้เข้าถึงเอ็นจิ้นการประมวลผลข้อมูลหลายตัว เช่น เอ็นจิ้นการประมวลผลแบบแบตช์ เอ็นจิ้นการประมวลผลสตรีม เอ็นจิ้นการประมวลผลเชิงโต้ตอบ เอ็นจิ้นการประมวลผลกราฟ และอีกมากมาย สิ่งนี้ทำให้บริษัทได้รับประโยชน์จากการเช่าหลายราย
  2. การ ใช้คลัสเตอร์: คลัสเตอร์ถูกใช้อย่างมีประสิทธิภาพ เนื่องจากคลัสเตอร์ถูกใช้แบบไดนามิกใน Hadoop ด้วยความช่วยเหลือของ YARN
  3. ความเข้ากันได้ : YARN ยังเข้ากันได้กับ Hadoop เวอร์ชันแรก เช่น Hadoop 1.0 เนื่องจากใช้แอปลดแผนที่ที่มีอยู่ ดังนั้น YARN จึงสามารถใช้กับ Hadoop 1.0 ได้
  4. ความสามารถใน การปรับขนาด : Hadoop อนุญาตให้คลัสเตอร์และโหนดหลายพันรายการใน Resource Manager ของ YARN จัดการและขยายได้

ส่วนประกอบของ YARN

  • คอนเทนเนอร์:

ในคอนเทนเนอร์ เราสามารถค้นหาทรัพยากรทางกายภาพ เช่น ดิสก์บนโหนดเดียว, คอร์ CPU, RAM Container Launch Context (CLC) ใช้เพื่อเรียกใช้คอนเทนเนอร์ ข้อมูลเกี่ยวกับการขึ้นต่อกัน โทเค็นการรักษาความปลอดภัย ตัวแปรสภาพแวดล้อมซึ่งได้รับการดูแลเป็นบันทึกที่รู้จักกันในชื่อ Container Launch Context (CLC)

  1. บนโฮสต์เฉพาะ แอปพลิเคชันสามารถใช้หน่วยความจำที่ระบุจาก CPU และหน่วยความจำเท่านั้น จำนวนหน่วยความจำที่ระบุนี้สามารถใช้ได้หลังจากคอนเทนเนอร์ได้รับอนุญาตเท่านั้น
  2. บริบทการเปิดคอนเทนเนอร์ใช้เพื่อจัดการคอนเทนเนอร์ 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 คำขอที่ได้รับจากตัวจัดการทรัพยากรจะถูกส่งต่อไปยังตัวจัดการโหนดที่เกี่ยวข้อง ตามแอปพลิเคชัน ทรัพยากรได้รับการจัดสรรโดยตัวจัดการทรัพยากรเพื่อให้เสร็จสมบูรณ์

  1. การใช้งานคลัสเตอร์ได้รับการปรับให้เหมาะสม เช่น การรักษาการใช้งานทรัพยากรทั้งหมดให้ใช้งานได้โดยเทียบกับข้อจำกัดประเภทต่างๆ เช่น SLA การรับประกันความเป็นธรรม และความจุ
  2. ตัวจัดการทรัพยากรจะจัดสรรทรัพยากรที่มีอยู่
  3. ตัวจัดการทรัพยากรอนุญาโตตุลาการทรัพยากรคลัสเตอร์
  4. การประมวลผลคำขอที่เกิดขึ้นจริงเกิดขึ้นในโหนด และตัวจัดการโหนดจะจัดการมัน เมื่อใดก็ตามที่ได้รับคำขอสำหรับการประมวลผล มันจะโอนคำขอในส่วนต่างๆ ไปยังตัวจัดการโหนดที่เกี่ยวข้อง
  5. ตัวจัดการทรัพยากรเป็นผู้มีอำนาจสูงสุดในการจัดสรรทรัพยากร

มีสององค์ประกอบหลักของตัวจัดการทรัพยากร ซึ่งได้แก่: –

  • ตัวจัดการแอปพลิเคชัน –

ตัวจัดการแอปพลิเคชันมีหน้าที่จัดการชุดงานหรือแอปพลิเคชันที่ส่งมา ขั้นแรกจะตรวจสอบและยืนยันข้อกำหนดเฉพาะของแอปพลิเคชันที่ส่งมา และอาจปฏิเสธแอปพลิเคชันหากมีทรัพยากรไม่เพียงพอ นอกจากนี้ยังช่วยให้แน่ใจว่าไม่มีแอปพลิเคชันอื่นที่มี ID เดียวกันซึ่งถูกส่งไปแล้วซึ่งอาจเกิดจากไคลเอนต์ที่ผิดพลาดหรือเป็นอันตราย จากนั้นจะส่งใบสมัครที่ส่งมาหลังจากการตรวจสอบความถูกต้องไปยังตัวจัดกำหนดการ สุดท้าย ยังสังเกตสถานะของแอปพลิเคชันและจัดการแอปพลิเคชันที่เสร็จสิ้นแล้วเพื่อบันทึกหน่วยความจำของ Resource Manager บางส่วน ตัวจัดการแอปพลิเคชันจะเก็บแคชของแอปพลิเคชันที่เสร็จแล้วและย้ายแอปพลิเคชันเก่าที่เสร็จแล้วออกเพื่อรองรับพื้นที่สำหรับแอปพลิเคชันที่ส่งใหม่

  • กำหนดการ –

ตามความพร้อมใช้งานของทรัพยากรและการจัดสรรแอปพลิเคชัน ตัวจัดกำหนดการจะจัดกำหนดการงาน ไม่มีงานอื่นใดที่ดำเนินการโดยตัวจัดกำหนดการเหมือนกับไม่มีการเริ่มงานใหม่หลังจากล้มเหลว การติดตาม หรือการตรวจสอบงาน ปลั๊กอินตัวจัดกำหนดการประเภทต่างๆ คือ Fair Scheduler และ Capacity Scheduler ซึ่งได้รับการสนับสนุนโดยตัวจัดกำหนดการ YARN สำหรับพาร์ติชันของทรัพยากรคลัสเตอร์

ขั้นตอนของเวิร์กโฟลว์ของแอปพลิเคชันใน Hadoop YARN

ลูกค้าส่งใบสมัคร

  1. Application Manager เริ่มต้นโดยการจัดสรรคอนเทนเนอร์โดย Resource Manager
  2. Resource Manager และ Application Manager ลงทะเบียนระหว่างกัน
  3. Application Manager ทำการเจรจาเกี่ยวกับคอนเทนเนอร์กับ Resource Manager
  4. Node Manager เปิดคอนเทนเนอร์หลังจากได้รับแจ้งจาก Application Manager
  5. การดำเนินการของรหัสแอปพลิเคชันเสร็จสิ้นในคอนเทนเนอร์
  6. Application Manager หรือ Resource Manager จะตรวจสอบสถานะของแอปพลิเคชันหลังจากที่ลูกค้าติดต่อมา
  7. การยกเลิกการลงทะเบียน Application Manager เสร็จสิ้นด้วย Resource Manager หลังจากกระบวนการเสร็จสิ้น

ห่อ

หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมเกี่ยวกับ Big Data โปรดดูที่ PG Diploma in Software Development Specialization in Big Data program ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 7 กรณี ครอบคลุมภาษาและเครื่องมือในการเขียนโปรแกรม 14 รายการ เวิร์กช็อป ความช่วยเหลือด้านการเรียนรู้และจัดหางานอย่างเข้มงวดมากกว่า 400 ชั่วโมงกับบริษัทชั้นนำ

เรียนรู้ หลักสูตรการพัฒนาซอฟต์แวร์ ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

ปรมาจารย์ด้านเทคโนโลยีแห่งอนาคต - Big Data

การเรียนรู้มากกว่า 400 ชั่วโมง 14 ภาษาและเครื่องมือ สถานะศิษย์เก่า IIIT-B
โปรแกรมประกาศนียบัตรขั้นสูงด้าน Big Data จาก IIIT Bangalore