การประมวลผลข้อมูลใน Hadoop: อธิบายส่วนประกอบ Hadoop [2022]

เผยแพร่แล้ว: 2021-01-03

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

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

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

หน่วยการสร้างที่สำคัญของ Hadoop มีดังนี้: –

สารบัญ

การสร้างบล็อคของ Hadoop

1. HDFS (ชั้นเก็บข้อมูล)

ตามชื่อที่แนะนำ Hadoop Distributed File System คือชั้นการจัดเก็บของ Hadoop และมีหน้าที่รับผิดชอบในการจัดเก็บข้อมูลในสภาพแวดล้อมแบบกระจาย (การกำหนดค่าหลักและทาส) มันแบ่งข้อมูลออกเป็นหลายกลุ่มของข้อมูลและจัดเก็บไว้ในโหนดข้อมูลต่างๆ บล็อคข้อมูลเหล่านี้ยังจำลองแบบข้ามโหนดข้อมูลต่างๆ เพื่อป้องกันการสูญเสียข้อมูลเมื่อโหนดใดโหนดหนึ่งหยุดทำงาน

มันมีสองกระบวนการหลักที่ทำงานสำหรับการประมวลผลข้อมูล: –

ก. ชื่อโหนด

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

ข. DataNode

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

2. MapReduce (เลเยอร์การประมวลผล)

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

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

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

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

ก. ระยะแผนที่

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

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

เนื่องจากการคำนวณดำเนินการในโหนดข้อมูลต่างๆ จึงต้องรวมค่าทั้งหมดที่เกี่ยวข้องกับคีย์เดียวกันเข้าด้วยกันเป็นค่าลดขนาดเดียว งานนี้ดำเนินการโดยตัวแบ่งพาร์ติชัน มันทำหน้าที่แฮชบนคู่คีย์-ค่าเหล่านี้เพื่อรวมเข้าด้วยกัน

นอกจากนี้ยังช่วยให้แน่ใจว่างานทั้งหมดถูกแบ่งพาร์ติชันไปยังตัวลดขนาดเท่าๆ กัน โดยทั่วไปแล้วพาร์ติชั่นจะเข้ามาในรูปภาพเมื่อเราทำงานกับตัวลดมากกว่าหนึ่งตัว

ข. สับเปลี่ยนและจัดเรียงเฟส

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

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

ค. ลดเฟส

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

เราสามารถกรองข้อมูลหรือรวมข้อมูลเพื่อให้ได้ผลลัพธ์รวม โพสต์การดำเนินการของฟังก์ชันลด สามารถสร้างคู่คีย์-ค่าได้ตั้งแต่ศูนย์ขึ้นไป ผลลัพธ์นี้เขียนกลับมาใน Hadoop Distributed File System

3. YARN (ชั้นการจัดการ)

Another Resource Navigator เป็นองค์ประกอบการจัดการทรัพยากรของ Hadoop มีกระบวนการเบื้องหลังที่ทำงานอยู่ที่แต่ละโหนด (Node Manager บนเครื่องทาสและ Resource Manager บนโหนดหลัก) ที่สื่อสารระหว่างกันเพื่อจัดสรรทรัพยากร ตัวจัดการทรัพยากรเป็นส่วนสำคัญของเลเยอร์ YARN ซึ่งจัดการทรัพยากรระหว่างแอปพลิเคชันทั้งหมดและส่งผ่านคำขอไปยัง Node Manager

Node Manager จะตรวจสอบการใช้ทรัพยากร เช่น หน่วยความจำ, CPU และดิสก์ของเครื่อง และส่งต่อไปยัง Resource Manager ในลักษณะเดียวกัน มันถูกติดตั้งบน Data Node ทุกอัน และมีหน้าที่รับผิดชอบในการดำเนินการงานบน Data Node

ต้องอ่าน: เครื่องมือ Hadoop 10 อันดับแรกสำหรับวิศวกรข้อมูลขนาดใหญ่

บทสรุป

เวิร์กโฟลว์ทั้งหมดสำหรับการประมวลผลข้อมูลบน Hadoop สามารถสรุปได้ดังนี้: –

  • แยกอินพุต ; แบ่งข้อมูลที่อยู่ใน HDFS ออกเป็นหลายกลุ่มตามหลักเหตุผล การตัดสินใจเกี่ยวกับวิธีการแยก ข้อมูล ทำได้โดย Inputformat
  • ข้อมูลจะถูกแปลงเป็นคู่คีย์-ค่าโดย RecordReader RecordReader แปลงข้อมูลเชิงไบต์เป็นข้อมูลเชิงบันทึก ข้อมูลนี้ทำหน้าที่เป็นอินพุตของผู้ทำแผนที่
  • Mapper ซึ่งไม่ใช่อะไรอื่นนอกจากฟังก์ชันที่ผู้ใช้กำหนดเองจะประมวลผลคู่คีย์-ค่าเหล่านี้ และสร้างคู่คีย์-ค่าระดับกลางสำหรับการประมวลผลต่อไป
  • คู่เหล่านี้จะลดลงในเครื่อง (ภายในขอบเขตของผู้ทำแผนที่หนึ่งคน) โดยเครื่องผสมเพื่อลดปริมาณข้อมูลที่จะถ่ายโอนจากผู้ทำแผนที่ไปยังตัวลด
  • ตัวแบ่งพาร์ติชันทำให้แน่ใจว่าค่าทั้งหมดที่มีคีย์เดียวกันถูกรวมเข้าด้วยกันเป็นตัวลดเดียวกัน และงานจะถูกกระจายอย่างเท่าเทียมกันระหว่างตัวลด
  • จากนั้น คู่คีย์-ค่าระดับกลางเหล่านี้จะสับเปลี่ยนไปยังตัวลดและจัดเรียงตามคีย์ ผลลัพธ์นี้ป้อนให้กับตัวลดขนาดเป็นอินพุต
  • ฟังก์ชันลดจะรวมค่าสำหรับแต่ละคีย์ และผลลัพธ์จะถูกจัดเก็บกลับเข้าไปใน HDFS โดยใช้ RecordWriter ก่อนที่จะเขียนกลับไปที่ HDFS รูปแบบที่ข้อมูลควรเขียนจะถูกกำหนด โดย Outputformat

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

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

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

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