What is Apache HBase and when should you use it?

ภาพรวม: Apache HBase can be defined as the Hadoop database. It is a distributed, non-relational and open source database written in Java. It is developed based on the Google BigTable framework and runs on HDFS (Hadoop distributed file system). Apache HBase จะใช้เมื่อคุณมีความต้องการของสุ่ม, การเข้าถึงเวลาจริงเพื่อปริมาณมากของข้อมูลของคุณ. HBase เป็นผู้สมัครที่เหมาะสมเมื่อคุณมีหลายร้อยล้านหรือพันล้านแถวและฮาร์ดแวร์พอที่จะสนับสนุนมัน. ในฐานะที่เป็น HBase จะขึ้นอยู่กับ HDFS และ HDFS ทำงานได้ดีเมื่อมีขั้นต่ำ 5 โหนดข้อมูล. ดังนั้นในระยะสั้น, HBase เป็น 'คลังข้อมูล’ ประเภทกรอบซึ่งมีการกระจายและเหมาะสำหรับปริมาณมากการประมวลผลข้อมูล.

ในบทความนี้ผมจะอธิบายรายละเอียดด้วยแนวคิดสถาปัตยกรรม.

การแนะนำ: Apache HBase เป็นคอลัมน์ที่มุ่งเน้นระบบการจัดการฐานข้อมูล NoSQL ซึ่งทำงานบน HDFS. HBase ไม่สนับสนุนภาษาสอบถามเชิงโครงสร้างเช่น SQL. การใช้งาน HBase เป็นงาน MapReduce และเขียนใน Java. HBase รองรับการใช้งานที่เขียนในส่วนที่เหลือ, ทริฟท์และรว์. บางส่วนของคุณสมบัติที่สำคัญในการ HBase อยู่ด้านล่าง.

• HBase สนับสนุน sharding อัตโนมัติ.
• HBase สนับสนุน HDFS เป็นที่เก็บกระจายของมัน.
• HBase สนับสนุน MapReduce สำหรับการประมวลผลแบบขนานของปริมาณมากของข้อมูล.
• HBase มีการสนับสนุนสำหรับ API Java ลูกค้า.
• HBase สนับสนุนการอ่านที่สอดคล้องกันอย่างมากและเขียน. มันเหมาะสำหรับการรวมตัวนับความเร็วสูง.

ความแตกต่างระหว่าง HBase และ HDFS: เราได้อธิบายว่า HBase จะขึ้นอยู่ด้านบนของ HDFS. ดังนั้นคุณอาจจะมีความสับสนว่า HDFS และ HBase ที่คล้ายกัน. แต่คุณต้องจำไว้ว่า HDFS ไม่ได้เป็นระบบไฟล์ที่เรียบง่าย, ค่อนข้างจะเป็นกระจายการจัดเก็บที่เหมาะสมสำหรับการจัดเก็บข้อมูลจำนวนมาก. HDFS ไม่สนับสนุนการบันทึกอย่างรวดเร็วมองขึ้นสำหรับปริมาณข้อมูลขนาดใหญ่. แต่ HBase ทำงานอยู่ด้านบนของ HDFS และให้รวดเร็วขึ้นและดูการปรับปรุง.

เมื่อคุณควรใช้ HBase?
HBase เป็นปกติ NoSQL และข้อมูลที่เก็บเสา. การเลือกฐานข้อมูล NoSQL และ RDBMS ขึ้นอยู่กับความต้องการของแอพลิเคชัน. ดังนั้นก่อน, เราควรจะเข้าใจความต้องการอย่างชัดเจนแล้วเลือกฐานข้อมูล. หากคุณเพียงแค่เลือก NoSQL DB โดยไม่ต้องวิเคราะห์ที่เหมาะสมก็อาจทำให้เกิดปัญหาสำหรับคุณ. และก็ยังจะมีการใช้ผิดวัตถุประสงค์ของเทคโนโลยีและทรัพยากร. ต่อไปนี้เป็นบางจุดที่ควรได้รับการพิจารณาสำหรับการเลือก NoSQL DB เช่น HBase.

ปริมาณ: ปริมาณของข้อมูลที่เป็นเกณฑ์แรกสำหรับการเลือก NoSQL DB. คุณควรจะมีข้อมูลที่ไม่มีที่สิ้นสุด (ล้านหรือพันล้านแถว) การประมวลผลและการจัดเก็บ. หากคุณมีเพียงไม่กี่พันหรือล้านแถวแล้ว RDBMS แบบดั้งเดิมคือแบบที่ดีที่สุด. แต่ถ้าคุณเลือก HBase สำหรับจำนวนเงินขนาดเล็กของข้อมูลแล้วข้อมูลจะสะสมในโหนดเดียวและโหนดอื่น ๆ ในกลุ่มจะนั่งไม่ได้ใช้งาน.

การสนับสนุนฮาร์ดแวร์: HDFS ดำเนินการได้อย่างมีประสิทธิภาพเมื่อมีอย่างน้อย 5 โหนดข้อมูล. ที่เรารู้ว่า HBase จะขึ้นอยู่กับ HDFS, ดังนั้นคุณควรมีการสนับสนุนฮาร์ดแวร์ที่เพียงพอสำหรับการดำเนินการ HBase DB.

ไม่จำเป็นต้องมีคุณสมบัติ RDBMS: ตรวจสอบให้แน่ใจว่าโปรแกรมที่คุณไม่จำเป็นต้องมีคุณสมบัติพิเศษที่จัดไว้ให้โดยทั่วไป RDBMS. คุณสมบัติขั้นสูงเช่นการทำธุรกรรม, แบบสอบถามที่ซับซ้อน, ทริกเกอร์ยังไม่ได้รับการสนับสนุนโดย HBase. ดังนั้นนี่เป็นอีกหนึ่งเกณฑ์สำคัญสำหรับการเลือก.

แนวคิดการออกแบบ HBase:
แนวคิดการออกแบบที่อยู่เบื้องหลัง HBase มีความคล้ายคลึงกับ HDFS และกรอบการ MapReduce. ในฐานะที่เป็นผลงานทั้งหมดในสภาพแวดล้อมแบบกระจาย, การออกแบบทั่วไปจะขึ้นอยู่กับสถาปัตยกรรม master ทาส. HDFS ทำงานบน NameNode และทาสโหนด, MapReduce ทำงานบน JobTracker และ TaskTracker ทาส. ในทำนองเดียวกัน HBase มีสถาปัตยกรรมทาสหลักต่อไปนี้.

  • โหนดหลักจัดการคลัสเตอร์.
  • ภาคเซิร์ฟเวอร์ 'ข้อมูลตารางร้านค้าและทำงานกับข้อมูล.

ในฐานะที่เป็นโหนดหลักเป็นตัวควบคุมหลัก, HBase มีความสำคัญมากกับการสูญเสียของโหนดหลักของตน.

HBase ชม: HBase จะมีมุมมองตารางสำหรับการจัดเก็บข้อมูล. แนวคิดหลักจะขึ้นอยู่กับครอบครัวของคอลัมน์. ตาราง HBase ทำจากแถว, คอลัมน์และแต่ละคอลัมน์เป็นของครอบครัวคอลัมน์. คีย์แถวของตารางเป็นคีย์หลักสำหรับการเข้าถึงตาราง. ที่สำคัญแถวที่สามารถเป็นอะไรก็ได้และแถวจะถูกเรียงลำดับโดยคีย์แถว. ต่อไปนี้เป็นสองมุมมองที่อธิบายแนวคิด.

แนวคิดดู: ในส่วนนี้ผมจะอธิบายมุมมองความคิดโดยการยกตัวอย่าง. ตารางมีครอบครัวและครอบครัวคอลัมน์คอลัมน์ประกอบด้วยคอลัมน์. การประชุมคือการที่คอลัมน์ทำจากสามส่วน – ชื่อครอบครัวคอลัมน์, คำนำหน้าชื่อและคอลัมน์. ตัวละครลำไส้ใหญ่ (:) delimits ครอบครัวคอลัมน์และคอลัมน์. ผมขอนำตัวอย่างหนึ่ง, ชื่อตารางคือ 'hbasetable’ มี colfamily1 สองครอบครัวคอลัมน์ '’ and ‘colfamily2’. 'การ colfamily1’ มีชื่อสองคอลัมน์ '’ และ 'ที่อยู่'. 'การ colfamily2’ มีคอลัมน์หนึ่ง 'telno'. ดังนั้นโครงสร้างจะแสดงดังต่อไปนี้.

ตาราง 'hbasetable’

colfamily1: name = “ริคาร์โด้”

colfamily1: ที่อยู่ = “MA, ประเทศสหรัฐอเมริกา”

colfamily2: telno = “2235678”

มุมมองแบบตารางจะมีลักษณะเช่นนี้.

กุญแจแถว การประทับเวลา ColumnFamily colfamily1 ColumnFamily colfamily2
"Rowkey1" T1 colfamily2: telno = “2235678”
"Rowkey2" T2 colfamily2: telno = “9995678”
"Rowkey3" T3 colfamily2: telno = “8896578”
"Rowkey4" T4 colfamily1: name = “ริคาร์โด้”
"Rowkey5" T5 colfamily1: ที่อยู่ = “MA, ประเทศสหรัฐอเมริกา”

ตาราง 1: มุมมองตารางของ hbasetable '

ดูทางกายภาพ: เราได้กล่าวแล้วมุมมองความคิดของตาราง HBase และเนื้อหาของมัน. แต่มุมมองทางกายภาพเป็นบิตที่แตกต่างกัน. ทางร่างกาย, ตาราง HBase จะถูกเก็บไว้บนพื้นฐานครอบครัวคอลัมน์. ดังนั้นคอลัมน์ใหม่ที่สามารถเพิ่มได้อย่างง่ายดายโดยไม่ต้องแจ้งให้ทราบล่วงหน้าใด ๆ. คุณลักษณะนี้จะเพิ่มความยืดหยุ่นในการขยายขีดความสามารถเชิงเส้นที่เราได้กล่าวก่อนหน้านี้.

ต่อไปนี้เป็นมุมมองตารางของทั้งสองครอบครัวคอลัมน์.

กุญแจแถว การประทับเวลา ColumnFamily colfamily1
"Rowkey4" T4 colfamily1: name = “ริคาร์โด้”
"Rowkey5" T5 colfamily1: ที่อยู่ = “MA, ประเทศสหรัฐอเมริกา”

Table2: แสดง colfamily1

 

กุญแจแถว การประทับเวลา ColumnFamily colfamily2
"Rowkey1" T1 colfamily2: telno = “2235678”
"Rowkey2" T2 colfamily2: telno = “9995678”
"Rowkey3" T3 colfamily2: telno = “8896578”

Table3: แสดง colfamily2

โปรดทราบว่าเซลล์ว่างแสดงในมุมมองความคิดที่ไม่ได้จัดเก็บจริง. เก็บได้รับอนุญาตเท่านั้นสำหรับคอลัมน์ที่มุ่งเน้นโครงสร้างการจัดเก็บ. ดังนั้นหากเราสอบถามข้อมูลบางส่วนที่ประทับเวลาโดยเฉพาะอย่างยิ่ง 'T1’ from ‘colfamily1’, แล้วมันก็จะกลับมาไม่มีอะไร. เช่นเดียวกับที่มันเป็นจริงสำหรับ 'colfamily2’ ด้วย, ทุกเวลาประทับจะถูกเก็บไว้ในการสั่งซื้อมากไปหาน้อย. คุ้มค่าดังนั้นล่าสุดจากคอลัมน์ใดคอลัมน์หนึ่งจะถูกส่งกลับถ้าไม่มีการประทับเวลาที่ถูกกล่าวถึงในแบบสอบถาม.

ข้อสรุป: ก่อนที่จะสรุปการอภิปราย, เราควรจะเก็บไว้ในใจว่า HBase เป็นโอเพนซอร์ส, NoSQL กระจายฐานข้อมูลที่เหมาะสมสำหรับการจัดเก็บและการประมวลผลจำนวนเงินที่ไม่มีที่สิ้นสุดของข้อมูล. มันถูกพัฒนาขึ้นภายใต้โครงการ Apache Hadoop และอยู่บนพื้นฐานกรอบ HDFS. การดำเนินงานที่มีอยู่ทั้งหมด HBase งาน MapReduce ซึ่งวิ่งในทางคู่ขนาน. แนวคิดพื้นฐานเป็นเช่นเดียวกับ BigTable ของ Google. การเลือกฐานข้อมูล NoSQL ควรจะทำอย่างระมัดระวัง. การออกแบบการออกแบบ RDBMS และ NoSQL แตกต่างอย่างสิ้นเชิงข้อมูลเพื่อ porting จาก RDBMS เพื่อ HBase เป็นไปไม่ได้. การออกแบบทั้งหมดจะต้องมีการเปลี่ยนไปเปลี่ยนจาก RDBMS เพื่อ NoSQL HBase.

Tagged on:
============================================= ============================================== ซื้อหนังสือ techalpine ที่ดีที่สุดใน Amazon,en,ช่างไฟฟ้า CT Chestnutelectric,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share