Hadoop Distributed File System (HDFS) คืออะไร สถาปัตยกรรม คุณลักษณะ & การดำเนินงาน
เผยแพร่แล้ว: 2020-02-03Hadoop Distributed File System หรือ HDFS เป็นระบบจัดเก็บข้อมูลหลักของ Hadoop มันเก็บไฟล์ข้อมูลขนาดใหญ่ที่ทำงานบนฮาร์ดแวร์สินค้าโภคภัณฑ์ ระบบจัดเก็บข้อมูลนี้สามารถปรับขยายได้ ขยายได้ง่าย และทนทานต่อข้อผิดพลาด
เมื่อมีข้อมูลที่เก็บไว้ในเครื่องเดียวมากเกินไป มันจะกลายเป็นที่เก็บข้อมูลถูกแบ่งออกเป็นหลายเครื่องเพื่อหลีกเลี่ยงการสูญเสียข้อมูล HDFS เป็นระบบจัดเก็บไฟล์แบบกระจายระบบหนึ่งที่จัดการการดำเนินการจัดเก็บในเครื่องจริงจำนวนมาก นี่คือบทช่วยสอน HDFS เพื่อให้คุณเข้าใจมากขึ้นว่าระบบนี้ทำงานอย่างไร เริ่มต้นด้วยสถาปัตยกรรมของมัน
สารบัญ
สถาปัตยกรรม HDFS
Hadoop Distributed File System มีสถาปัตยกรรม master-slave พร้อมส่วนประกอบต่อไปนี้:
- Namenode : เป็นฮาร์ดแวร์สำหรับสินค้าโภคภัณฑ์ที่มีทั้งซอฟต์แวร์ namenode และระบบปฏิบัติการ Linux/GNU ซอฟต์แวร์ Namenode สามารถทำงานได้อย่างราบรื่นบนฮาร์ดแวร์สินค้าโภคภัณฑ์โดยไม่พบปัญหาใดๆ ระบบที่มีเนมโหนดเป็นส่วนประกอบทำหน้าที่เป็นเซิร์ฟเวอร์หลัก มันทำงานที่รวมถึงการควบคุมวิธีที่ไคลเอ็นต์เข้าถึงไฟล์ การจัดการเนมสเปซระบบไฟล์ และการดำเนินการต่างๆ รวมถึงการเปิด การปิด และการเปลี่ยนชื่อไดเร็กทอรีและไฟล์
- Datanode : เป็นฮาร์ดแวร์สินค้าโภคภัณฑ์ที่มีซอฟต์แวร์โหนดข้อมูลและระบบปฏิบัติการ Linux/GNU โหนดในคลัสเตอร์จะมีโหนดข้อมูลเชื่อมโยงอยู่เสมอ โหนดเหล่านี้มีหน้าที่จัดการการจัดเก็บฮาร์ดแวร์/ระบบสินค้าโภคภัณฑ์ งานบางอย่างที่โหนดข้อมูลดำเนินการรวมถึงการดำเนินการอ่าน/เขียนตามคำขอของลูกค้าและการสร้าง การจำลองแบบ และการลบบล็อกตามคำสั่งที่กำหนดโดยเนมโหนด
- บล็อก : ข้อมูลผู้ใช้ทั้งหมดถูกเก็บไว้ในไฟล์ HDFS ไฟล์ทุกไฟล์ที่เป็นของระบบไฟล์เฉพาะจะถูกแบ่งออกเป็นหนึ่งหรือมากกว่าหนึ่งเซ็กเมนต์ ซึ่งจะถูกเก็บไว้เป็นดาต้าโหนด ส่วนไฟล์ที่ไฟล์ถูกแบ่งออกเป็นบล็อก ดังนั้นข้อมูลที่เล็กที่สุดที่ HDFS สามารถอ่านหรือเขียนได้คือบล็อก เริ่มแรก ทุกบล็อกมีขนาด 64MB แต่ขนาดนี้สามารถเพิ่มได้ตามการเปลี่ยนแปลงการกำหนดค่า HDFS
สถาปัตยกรรม HDFS ให้ภาพงาน HDFS ที่ชัดเจนและชัดเจน ประกอบด้วยดาต้าโหนดหลายโหนด แต่มีเพียงเนมโหนดเดียว ข้อมูลเมตาถูกเก็บไว้ในเนมโหนดในขณะที่ผู้ปฏิบัติงานจริงของโหนดทั้งสองประเภทคือดาต้าโหนด โหนดถูกจัดระเบียบในชั้นวางต่างๆ ซึ่งบล็อกข้อมูลถูกจัดเก็บไว้เพื่อปรับปรุงความทนทานต่อข้อผิดพลาดและความเชื่อถือได้ของข้อมูล ลูกค้าต้องโต้ตอบกับเนมโหนดเพื่ออ่าน/เขียนไฟล์ คลัสเตอร์มีโหนดข้อมูลหลายโหนดที่ใช้ดิสก์ในเครื่องเพื่อจัดเก็บข้อมูลที่มีอยู่ Datanode และ namenode ติดต่อกันตลอดเวลา ดาต้าโหนดยังรับผิดชอบในการจำลองข้อมูลโดยใช้คุณลักษณะการจำลองแบบไปยังโหนดข้อมูลต่างๆ
การดำเนินการอ่านและเขียนใน HDFS เกิดขึ้นที่ระดับที่เล็กที่สุด กล่าวคือ ระดับบล็อก แนวคิดของการจำลองข้อมูลเป็นหัวใจสำคัญของการทำงานของ HDFS โดยมั่นใจได้ว่าข้อมูลมีความพร้อมใช้งานสูงระหว่างความล้มเหลวของโหนดโดยการสร้างแบบจำลองของบล็อกและการกระจายของข้อมูลเหล่านั้นในคลัสเตอร์ทั้งหมด
ปฏิบัติการ HDFS
ระบบไฟล์ HDFS และ Linux ค่อนข้างคล้ายกัน ดังนั้น HDFS จึงช่วยให้เราดำเนินการทั้งหมดที่เราเคยใช้กับระบบไฟล์ในเครื่องได้ เราสามารถสร้างไดเร็กทอรี เปลี่ยนการอนุญาต คัดลอกไฟล์ และอีกมากมาย เรายังมีสิทธิในการเข้าถึงไฟล์หลายอย่าง รวมทั้งการอ่าน การเขียน และการดำเนินการ

การดำเนินการอ่านใน HDFS: หากคุณต้องการอ่านไฟล์ที่จัดเก็บไว้ใน HDFS คุณจะต้องโต้ตอบกับ namenode ดังที่ได้กล่าวไปแล้ว เมตาดาต้าทั้งหมดจะถูกเก็บไว้ในเนมโหนด เมื่อคุณโต้ตอบกับ namenode แล้ว มันจะให้ที่อยู่ของ datanode ที่เก็บไฟล์ที่คุณกำลังมองหา จากนั้นคุณสามารถโต้ตอบกับ datanode ที่มีที่อยู่คุณได้รับจาก namenode จากนั้นอ่านข้อมูลจากที่นั่น
คุณโต้ตอบกับ API ของระบบไฟล์ ซึ่งร้องขอ namenode เพื่อแบ่งปันที่อยู่บล็อก ก่อนที่จะให้ข้อมูลนี้ namenode จะทำการตรวจสอบเพื่อดูว่าคุณมีสิทธิ์เข้าถึงข้อมูลนี้หรือไม่ เมื่อตรวจสอบเสร็จแล้ว Namenode จะแชร์ตำแหน่งบล็อกหรือปฏิเสธการเข้าถึงเนื่องจากข้อจำกัด
คุณจะได้รับรูปแบบของโทเค็นโดย namenode ซึ่งคุณจะต้องแสดงต่อ datanode ที่เกี่ยวข้องเพื่อเข้าถึงไฟล์ นี่คือรูปแบบหนึ่งของกลไกการรักษาความปลอดภัยที่ HDFS ใช้เพื่อให้แน่ใจว่าบุคคลที่เหมาะสมกำลังเข้าถึงข้อมูล ดาต้าโหนดจะอนุญาตให้คุณอ่านไฟล์หลังจากที่คุณแสดงโทเค็นเท่านั้น

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

คุณสมบัติ HDFS
- ความพร้อมใช้งาน : มีระบบไฟล์ไม่มากนักที่มาพร้อมกับ HDFS ที่มีความพร้อมใช้งานสูง ระบบไฟล์เป็นไปตามกลไกการจำลองข้อมูลในรูปแบบของบล็อกเรพพลิกาบนดาต้าโหนด (ทาส) ทั่วทั้งคลัสเตอร์ ในการเข้าถึงข้อมูลนี้ คุณต้องโต้ตอบกับ datanodes ที่มีบล็อกของข้อมูลที่กำลังมองหา
- ความน่าเชื่อถือ : Hadoop Distributed File System เป็นระบบจัดเก็บข้อมูลที่มีความน่าเชื่อถือสูง จำนวนข้อมูลที่สามารถจัดเก็บได้ในช่วง HDFS ในหน่วยเพตาไบต์ ใช้คลัสเตอร์เพื่อเก็บข้อมูลทั้งหมด ซึ่งแยกออกเป็นบล็อก จากนั้นจะใช้โหนดของคลัสเตอร์เพื่อเก็บบล็อกเหล่านี้
- ความทนทานต่อข้อผิดพลาด : คุณลักษณะนี้เป็นจุดแข็งในการทำงานของ HDFS ในสภาวะที่ไม่เอื้ออำนวยเท่าที่ควร HDFS ทนต่อความผิดพลาดอย่างที่ระบบไฟล์อื่นไม่ทำ มันปกป้องข้อมูลของคุณจากผลกระทบของสิ่งที่ไม่คาดฝัน แม้กระทั่งในอนาคต ดังที่ได้กล่าวไปแล้ว การจำลองข้อมูลจะทำในเครื่องต่างๆ จะเกิดอะไรขึ้นเมื่อเครื่องใดเครื่องหนึ่งเหล่านี้หยุดทำงาน อาจเป็นปัญหาสำคัญกับระบบอื่น แต่ไม่ใช่ HDFS HDFS ช่วยให้คุณเข้าถึงข้อมูลของคุณจากเครื่องอื่นที่มีสำเนาบล็อคข้อมูลที่คุณกำลังมองหา นี้เรียกว่าทนต่อความผิดพลาดอย่างแท้จริง
- ความสามารถในการปรับขนาด : HDFS ใช้โหนดต่างๆ ในคลัสเตอร์เพื่อเก็บข้อมูล เมื่อความต้องการพื้นที่เก็บข้อมูลเพิ่มขึ้น คุณสามารถดำเนินการต่อและปรับขนาดคลัสเตอร์ได้เสมอ นี่เป็นอีกหนึ่งคุณลักษณะที่เป็นเอกลักษณ์ของ HDFS ระบบการกระจายไฟล์มีกลไกสองแบบในการปรับขนาดคลัสเตอร์ – ความสามารถในการปรับขนาดในแนวนอนและแนวตั้ง
- การจำลองแบบ : การจำลองแบบเป็นคุณลักษณะที่ทำให้ HDFS แตกต่างจากระบบจัดเก็บข้อมูลอื่นๆ การจำลองแบบช่วยลดอินสแตนซ์ของการสูญเสียข้อมูลอันเนื่องมาจากเหตุการณ์ที่ไม่เอื้ออำนวย เช่น การหยุดทำงานของโหนด ความล้มเหลวของฮาร์ดแวร์ และอื่นๆ กระบวนการทำซ้ำจะดำเนินการอย่างสม่ำเสมอและในเครื่องต่างๆ ดังนั้นจึงไม่มีข้อมูลสูญหายหากเครื่องหยุดทำงาน คุณสามารถใช้เครื่องอื่นเพื่อรับข้อมูลของคุณ
วัตถุประสงค์ HDFS
- การจัดการชุดข้อมูลขนาดใหญ่: HDFS มีสถาปัตยกรรมที่จำเป็นสำหรับการจัดการแอปพลิเคชันที่มีชุดข้อมูลขนาดใหญ่ไม่เหมือนกับระบบการกระจายไฟล์อื่นๆ ขึ้นอยู่กับความใหญ่โตของชุดข้อมูลที่เป็นปัญหา อาจมีหลายร้อยโหนดสำหรับทุกคลัสเตอร์
- การตรวจจับและกู้คืนข้อบกพร่อง: มีเพียงไม่กี่คนที่สามารถเอาชนะ HDFS ในด้านความสามารถที่เกี่ยวข้องกับการตรวจจับข้อบกพร่องและจัดการกับข้อบกพร่องเหล่านี้อย่างเหมาะสม ฮาร์ดแวร์สินค้าโภคภัณฑ์จำนวนมากที่เป็นปัญหาทำให้ HDFS เผชิญกับความล้มเหลวของส่วนประกอบบ่อยครั้ง อย่างไรก็ตาม นี่ไม่ใช่ข้อเสีย ทุกระบบที่เกี่ยวข้องกับฮาร์ดแวร์สินค้าโภคภัณฑ์ดังกล่าวมีโอกาสเกิดความล้มเหลวได้ อย่างไรก็ตาม คำถามยังคงอยู่ว่าระบบมีความชำนาญในการตรวจจับความล้มเหลวเหล่านั้นอย่างรวดเร็วและโดยอัตโนมัติและให้การกู้คืนในเวลาเดียวกันหรือไม่ HDFS มีความสามารถอย่างแน่นอน
- ปริมาณงานที่เพิ่มขึ้น: HDFS ประมวลผลทุกงานอย่างมีประสิทธิภาพเนื่องจากการคำนวณจริงจะดำเนินการใกล้กับตัวข้อมูลเอง สิ่งนี้สำคัญมากโดยเฉพาะอย่างยิ่งเมื่อเราจัดการกับชุดข้อมูลขนาดใหญ่ กลไกนี้ช่วยเพิ่มปริมาณงานและขจัดปัญหาการรับส่งข้อมูลเครือข่ายได้อย่างมาก
โดยสรุป เราอยากจะบอกว่า HDFS สามารถจัดเก็บข้อมูลจำนวนมหาศาลในลักษณะที่เชื่อถือได้และไม่รู้สึกถึงผลกระทบของความล้มเหลวของฮาร์ดแวร์ นอกจากนี้ยังทนทานต่อข้อผิดพลาดสูง มีความพร้อมใช้งานสูง และปรับขนาดได้สูง
หากต้องการสำรวจส่วนลึกของ Hadoop และเพื่อเป็นผู้เชี่ยวชาญ โปรดดูการรับรอง PG ของ upGrad & BITS Pilani ใน Big Data & Analytics รับประสบการณ์ตรง ตัวต่อตัวกับผู้เชี่ยวชาญในอุตสาหกรรม ที่ปรึกษาเฉพาะ สถานะศิษย์เก่า BITS Pilani และอีกมากมาย
หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมเกี่ยวกับ Big Data โปรดดูที่ PG Diploma in Software Development Specialization in Big Data program ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 7 กรณี ครอบคลุมภาษาและเครื่องมือในการเขียนโปรแกรม 14 รายการ เวิร์กช็อป ความช่วยเหลือด้านการเรียนรู้และจัดหางานอย่างเข้มงวดมากกว่า 400 ชั่วโมงกับบริษัทชั้นนำ
เรียนรู้ หลักสูตรการพัฒนาซอฟต์แวร์ ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว