เอชเบส Architecture: กรณีการใช้งาน ส่วนประกอบ และแบบจำลองข้อมูล
เอชเบส Archiเทคเจอร์และส่วนประกอบที่สำคัญ
สถาปัตยกรรม HBase ประกอบด้วยส่วนประกอบหลักสี่ส่วน
- เอชมาสเตอร์
- เซิร์ฟเวอร์ภูมิภาค
- HRRegions
- ผู้ดูแลสวนสัตว์
- เอชดีเอฟเอส
ด้านล่างนี้เป็นรายละเอียดสถาปัตยกรรมของ HBase พร้อมด้วยส่วนประกอบ:

เอชมาสเตอร์
เอชมาสเตอร์ ใน 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 |
---|---|
อุตสาหกรรมโทรคมนาคม เผชิญกับความท้าทายทางเทคนิค
|
HBase ใช้เพื่อจัดเก็บข้อมูลรายละเอียดการโทรจำนวนหลายพันล้านแถว หากเพิ่มข้อมูล 20TB ต่อเดือนลงในฐานข้อมูล RDBMS ที่มีอยู่ ประสิทธิภาพจะลดลง หากต้องการจัดการข้อมูลจำนวนมากในกรณีการใช้งานนี้ HBase ถือเป็นโซลูชันที่ดีที่สุด HBase ดำเนินการค้นหาและแสดงระเบียนได้รวดเร็ว |
เทศกาล อุตสาหกรรมการธนาคาร สร้างบันทึกนับล้านรายการในแต่ละวัน นอกจากนี้ อุตสาหกรรมการธนาคารยังต้องการโซลูชันการวิเคราะห์ที่สามารถตรวจจับการฉ้อโกงในธุรกรรมทางการเงินได้ | สำหรับการจัดเก็บ ประมวลผล และอัปเดตข้อมูลจำนวนมหาศาลและดำเนินการวิเคราะห์ โซลูชันที่เหมาะสมที่สุดคือ HBase ที่บูรณาการกับส่วนประกอบระบบนิเวศ Hadoop ต่างๆ |
นอกเหนือจากนั้น HBase ก็สามารถใช้ได้
- เมื่อใดก็ตามที่มีความจำเป็นต้องเขียนแอปพลิเคชันที่หนักหน่วง
- ดำเนินการวิเคราะห์บันทึกออนไลน์และสร้างรายงานการปฏิบัติตามข้อกำหนด
กลไกการจัดเก็บใน HBase
HBase เป็นฐานข้อมูลแบบคอลัมน์และข้อมูลจะถูกจัดเก็บไว้ในตาราง ตารางจะถูกจัดเรียงตาม RowId ดังที่แสดงด้านล่าง HBase มี RowId ซึ่งเป็นคอลเลกชันของตระกูลคอลัมน์ต่างๆ ที่มีอยู่ในตาราง
กลุ่มคอลัมน์ที่มีอยู่ในโครงร่างเป็นคู่คีย์-ค่า หากเราสังเกตโดยละเอียด กลุ่มคอลัมน์แต่ละกลุ่มจะมีคอลัมน์หลายจำนวน ค่าคอลัมน์จะถูกเก็บไว้ในหน่วยความจำดิสก์ แต่ละเซลล์ของตารางมีข้อมูลเมตาของตัวเอง เช่น ไทม์สแตมป์ และข้อมูลอื่นๆ
มาถึง HBase ต่อไปนี้คือเงื่อนไขหลักที่แสดงถึงโครงร่างตาราง
- ตาราง: มีการรวบรวมแถวอยู่
- แถว: การรวบรวมตระกูลคอลัมน์
- ครอบครัวคอลัมน์: การรวบรวมคอลัมน์
- คอลัมน์: การรวบรวมคู่คีย์-ค่า
- namespace: การจัดกลุ่มตารางแบบลอจิคัล
- เซลล์: tuple {row, column, version} ระบุคำจำกัดความของเซลล์ใน HBase อย่างแน่นอน
พื้นที่เก็บข้อมูลแบบเน้นคอลัมน์เทียบกับแบบแถว
พื้นที่จัดเก็บแบบคอลัมน์และแถวมีความแตกต่างกันในกลไกการจัดเก็บ ดังที่เราทุกคนทราบดีว่าโมเดลเชิงสัมพันธ์แบบดั้งเดิมจัดเก็บข้อมูลในรูปแบบตามแถว เช่น ในแง่ของแถวของข้อมูล พื้นที่เก็บข้อมูลเชิงคอลัมน์จะจัดเก็บตารางข้อมูลในแง่ของคอลัมน์และตระกูลคอลัมน์
ตารางต่อไปนี้แสดงความแตกต่างที่สำคัญบางประการระหว่างระบบจัดเก็บข้อมูลทั้งสองนี้
ฐานข้อมูลเชิงคอลัมน์ | ฐานข้อมูลเชิงแถว |
---|---|
เมื่อสถานการณ์มาถึงกระบวนการและการวิเคราะห์ เราใช้แนวทางนี้ เช่น การประมวลผลเชิงวิเคราะห์ออนไลน์ และมันคือแอปพลิเคชัน | ขั้นตอนการทำธุรกรรมออนไลน์ เช่นโดเมนการธนาคารและการเงินใช้แนวทางนี้ |
ปริมาณข้อมูลที่สามารถจัดเก็บในรุ่นนี้มีปริมาณมหาศาลมากเช่นในแง่ของเพตาไบต์ | มันถูกออกแบบมาสำหรับแถวและคอลัมน์จำนวนไม่มาก |
อธิบายการอ่านและเขียนข้อมูล HBase
การดำเนินการอ่านและเขียนจากไคลเอนต์ไปยัง Hfile สามารถแสดงได้ในไดอะแกรมด้านล่าง
ขั้นตอน 1) ลูกค้าต้องการเขียนข้อมูลและสื่อสารกับเซิร์ฟเวอร์ภูมิภาคก่อนแล้วจึงติดต่อกับภูมิภาค
ขั้นตอน 2) ภูมิภาคที่ติดต่อ memstore เพื่อจัดเก็บที่เกี่ยวข้องกับตระกูลคอลัมน์
ขั้นตอน 3) ข้อมูลแรกจะจัดเก็บไว้ใน Memstore ซึ่งข้อมูลจะถูกจัดเรียง และหลังจากนั้นจะทำการฟลัชเข้าสู่ HFile เหตุผลหลักในการใช้ Memstore คือการจัดเก็บข้อมูลในระบบไฟล์แบบกระจายโดยใช้คีย์แถว Memstore จะถูกวางไว้ในหน่วยความจำหลักของเซิร์ฟเวอร์ภูมิภาค ในขณะที่ HFiles ถูกเขียนลงใน HDFS
ขั้นตอน 4) ลูกค้าต้องการอ่านข้อมูลจากภูมิภาค
ขั้นตอน 5) ในทางกลับกัน ลูกค้าสามารถเข้าถึงร้านค้า Mem ได้โดยตรง และสามารถขอข้อมูลได้
ขั้นตอนที่ 6) ลูกค้า เข้าใกล้ HFiles เพื่อรับข้อมูล ข้อมูลจะถูกดึงและเรียกคืนโดยลูกค้า
Memstore เก็บการแก้ไขในหน่วยความจำไว้ในร้านค้า ลำดับชั้นของออบเจ็กต์ในภูมิภาค HBase ดังที่แสดงจากบนลงล่างในตารางด้านล่าง
ตาราง | ตาราง HBase ที่มีอยู่ในคลัสเตอร์ HBase |
ภูมิภาค | HRegions สำหรับตารางที่นำเสนอ |
เก็บที่อุณหภูมิ: | โดยจะจัดเก็บตาม ColumnFamily สำหรับแต่ละภูมิภาคสำหรับตาราง |
เมมสโตร์ |
|
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 คือชุดส่วนประกอบที่ประกอบด้วยตาราง แถว ตระกูลคอลัมน์ เซลล์ คอลัมน์ และเวอร์ชัน
- พื้นที่จัดเก็บแบบคอลัมน์และแถวมีความแตกต่างกันในกลไกการจัดเก็บ