เอชเบส Architecture: กรณีการใช้งาน ส่วนประกอบ และแบบจำลองข้อมูล

⚡ สรุปอย่างชาญฉลาด

โครงสร้างของ HBase สร้างขึ้นจากส่วนประกอบที่ประสานงานกันสี่ส่วน ได้แก่ HMaster, Region Servers, ZooKeeper และ HDFS ซึ่งจัดเก็บข้อมูลในรูปแบบคอลัมน์ แบ่งข้อมูลออกเป็นภูมิภาค และให้บริการการอ่านและการเขียนแบบสุ่มที่มีความหน่วงต่ำ

  • 🧭 เอชมาสเตอร์: ทำหน้าที่กำหนดภูมิภาคให้กับเซิร์ฟเวอร์ภูมิภาค จัดการการกระจายโหลดและการสำรองข้อมูลเมื่อเกิดข้อผิดพลาด และจัดการการเปลี่ยนแปลงโครงสร้างข้อมูลและเมตาเดตา
  • 🗄️ เซิร์ฟเวอร์ประจำภูมิภาค: รองรับคำขออ่านและเขียนข้อมูลจากไคลเอ็นต์ โฮสต์ภูมิภาค และแบ่งภูมิภาคโดยอัตโนมัติเมื่อข้อมูลเพิ่มขึ้น
  • 🧱 ภูมิภาคและร้านค้า: แต่ละภูมิภาคจะเก็บข้อมูลไว้หนึ่งชุดต่อตระกูลคอลัมน์ โดยสร้างขึ้นจาก MemStore ในหน่วยความจำและ HFiles บนดิสก์
  • 🔗 ผู้ดูแลสวนสัตว์: ประสานงานกลุ่มคลัสเตอร์ tracเซิร์ฟเวอร์ ks จะเกิดความล้มเหลว และจะเก็บการกำหนดค่าควอรัมที่ไคลเอนต์ใช้ในการเชื่อมต่อ
  • 🧮 แบบจำลองข้อมูล: ตารางจะจัดกลุ่มตระกูลคอลัมน์และแถว โดยคีย์แถวจะทำหน้าที่เป็นคีย์หลักสำหรับการเข้าถึงทุกครั้ง
  • HBase เทียบกับ HDFS: HBase เพิ่มความสามารถในการอ่านและเขียนข้อมูลแบบสุ่มที่มีความหน่วงต่ำลงบนระบบจัดเก็บข้อมูลแบบแบตช์ของ HDFS

สถาปัตยกรรมของ HBase พร้อมส่วนประกอบ โมเดลข้อมูล และขั้นตอนการอ่านและเขียนข้อมูล

Apache HBase เป็นฐานข้อมูล NoSQL แบบกระจายศูนย์และเน้นการจัดเก็บในคอลัมน์ ซึ่งทำงานอยู่บน Hadoop และระบบไฟล์แบบกระจายของ Hadoop (HDFS) สถาปัตยกรรมของมันรวมเอามาสเตอร์ที่ทำหน้าที่ประสานงาน เซิร์ฟเวอร์ภูมิภาค และ ZooKeeper เข้าด้วยกันเพื่อจัดเก็บตารางขนาดใหญ่มาก และให้บริการการอ่านและเขียนแบบสุ่มที่รวดเร็ว

เอชเบส Archiเทคเจอร์และส่วนประกอบที่สำคัญ

โครงสร้างของ HBase ประกอบด้วยส่วนประกอบหลักดังต่อไปนี้:

  • เอชมาสเตอร์
  • เซิร์ฟเวอร์ภูมิภาค
  • HRRegions
  • ZooKeeper
  • เอชดีเอฟเอส

ด้านล่างนี้คือสถาปัตยกรรมโดยละเอียดของ HBase พร้อมส่วนประกอบต่างๆ ดังที่แสดงในแผนภาพ

แผนภาพสถาปัตยกรรมของ HBase แสดงให้เห็น HMaster, Region Servers, ZooKeeper และ HDFS

เอชมาสเตอร์

HMaster ใน HBase คือการใช้งานเซิร์ฟเวอร์หลัก (Master server) ในสถาปัตยกรรมของ HBase ทำหน้าที่เป็นตัวแทนตรวจสอบเพื่อติดตามอินสแตนซ์ Region Server ทั้งหมดที่มีอยู่ในคลัสเตอร์ และทำหน้าที่เป็นอินเทอร์เฟซสำหรับการเปลี่ยนแปลงเมตาเดต้าทั้งหมด ในสภาพแวดล้อมคลัสเตอร์แบบกระจาย เซิร์ฟเวอร์หลักจะทำงานบน NameNode โดยเซิร์ฟเวอร์หลักจะทำงานในเธรดพื้นหลังหลายเธรด

ต่อไปนี้คือบทบาทสำคัญที่ HMaster ปฏิบัติใน HBase:

  • มีบทบาทสำคัญในด้านประสิทธิภาพการทำงานและการดูแลรักษาโหนดในคลัสเตอร์
  • HMaster มอบประสิทธิภาพของผู้ดูแลระบบและกระจายบริการไปยังเซิร์ฟเวอร์ภูมิภาคต่างๆ
  • HMaster กำหนดภูมิภาคให้กับเซิร์ฟเวอร์ภูมิภาค
  • HMaster ทำหน้าที่ควบคุมการกระจายโหลดและการสลับการทำงานเมื่อเกิดข้อผิดพลาด เพื่อจัดการโหลดที่เกิดขึ้นกับโหนดต่างๆ ในคลัสเตอร์
  • เมื่อลูกค้าต้องการเปลี่ยนแปลงโครงสร้างข้อมูลหรือการดำเนินการเมตาเดตาใดๆ HMaster จะรับผิดชอบในการดำเนินการเหล่านั้น

เมธอดบางส่วนที่เปิดเผยโดยอินเทอร์เฟซ HMaster นั้นเป็นเมธอดที่เน้นเมตาเดตาเป็นหลัก:

  • ตาราง (createTable, RemoveTable, เปิดใช้งาน, ปิดการใช้งาน)
  • ColumnFamily (เพิ่มคอลัมน์ แก้ไขคอลัมน์)
  • ภูมิภาค (ย้าย, กำหนด)

ไคลเอนต์สื่อสารแบบสองทิศทางกับทั้ง HMaster และ ZooKeeper สำหรับการอ่านและเขียนข้อมูล ไคลเอนต์จะติดต่อเซิร์ฟเวอร์ HRegion โดยตรง HMaster จะกำหนดภูมิภาคให้กับเซิร์ฟเวอร์ภูมิภาค และในทางกลับกัน จะตรวจสอบสถานะความสมบูรณ์ของเซิร์ฟเวอร์ภูมิภาคเหล่านั้น

ในโครงสร้างสถาปัตยกรรมทั้งหมด เรามีเซิร์ฟเวอร์ประจำภูมิภาคหลายตัว โดยมี HLog อยู่ในเซิร์ฟเวอร์ประจำภูมิภาคเหล่านั้น ซึ่งทำหน้าที่จัดเก็บไฟล์บันทึกทั้งหมด

เซิร์ฟเวอร์ภูมิภาค HBase

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

HRegionServer คือการใช้งาน Region Server มีหน้าที่ให้บริการและจัดการ Region หรือข้อมูลที่อยู่ในคลัสเตอร์แบบกระจาย Region Server ทำงานบน Data Node ที่อยู่ในคลัสเตอร์ Hadoop

HMaster สามารถติดต่อกับเซิร์ฟเวอร์ HRegion หลายเครื่องและทำหน้าที่ดังต่อไปนี้:

  • การโฮสต์และการจัดการภูมิภาค
  • การแบ่งเขตโดยอัตโนมัติ
  • การจัดการคำขออ่านและเขียน
  • การสื่อสารกับลูกค้าโดยตรง

ภูมิภาค HBase

HRegions คือองค์ประกอบพื้นฐานของคลัสเตอร์ HBase ประกอบด้วยการกระจายของตารางและประกอบด้วยตระกูลคอลัมน์ หนึ่ง region ประกอบด้วย store หลายแห่ง โดยแต่ละแห่งสำหรับแต่ละตระกูลคอลัมน์ โดยหลักแล้วประกอบด้วยสองส่วน คือ MemStore และ HFile

ZooKeeper

เอชเบส ZooKeeper ZooKeeper เป็นเซิร์ฟเวอร์ตรวจสอบส่วนกลางที่เก็บรักษาข้อมูลการกำหนดค่าและให้การซิงโครไนซ์แบบกระจาย การซิงโครไนซ์แบบกระจายจะประสานงานแอปพลิเคชันแบบกระจายที่ทำงานอยู่ทั่วคลัสเตอร์ โดยให้บริการประสานงานระหว่างโหนดต่างๆ หากไคลเอ็นต์ต้องการสื่อสารกับภูมิภาคต่างๆ ไคลเอ็นต์จะต้องติดต่อ ZooKeeper ก่อน

เป็นโครงการโอเพนซอร์ส และให้บริการที่สำคัญมากมาย

บริการต่างๆ ที่ ZooKeeper ให้บริการ:

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

โหนดหลัก (Master) และโหนดรอง (Slave) ของ HBase (Region Server) จะลงทะเบียนตัวเองกับ ZooKeeper ไคลเอนต์จำเป็นต้องเข้าถึงการกำหนดค่า Quorum ของ ZooKeeper (ZK) เพื่อเชื่อมต่อกับโหนดหลักและโหนดรองเหล่านั้น

ในระหว่างที่เกิดความล้มเหลวของโหนดในคลัสเตอร์ HBase โควรัมของ ZooKeeper จะสร้างข้อความแสดงข้อผิดพลาดและเริ่มซ่อมแซมโหนดที่ล้มเหลว

เอชดีเอฟเอส

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

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

ในระบบนี้ ข้อมูลที่จัดเก็บในแต่ละบล็อกจะถูกทำสำเนาไปยังโหนด 3 โหนด ดังนั้นหากโหนดใดโหนดหนึ่งล่ม ข้อมูลก็จะไม่สูญหาย เนื่องจากมีกลไกการสำรองและกู้คืนข้อมูลที่เหมาะสม

HDFS เชื่อมต่อกับส่วนประกอบของ HBase และจัดเก็บข้อมูลจำนวนมากในลักษณะแบบกระจาย

แบบจำลองข้อมูล HBase

โมเดลข้อมูล HBase คือชุดของส่วนประกอบที่ประกอบด้วย ตาราง แถว กลุ่มคอลัมน์ เซลล์ คอลัมน์ และเวอร์ชัน ตาราง HBase ประกอบด้วยกลุ่มคอลัมน์และแถว โดยมีองค์ประกอบที่กำหนดเป็นคีย์หลัก คอลัมน์ในตารางโมเดลข้อมูล HBase แสดงถึงคุณลักษณะของวัตถุ

แบบจำลองข้อมูลของ HBase ประกอบด้วยองค์ประกอบต่อไปนี้:

  • ชุดโต๊ะ
  • แต่ละตารางมีตระกูลคอลัมน์และแถว
  • แต่ละตารางจะต้องมีองค์ประกอบที่กำหนดให้เป็นคีย์หลัก
  • คีย์แถวทำหน้าที่เสมือนคีย์หลักใน HBase
  • การเข้าถึงตาราง HBase ใดๆ จะใช้คีย์หลักนี้
  • แต่ละคอลัมน์ใน HBase แสดงถึงคุณลักษณะที่สอดคล้องกับวัตถุหนึ่งๆ

กรณีการใช้งาน HBase

ต่อไปนี้เป็นตัวอย่างการใช้งาน HBase พร้อมคำอธิบายโดยละเอียดเกี่ยวกับวิธีแก้ปัญหาที่ HBase มอบให้สำหรับปัญหาทางเทคนิคต่างๆ

คำชี้แจงปัญหา Solution
อุตสาหกรรมโทรคมนาคมเผชิญกับความท้าทายทางเทคนิคดังต่อไปนี้: การจัดเก็บบันทึกรายละเอียดการโทร (CDR) หลายพันล้านรายการที่สร้างขึ้นโดยระบบโทรคมนาคม; การให้การเข้าถึงบันทึก CDR และข้อมูลการเรียกเก็บเงินของลูกค้าแบบเรียลไทม์; และการจัดหาโซลูชันที่คุ้มค่าเมื่อเทียบกับระบบฐานข้อมูลแบบดั้งเดิม HBase ใช้เพื่อจัดเก็บข้อมูลรายละเอียดการโทรจำนวนหลายพันล้านแถว หากเพิ่มข้อมูล 20TB ต่อเดือนลงในฐานข้อมูล RDBMS ที่มีอยู่ ประสิทธิภาพจะลดลง หากต้องการจัดการข้อมูลจำนวนมากในกรณีการใช้งานนี้ HBase ถือเป็นโซลูชันที่ดีที่สุด HBase ดำเนินการค้นหาและแสดงระเบียนได้รวดเร็ว
อุตสาหกรรมการธนาคารสร้างข้อมูลนับล้านรายการในแต่ละวัน นอกจากนี้ อุตสาหกรรมการธนาคารยังต้องการโซลูชันด้านการวิเคราะห์ที่สามารถตรวจจับการฉ้อโกงในการทำธุรกรรมทางการเงินได้ เพื่อจัดเก็บ ประมวลผล และอัปเดตข้อมูลจำนวนมหาศาล รวมถึงทำการวิเคราะห์ข้อมูล โซลูชันที่เหมาะสมที่สุดคือ HBase ที่ผสานรวมกับส่วนประกอบต่างๆ ของระบบนิเวศ Hadoop

นอกจากนั้นแล้ว HBase ยังสามารถใช้งานได้ดังนี้:

  • เมื่อใดก็ตามที่มีความจำเป็นต้องใช้งานแอปพลิเคชันที่มีการเขียนข้อมูลจำนวนมาก
  • เพื่อดำเนินการวิเคราะห์บันทึกข้อมูลออนไลน์และจัดทำรายงานการปฏิบัติตามข้อกำหนด

กลไกการจัดเก็บใน HBase

HBase เป็นฐานข้อมูลแบบคอลัมน์ และข้อมูลจะถูกจัดเก็บไว้ในตาราง โดยตารางจะเรียงลำดับตาม RowId ดังแสดงในภาพด้านล่าง HBase มี RowId ซึ่งเป็นชุดของกลุ่มคอลัมน์หลายกลุ่มที่มีอยู่ในตาราง

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

โครงสร้างการจัดเก็บข้อมูลแบบคอลัมน์ โดยมีคีย์แถว กลุ่มคอลัมน์ และเซลล์ แสดงไว้ด้านล่าง

กลไกการจัดเก็บข้อมูลของ HBase แสดงให้เห็นถึงคีย์แถว กลุ่มคอลัมน์ คอลัมน์ และเซลล์

ต่อไปนี้คือคำศัพท์สำคัญที่ใช้อธิบายโครงสร้างตารางใน HBase:

  • ตาราง: ชุดของแถวที่มีอยู่
  • แถว: กลุ่มของตระกูลคอลัมน์
  • กลุ่มคอลัมน์: ชุดของคอลัมน์
  • คอลัมน์: ชุดของคู่คีย์-ค่า
  • เนมสเปซ: กลุ่มตรรกะping ของโต๊ะ
  • เซลล์: ทูเปิล {แถว, คอลัมน์, เวอร์ชัน} ที่ระบุรายละเอียดของเซลล์ใน HBase อย่างแม่นยำ

พื้นที่เก็บข้อมูลแบบเน้นคอลัมน์เทียบกับแบบแถว

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

ตารางต่อไปนี้แสดงความแตกต่างที่สำคัญบางประการระหว่างที่เก็บข้อมูลทั้งสองประเภทนี้

ฐานข้อมูลเชิงคอลัมน์ ฐานข้อมูลเชิงแถว
ใช้ในสถานการณ์ที่เกี่ยวข้องกับการประมวลผลและการวิเคราะห์ เช่น การประมวลผลเชิงวิเคราะห์ออนไลน์ (Online Analytical Processing) และแอปพลิเคชันต่างๆ ที่เกี่ยวข้อง การประมวลผลธุรกรรมออนไลน์ เช่น ในด้านการธนาคารและการเงิน ใช้แนวทางนี้
โมเดลนี้สามารถจัดเก็บข้อมูลได้ในปริมาณมหาศาล ในระดับเพตาไบต์ มันถูกออกแบบมาสำหรับแถวและคอลัมน์จำนวนไม่มาก

อธิบายการอ่านและเขียนข้อมูล HBase

แผนภาพด้านล่างแสดงการดำเนินการอ่านและเขียนข้อมูลจากไคลเอ็นต์ไปยังไฟล์ HFile

การไหลเวียนของข้อมูลการอ่านและเขียนใน HBase ระหว่างไคลเอ็นต์ เซิร์ฟเวอร์ภูมิภาค MemStore และ HFile

ขั้นตอนที่ 1) ไคลเอนต์ต้องการเขียนข้อมูล และจะสื่อสารกับเซิร์ฟเวอร์ประจำภูมิภาคก่อน จากนั้นจึงสื่อสารกับภูมิภาคต่างๆ

ขั้นตอนที่ 2) ภูมิภาคจะติดต่อ MemStore เพื่อจัดเก็บข้อมูลที่เกี่ยวข้องกับกลุ่มคอลัมน์

ขั้นตอนที่ 3) ขั้นแรก ข้อมูลจะถูกจัดเก็บไว้ใน MemStore ซึ่งข้อมูลจะถูกจัดเรียง จากนั้นจึงถูกบันทึกไปยัง HFile เหตุผลหลักในการใช้ MemStore คือการจัดเก็บข้อมูลในระบบไฟล์แบบกระจายโดยใช้คีย์แถว MemStore จะถูกวางไว้ในหน่วยความจำหลักของ Region Server ในขณะที่ HFiles จะถูกเขียนลงใน HDFS

ขั้นตอนที่ 4) ลูกค้าต้องการอ่านข้อมูลจากภูมิภาคต่างๆ

ขั้นตอนที่ 5) ในทางกลับกัน ลูกค้าสามารถเข้าถึง MemStore ได้โดยตรงและสามารถขอข้อมูลได้

ขั้นตอนที่ 6) ไคลเอนต์เข้าถึง HFiles เพื่อขอรับข้อมูล ข้อมูลจะถูกดึงและเรียกโดยไคลเอนต์

MemStore ทำหน้าที่เก็บการแก้ไขข้อมูลในหน่วยความจำ ลำดับชั้นของอ็อบเจ็กต์ใน HBase regions จากบนลงล่าง แสดงอยู่ในตารางด้านล่าง

ตาราง ตาราง HBase ที่มีอยู่ในคลัสเตอร์ HBase
ภูมิภาค HRegions สำหรับตารางที่นำเสนอ
เก็บที่อุณหภูมิ: จัดเก็บคอลัมน์แฟกเตอร์หนึ่งรายการต่อแต่ละภูมิภาคสำหรับตาราง
เมมสโตร์ MemStore สำหรับแต่ละที่เก็บข้อมูลในแต่ละภูมิภาคสำหรับตาราง จะทำการเรียงลำดับข้อมูลก่อนที่จะบันทึกไปยัง HFiles ซึ่งจะช่วยเพิ่มประสิทธิภาพในการเขียนและอ่านข้อมูลเนื่องจากการเรียงลำดับ
StoreFile StoreFiles สำหรับแต่ละร้านค้าสำหรับแต่ละภูมิภาคสำหรับตาราง
ปิดกั้น มีบล็อกอยู่ใน StoreFiles

HBase กับ HDFS

HBase ทำงานอยู่บน HDFS และ Hadoop ความแตกต่างที่สำคัญระหว่าง HDFS และ HBase นั้นอยู่ที่การดำเนินการและการประมวลผลข้อมูล

เอชเบส เอชดีเอฟเอส
การดำเนินการที่มีความล่าช้าต่ำ การทำงานที่มีความล่าช้าสูง
สุ่มอ่านและเขียน เขียนครั้งเดียว อ่านหลายครั้ง
เข้าถึงได้ผ่านทาง คำสั่งเชลล์API ไคลเอ็นต์ใน JavaREST, Avro หรือ Thrift โดยหลักแล้วสามารถเข้าถึงได้ผ่านทาง MapReduce (MRงาน )
สามารถดำเนินการได้ทั้งการจัดเก็บและการประมวลผล ใช้สำหรับพื้นที่จัดเก็บเท่านั้น

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

คำถามที่พบบ่อย

ใช่ HBase เป็นฐานข้อมูล NoSQL แบบกระจายศูนย์และเน้นการจัดเก็บในคอลัมน์ ซึ่งมีรูปแบบการทำงานคล้ายกับฐานข้อมูล NoSQL ทั่วไป Google Bigtable สร้างขึ้นบน HDFS โดยจัดเก็บข้อมูลแบบกระจัดกระจายในตารางที่มีโครงสร้างคอลัมน์แบบแฟมิลี และไม่ใช้สคีมาคงที่หรือการเชื่อมต่อ SQL เหมือนกับฐานข้อมูลเชิงสัมพันธ์

WAL หรือที่เรียกว่า HLog จะบันทึกทุกการเขียนบน Region Server ก่อนที่จะเข้าสู่ MemStore โดยจะถูกจัดเก็บไว้ใน HDFS ดังนั้นหาก Region Server ล่มก่อนที่จะมีการบันทึกข้อมูล HBase จะเล่น WAL ซ้ำเพื่อกู้คืนการแก้ไขที่ยังไม่ได้บันทึก

การบีบอัดข้อมูลจะรวมไฟล์ HFile เข้าด้วยกันเพื่อให้การอ่านข้อมูลรวดเร็ว การบีบอัดข้อมูลระดับเล็กจะรวมไฟล์ HFile ขนาดเล็กที่อยู่ติดกันหลายไฟล์เข้าเป็นไฟล์เดียว การบีบอัดข้อมูลระดับใหญ่จะเขียนทับไฟล์ HFile ทั้งหมดในกลุ่มคอลัมน์เดียวกันลงในไฟล์เดียว และลบเซลล์ที่ถูกลบและหมดอายุออกไปอย่างถาวร

ทั้งสองเป็นฐานข้อมูล NoSQL ที่ได้รับแรงบันดาลใจจาก Bigtable แต่ HBase ทำงานบน HDFS โดยมี HMaster ที่ใช้งานอยู่เพียงตัวเดียวและมีความสอดคล้องกันอย่างเข้มงวด ในขณะที่ Cassandra HBase เป็นระบบที่ไม่ต้องมีเซิร์ฟเวอร์หลัก และมีการจำลองข้อมูลที่ปรับแต่งได้และมีความสอดคล้องกันในที่สุด เหมาะสำหรับการวิเคราะห์ข้อมูลด้วย Hadoop Cassandra ชุดสูทที่พร้อมเขียนตลอดเวลา

ออกแบบคีย์แถวเพื่อให้การอ่านและการเขียนกระจายอย่างสม่ำเสมอทั่วทุกภูมิภาค หลีกเลี่ยงการใช้คีย์ที่เพิ่มขึ้นเรื่อยๆ เพราะจะทำให้เกิดจุดที่มีการใช้งานหนาแน่นบนเซิร์ฟเวอร์ภูมิภาคใดภูมิภาคหนึ่ง ใช้การเพิ่มค่าเกลือ (salting), การแฮช (hashing) หรือการกลับค่าฟิลด์ (field reversal) และควรใช้คีย์ที่สั้นเพราะจะปรากฏซ้ำในทุกเซลล์

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

เครื่องมือ AI และแมชชีนเลิร์นนิงจะวิเคราะห์รูปแบบการสืบค้นและการเข้าถึงเพื่อแนะนำการออกแบบคีย์แถวและตระกูลคอลัมน์ที่หลีกเลี่ยงจุดที่มีปัญหา นอกจากนี้ยังสแกนเมตริกและบันทึกของ Region Server เพื่อตรวจจับความผิดปกติ เช่น ภูมิภาคที่ไม่สมดุลหรือโหนดที่ล้มเหลวตั้งแต่เนิ่นๆ

ใช่. นักบิน GitHub ร่าง HBase Java โค้ดฝั่งไคลเอ็นต์ คำสั่งเชลล์ และตัวกรองการสแกนจากข้อความแสดงความคิดเห็นสั้นๆ Revตรวจสอบผลลัพธ์เพื่อให้แน่ใจว่าชื่อตาราง ตระกูลคอลัมน์ และคลาส API เช่น Connection และ Table นั้นถูกต้อง ก่อนที่จะเรียกใช้งานบนคลัสเตอร์จริง

สรุปโพสต์นี้ด้วย: