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