นี่เป็นหนึ่งในคุณสมบัติที่สำคัญที่สุดของ Hadoop 2.0 ก่อนที่จะพูดถึงคุณลักษณะ Namenode High Availability จำเป็นต้องทราบว่า Quorum คืออะไร Quorum เป็นคำทั่วไปที่ใช้ในการทำคลัสเตอร์ซึ่งเราบอกว่าคลัสเตอร์หนึ่งมีเสถียรภาพ Quorum ให้รายชื่อเครื่องจักรและช่วยในการกำหนดความสมบูรณ์ของคลัสเตอร์ โควรัมมีสองประเภท: โควรัมที่คาดหวังและโควรัมจากการคำนวณ
วิธีใช้ aws cli
NameNode High Availability พร้อม Quorum Journal Manager (QJM)
ก่อนหน้า Hadoop 2.0 NameNode เป็นจุดเดียวของความล้มเหลว (SPOF) ในคลัสเตอร์ HDFS แต่ละคลัสเตอร์มี NameNode เดียวและถ้าเครื่องนั้นไม่พร้อมใช้งานคลัสเตอร์ทั้งหมดจะไม่พร้อมใช้งานจนกว่า NameNode จะถูกรีสตาร์ทหรือเริ่มต้นในเครื่องแยกต่างหาก ในคลัสเตอร์ HA แบบคลาสสิกมีการกำหนดค่าเครื่องสองเครื่องแยกกันเป็น NameNodes ณ จุดใดโหนดหนึ่งจะอยู่ในสถานะใช้งานอยู่และอีกโหนดหนึ่งจะอยู่ในสถานะสแตนด์บาย Active NameNode รับผิดชอบการดำเนินการของไคลเอ็นต์ทั้งหมดในคลัสเตอร์ในขณะที่สแตนด์บายทำหน้าที่เป็นทาสโดยรักษาสถานะเพียงพอที่จะให้เกิดการล้มเหลวอย่างรวดเร็ว
เพื่อให้โหนดสแตนด์บายรักษาสถานะที่ประสานงานกับโหนดที่ใช้งานอยู่โหนดทั้งสองจะสื่อสารกับกลุ่มของ daemons ที่แยกจากกันที่เรียกว่า ‘JournalNodes’ (JNs) เมื่อการปรับเปลี่ยนเนมสเปซใด ๆ ดำเนินการโดยโหนดที่ใช้งานอยู่จะบันทึกบันทึกการเปลี่ยนแปลงที่ทำใน JournalNodes โหนดสแตนด์บายสามารถอ่านข้อมูลที่แก้ไขเพิ่มเติมจาก JN และตรวจสอบการเปลี่ยนแปลงอย่างสม่ำเสมอ เนื่องจากโหนดสแตนด์บายเห็นการเปลี่ยนแปลงจึงนำไปใช้กับเนมสเปซของตนเอง ในกรณีที่เกิดข้อผิดพลาด Standby จะตรวจสอบให้แน่ใจว่าได้อ่านการเปลี่ยนแปลงทั้งหมดจาก JounalNodes ก่อนที่จะเปลี่ยนสถานะเป็น 'Active state' สิ่งนี้รับประกันได้ว่าสถานะของเนมสเปซถูกซิงค์อย่างสมบูรณ์ก่อนที่จะเกิดความล้มเหลว
เพื่อให้เกิดการล้มเหลวอย่างรวดเร็วจำเป็นที่โหนดสแตนด์บายจะต้องมีข้อมูลที่อัปเดตและเป็นปัจจุบันเกี่ยวกับตำแหน่งของบล็อกในคลัสเตอร์ เพื่อให้สิ่งนี้เกิดขึ้น DataNodes จะถูกกำหนดค่าด้วยตำแหน่งของ NameNodes ทั้งสองและส่งข้อมูลตำแหน่งบล็อกและการเต้นของหัวใจไปยังทั้งสอง
java ide คืออะไร
จำเป็นอย่างยิ่งที่ต้องมีการใช้งาน NameNodes ทีละรายการเท่านั้น มิฉะนั้นสถานะเนมสเปซจะเบี่ยงเบนไประหว่างทั้งสองและนำไปสู่การสูญหายของข้อมูลหรือผลลัพธ์ที่ผิดพลาด เพื่อหลีกเลี่ยงปัญหานี้ JournalNodes จะอนุญาตเฉพาะ NameNode เดียวแก่ผู้เขียนในแต่ละครั้ง ในระหว่างการเกิดข้อผิดพลาด NameNode ที่กำลังจะเปิดใช้งานจะรับหน้าที่ในการเขียนไปยัง JournalNodes
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป
กระทู้ที่เกี่ยวข้อง:
ภาพรวมของ Hadoop 2.0 Cluster Architecture Federation
คำสั่ง goto ใน c ++