Hadoop - บทนำ

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

สถาปัตยกรรม Hadoop

ที่แกนกลาง Hadoop มีสองชั้นหลักคือ -

  • ชั้นการประมวลผล / การคำนวณ (MapReduce) และ
  • ชั้นจัดเก็บข้อมูล (Hadoop Distributed File System)

MapReduce

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

Hadoop ระบบไฟล์แบบกระจาย

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

นอกเหนือจากองค์ประกอบหลักสองส่วนที่กล่าวมาแล้ว Hadoop framework ยังมีโมดูลสองโมดูลต่อไปนี้ -

  • Hadoop Common - นี่คือไลบรารี Java และยูทิลิตี้ที่จำเป็นสำหรับโมดูล Hadoop อื่น ๆ

  • Hadoop YARN - นี่คือกรอบสำหรับการจัดตารางงานและการจัดการทรัพยากรคลัสเตอร์

Hadoop ทำงานอย่างไร?

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

Hadoop รันโค้ดในกลุ่มคอมพิวเตอร์ กระบวนการนี้รวมถึงภารกิจหลักต่อไปนี้ที่ Hadoop ดำเนินการ -

  • ข้อมูลจะถูกแบ่งออกเป็นไดเรกทอรีและไฟล์ในขั้นต้น ไฟล์จะถูกแบ่งออกเป็นบล็อกขนาดสม่ำเสมอ 128M และ 64M (ควรเป็น 128M)

  • จากนั้นไฟล์เหล่านี้จะกระจายไปตามโหนดคลัสเตอร์ต่างๆเพื่อการประมวลผลต่อไป

  • HDFS ซึ่งอยู่เหนือระบบไฟล์โลคัลดูแลการประมวลผล

  • บล็อกถูกจำลองแบบสำหรับจัดการความล้มเหลวของฮาร์ดแวร์

  • ตรวจสอบว่ารหัสดำเนินการสำเร็จ

  • ดำเนินการจัดเรียงที่เกิดขึ้นระหว่างแผนที่และลดขั้นตอน

  • การส่งข้อมูลที่เรียงลำดับไปยังคอมพิวเตอร์บางเครื่อง

  • การเขียนบันทึกการดีบักสำหรับแต่ละงาน

ข้อดีของ Hadoop

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

  • Hadoop ไม่ได้พึ่งพาฮาร์ดแวร์ในการรองรับความผิดพลาดและความพร้อมใช้งานสูง (FTHA) แต่ไลบรารี Hadoop เองได้รับการออกแบบมาเพื่อตรวจจับและจัดการกับความล้มเหลวที่เลเยอร์แอปพลิเคชัน

  • สามารถเพิ่มหรือลบเซิร์ฟเวอร์ออกจากคลัสเตอร์แบบไดนามิกและ Hadoop ยังคงทำงานต่อไปโดยไม่หยุดชะงัก

  • ข้อดีอีกอย่างของ Hadoop คือนอกเหนือจากการเป็นโอเพ่นซอร์สแล้วมันยังเข้ากันได้กับทุกแพลตฟอร์มเนื่องจากเป็น Java