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

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

สถาปัตยกรรม HBase ประกอบด้วยส่วนประกอบหลักสี่ส่วน

  • เอชมาสเตอร์
  • เซิร์ฟเวอร์ภูมิภาค
  • HRRegions
  • ผู้ดูแลสวนสัตว์
  • เอชดีเอฟเอส

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

เอชเบส Archiเทคเจอร์
เอชเบส Archiแผนภาพเทคเจอร์

เอชมาสเตอร์

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

บทบาทสำคัญที่ HMaster ดำเนินการใน HBase มีดังนี้

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

วิธีการบางอย่างที่เปิดเผยโดย HMaster Interface เป็นวิธีการที่เน้นข้อมูลเมตาเป็นหลัก

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

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

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

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

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

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

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

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

ภูมิภาค HBase

HRegions เป็นองค์ประกอบพื้นฐานในการสร้างคลัสเตอร์ HBase ซึ่งประกอบด้วยการกระจายของตารางและประกอบด้วยกลุ่มคอลัมน์ โดยประกอบด้วยสโตร์หลายแห่ง โดยแต่ละสโตร์มีไว้สำหรับกลุ่มคอลัมน์แต่ละกลุ่ม ประกอบด้วยส่วนประกอบหลักสองส่วน ได้แก่ Memstore และ Hfile

ZooKeeper

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

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

ให้บริการโดย ZooKeeper

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

โหนดทาสหลักและ HBase (เซิร์ฟเวอร์ภูมิภาค) ลงทะเบียนตัวเองกับ ZooKeeper ไคลเอนต์ต้องการเข้าถึงการกำหนดค่าองค์ประชุม ZK (zookeeper) เพื่อเชื่อมต่อกับเซิร์ฟเวอร์หลักและเซิร์ฟเวอร์ภูมิภาค

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

เอชดีเอฟเอส

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

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

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

เอชดีเอฟเอส ติดต่อกับส่วนประกอบ 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

มาถึง HBase ต่อไปนี้คือเงื่อนไขหลักที่แสดงถึงโครงร่างตาราง

  • ตาราง: มีการรวบรวมแถวอยู่
  • แถว: การรวบรวมตระกูลคอลัมน์
  • ครอบครัวคอลัมน์: การรวบรวมคอลัมน์
  • คอลัมน์: การรวบรวมคู่คีย์-ค่า
  • namespace: การจัดกลุ่มตารางแบบลอจิคัล
  • เซลล์: tuple {row, column, version} ระบุคำจำกัดความของเซลล์ใน HBase อย่างแน่นอน

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

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

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

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

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

การดำเนินการอ่านและเขียนจากไคลเอนต์ไปยัง Hfile สามารถแสดงได้ในไดอะแกรมด้านล่าง

HBase อ่านและเขียนข้อมูล

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

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

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

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

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

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

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

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

HBase กับ HDFS

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

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

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

สรุป

  • ส่วนประกอบสถาปัตยกรรม HBase: HMaster, HRegion Server, HRegions, ZooKeeper, HDFS
  • HMaster ใน HBase คือการนำเซิร์ฟเวอร์ Master มาใช้งานในสถาปัตยกรรม HBase
  • เมื่อเซิร์ฟเวอร์ภูมิภาค HBase ได้รับการร้องขอการเขียนและอ่านจากไคลเอนต์ เซิร์ฟเวอร์จะมอบหมายคำขอให้กับภูมิภาคเฉพาะซึ่งมีตระกูลคอลัมน์จริงอยู่
  • HRegions เป็นองค์ประกอบพื้นฐานของคลัสเตอร์ HBase ที่ประกอบด้วยการกระจายของตารางและประกอบด้วยกลุ่มคอลัมน์
  • HBase Zookeeper เป็นเซิร์ฟเวอร์การตรวจสอบแบบรวมศูนย์ที่รักษาข้อมูลการกำหนดค่าและจัดเตรียมการซิงโครไนซ์แบบกระจาย
  • HDFS มีความทนทานต่อข้อผิดพลาดในระดับสูง และทำงานบนฮาร์ดแวร์สินค้าราคาถูก
  • HBase Data Model คือชุดส่วนประกอบที่ประกอบด้วยตาราง แถว ตระกูลคอลัมน์ เซลล์ คอลัมน์ และเวอร์ชัน
  • พื้นที่จัดเก็บแบบคอลัมน์และแถวมีความแตกต่างกันในกลไกการจัดเก็บ