ภาพรวมของ HBase Storage Architecture



มีสถาปัตยกรรม HBase Storage ประกอบด้วยส่วนประกอบมากมาย มาดูฟังก์ชั่นของส่วนประกอบเหล่านี้และรู้ว่ามีการเขียนข้อมูลอย่างไร

Apache HBase เป็นฐานข้อมูลแบบโอเพนซอร์สแบบกระจายและไม่เกี่ยวข้องซึ่งจำลองแบบมาจาก Bigtable ของ Google และเขียนด้วย Java มีความสามารถคล้ายกับ Bigtable ที่ด้านบนของ Hadoop และ HDFS (Hadoop Distributed Filesystem) นั่นคือเป็นวิธีที่ทนต่อความผิดพลาดในการจัดเก็บข้อมูลกระจัดกระจายจำนวนมากซึ่งเป็นเรื่องปกติในกรณีการใช้ข้อมูลขนาดใหญ่จำนวนมาก HBase ใช้สำหรับการเข้าถึงข้อมูลขนาดใหญ่แบบอ่าน / เขียนแบบเรียลไทม์





ความแตกต่างระหว่างไม่แน่นอนและไม่เปลี่ยนรูป

สถาปัตยกรรม HBase Storage ประกอบด้วยส่วนประกอบมากมาย มาดูการทำงานของส่วนประกอบเหล่านี้และเรียนรู้วิธีเขียนข้อมูล

HFiles:



HFiles สร้างสถาปัตยกรรมระดับต่ำของ HBase HFiles เป็นไฟล์จัดเก็บที่สร้างขึ้นเพื่อจัดเก็บข้อมูลของ HBase อย่างรวดเร็วและมีประสิทธิภาพ

HMaster:

HMaster มีหน้าที่กำหนดภูมิภาคให้กับ HRegionServer แต่ละตัวเมื่อ HBase เริ่มทำงาน มีหน้าที่จัดการทุกอย่างที่เกี่ยวข้องกับแถวโต๊ะและกิจกรรมประสานงานของพวกเขา Hmaster ยังมีรายละเอียดของข้อมูลเมตา



ส่วนประกอบ ของ HBase:

HBase มีส่วนประกอบดังต่อไปนี้:

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

HBase เก็บข้อมูลไว้ใน HDFS โดยตรงและอาศัยความพร้อมใช้งานสูงและความทนทานต่อความผิดพลาดของ HDFS เป็นอย่างมาก

สถาปัตยกรรมการจัดเก็บ HBase:

สถาปัตยกรรมการจัดเก็บ HBase

วิธีแคสสองครั้งเป็น int java

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

เมื่อทราบว่าแถวนั้นอยู่ในพื้นที่ใดระบบจะเก็บข้อมูลนี้ไว้ด้วยและติดต่อ HRegionServer โดยตรง ดังนั้นเมื่อเวลาผ่านไปลูกค้ามีข้อมูลที่สมบูรณ์ว่าจะรับแถวจากที่ใดโดยไม่จำเป็นต้องสอบถาม metaserver อีก เมื่อ HRegion เปิดขึ้นมันจะตั้งค่าอินสแตนซ์ Store สำหรับแต่ละ HColumnFamily สำหรับทุกตาราง ข้อมูลจะถูกเขียนขึ้นเมื่อลูกค้าส่งคำขอไปยัง HRegionServer ซึ่งให้รายละเอียดกับอินสแตนซ์ HRegion ที่ตรงกัน ขั้นตอนแรกคือเราต้องตัดสินใจว่าควรเขียนข้อมูลไปยัง 'Write-Ahead-Log' (WAL) ที่แสดงโดยคลาส HLog ก่อนหรือไม่ การตัดสินใจขึ้นอยู่กับแฟล็กที่กำหนดโดยลูกค้า
เมื่อข้อมูลถูกเขียนไปยัง WAL ข้อมูลนั้นจะถูกวางไว้ใน MemStore ในขณะเดียวกัน Memstore จะถูกตรวจสอบว่าเต็มหรือไม่และในกรณีนั้นจะมีการร้องขอให้ฟลัชลงดิสก์ จากนั้นข้อมูลจะถูกเขียนลงใน HFile

ความแตกต่างระหว่างไม่แน่นอนและไม่เปลี่ยนรูป

มีคำถามสำหรับเรา? พูดถึงพวกเขาในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป

กระทู้ที่เกี่ยวข้อง

เจาะลึกสถาปัตยกรรม HBase