ดังที่เราได้กล่าวไว้ในไฟล์ บล็อก HBase เป็นส่วนสำคัญของระบบนิเวศ Hadoop ของเรา ตอนนี้ฉันอยากจะพาคุณไปดูบทช่วยสอน HBase ซึ่งฉันจะแนะนำคุณเกี่ยวกับ Apache HBase จากนั้นเราจะพูดถึงกรณีศึกษาของ Facebook Messenger เราจะกล่าวถึงหัวข้อต่อไปนี้ในบล็อกการสอน HBase นี้:
- ประวัติ Apache HBase
- การแนะนำ Apache HBase
- ฐานข้อมูล NoSQL และประเภท
- HBase vs Cassandra
- คุณสมบัติ Apache HBase
- HBase เทียบกับ HDFS
- กรณีศึกษาของ Facebook Messenger
Apache HBase Tutorial: ประวัติศาสตร์
ให้เราเริ่มต้นด้วยประวัติของ HBase และทราบว่า HBase มีวิวัฒนาการอย่างไรในช่วงเวลาหนึ่ง
- Apache HBase จำลองแบบมาจาก BigTable ของ Google ซึ่งใช้ในการรวบรวมข้อมูลและตอบสนองคำขอสำหรับบริการต่างๆของ Google เช่น Maps, Finance, Earth เป็นต้น
- Apache HBase เริ่มต้นจากโครงการโดย บริษัท Powerset for Natural Language Search ซึ่งจัดการชุดข้อมูลขนาดใหญ่และกระจัดกระจาย
- Apache HBase เปิดตัวครั้งแรกในเดือนกุมภาพันธ์ พ.ศ. 2550 ต่อมาในเดือนมกราคม พ.ศ. 2551 HBase ได้กลายเป็นโครงการย่อยของ Apache Hadoop
- ในปี 2010 HBase กลายเป็นโครงการระดับบนสุดของ Apache
สอน HBase | ฐานข้อมูล NoSQL | Edureka
หลังจากทราบประวัติของ Apache HBase แล้วคุณคงจะอยากรู้ว่า Apache HBase คืออะไร? ให้เราก้าวต่อไปและดู
Apache HBase Tutorial: บทนำสู่ HBase
HBase เป็นโอเพ่นซอร์สหลายมิติกระจายปรับขนาดได้และ ฐานข้อมูล NoSQL เขียนด้วย Java HBase ทำงานอยู่ด้านบนของ HDFS (Hadoop Distributed File System) และมอบความสามารถเช่น BigTable ให้กับ Hadoop ได้รับการออกแบบมาเพื่อเป็นวิธีที่ยอมรับความผิดพลาดในการจัดเก็บชุดข้อมูลกระจัดกระจายจำนวนมาก
เนื่องจาก HBase มีทรูพุตสูงและมีเวลาแฝงต่ำโดยให้การเข้าถึงแบบอ่าน / เขียนที่เร็วกว่าในชุดข้อมูลขนาดใหญ่ ดังนั้น HBase จึงเป็นตัวเลือกสำหรับแอปพลิเคชันที่ต้องการการเข้าถึงข้อมูลจำนวนมากอย่างรวดเร็วและแบบสุ่ม
มีการบีบอัดการดำเนินการในหน่วยความจำและตัวกรอง Bloom (โครงสร้างข้อมูลซึ่งบอกว่ามีค่าอยู่ในชุดหรือไม่) เพื่อตอบสนองความต้องการของการอ่าน - เขียนที่รวดเร็วและสุ่ม
เรามาทำความเข้าใจกับตัวอย่าง: เครื่องยนต์เจ็ทสร้างข้อมูลหลายประเภทจากเซ็นเซอร์ต่างๆเช่นเซ็นเซอร์ความดันเซ็นเซอร์อุณหภูมิเซ็นเซอร์ความเร็ว ฯลฯ ซึ่งบ่งบอกถึงสุขภาพของเครื่องยนต์ สิ่งนี้มีประโยชน์มากในการทำความเข้าใจปัญหาและสถานะของเที่ยวบิน การทำงานของเครื่องยนต์อย่างต่อเนื่องสร้างข้อมูล 500 GB ต่อเที่ยวบินและมีเที่ยวบิน 300,000 เที่ยวบินต่อวันโดยประมาณ ดังนั้น Engine Analytics ที่ใช้กับข้อมูลดังกล่าวแบบเรียลไทม์จึงสามารถใช้เพื่อวินิจฉัยปัญหาเชิงรุกและลดเวลาหยุดทำงานโดยไม่ได้วางแผนไว้ สิ่งนี้ต้องการสภาพแวดล้อมแบบกระจายเพื่อจัดเก็บข้อมูลจำนวนมากด้วย อ่านและเขียนแบบสุ่มอย่างรวดเร็ว สำหรับการประมวลผลแบบเรียลไทม์ ที่นี่ HBase มาเพื่อช่วยเหลือ ฉันจะพูดคุยเกี่ยวกับ HBase Read and Write โดยละเอียดในบล็อกถัดไปของฉันใน สถาปัตยกรรม HBase .
อย่างที่เราทราบกันดีว่า HBase เป็นฐานข้อมูล NoSQL ดังนั้นก่อนที่จะทำความเข้าใจเพิ่มเติมเกี่ยวกับ HBase เรามาพูดคุยเกี่ยวกับฐานข้อมูล NoSQL และประเภทของฐานข้อมูลก่อน
Apache HBase Tutorial: ฐานข้อมูล NoSQL
NoSQL หมายถึง ไม่ใช่เฉพาะ SQL . ฐานข้อมูล NoSQL ถูกสร้างแบบจำลองในลักษณะที่สามารถแสดงข้อมูลนอกเหนือจากรูปแบบตารางฐานข้อมูลเชิงสัมพันธ์ที่ไม่ได้ใช้งาน ใช้รูปแบบที่แตกต่างกันเพื่อแสดงข้อมูลในฐานข้อมูลดังนั้นจึงมีฐานข้อมูล NoSQL ประเภทต่างๆตามรูปแบบการแสดง ฐานข้อมูล NoSQL ส่วนใหญ่ใช้ประโยชน์จากความพร้อมใช้งานและความเร็วเหนือความสม่ำเสมอ ตอนนี้ให้เราก้าวไปข้างหน้าและทำความเข้าใจเกี่ยวกับฐานข้อมูล NoSQL ประเภทต่างๆและรูปแบบการเป็นตัวแทน
วิธีการแปลงทศนิยมเป็นไบนารีใน python
ร้านค้าที่สำคัญ - มูลค่า:
เป็นฐานข้อมูลแบบไม่ใช้สคีมาซึ่งมีคีย์และค่า แต่ละคีย์ชี้ไปที่ค่าซึ่งเป็นอาร์เรย์ของไบต์อาจเป็นสตริง BLOB XML ฯลฯ เช่น Lamborghini เป็นกุญแจสำคัญและสามารถชี้ไปที่มูลค่า Gallardo, Aventador, Murciélago, Reventón, Diablo, Huracán, Veneno, Centenario เป็นต้น
ฐานข้อมูลคีย์ - ค่าจัดเก็บ: Aerospike, Couchbase, Dynamo, FairCom c-treeACE, FoundationDB, HyperDex, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak, Berkeley DB
ใช้กรณี
ที่เก็บคีย์ - ค่าจัดการขนาดได้ดีและสามารถประมวลผลการดำเนินการอ่าน / เขียนที่คงที่โดยมีเวลาแฝงต่ำ ทำให้เหมาะสำหรับความชอบของผู้ใช้และที่เก็บโปรไฟล์คำแนะนำผลิตภัณฑ์รายการล่าสุดที่ดูบนเว็บไซต์ของผู้ค้าปลีกเพื่อผลักดันคำแนะนำผลิตภัณฑ์ของลูกค้าในอนาคตพฤติกรรมการจับจ่ายของลูกค้าที่ให้บริการโฆษณาส่งผลให้มีโฆษณาคูปอง ฯลฯ สำหรับลูกค้าแต่ละรายแบบเรียลไทม์
เชิงเอกสาร :
เป็นไปตามคู่ค่าคีย์เดียวกัน แต่มีโครงสร้างกึ่งเช่น XML, JSON, BSON โครงสร้างเหล่านี้ถือเป็นเอกสาร
ฐานข้อมูลตามเอกสาร: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB
ใช้ - กรณี
เนื่องจากเอกสารรองรับสคีมาที่ยืดหยุ่นการอ่านเขียนและแบ่งพาร์ติชันอย่างรวดเร็วจึงเหมาะสำหรับการสร้างฐานข้อมูลผู้ใช้ในบริการต่างๆเช่น twitter เว็บไซต์อีคอมเมิร์ซเป็นต้น
เชิงคอลัมน์:
ในฐานข้อมูลนี้ข้อมูลจะถูกเก็บไว้ในเซลล์ที่จัดกลุ่มในคอลัมน์แทนที่จะเป็นแถว คอลัมน์ถูกจัดกลุ่มตามตรรกะเป็นตระกูลคอลัมน์ซึ่งสามารถสร้างได้ระหว่างการกำหนดสกีมาหรือที่รันไทม์
ฐานข้อมูลประเภทนี้จัดเก็บเซลล์ทั้งหมดที่สอดคล้องกับคอลัมน์เป็นรายการดิสก์ต่อเนื่องจึงทำให้การเข้าถึงและค้นหาเร็วขึ้นมาก
ฐานข้อมูลตามคอลัมน์: HBase, Accumulo, Cassandra, Druid, Vertica
ใช้ - กรณี
รองรับพื้นที่เก็บข้อมูลขนาดใหญ่และอนุญาตให้เข้าถึงการอ่านเขียนได้เร็วขึ้น ทำให้ฐานข้อมูลเชิงคอลัมน์เหมาะสำหรับจัดเก็บพฤติกรรมของลูกค้าในเว็บไซต์อีคอมเมิร์ซระบบการเงินเช่น Google Finance และข้อมูลตลาดหุ้น Google Maps เป็นต้น
เชิงกราฟ:
เป็นการแสดงกราฟิกที่ยืดหยุ่นสมบูรณ์แบบซึ่งใช้ไม่เหมือนกับ SQL ฐานข้อมูลประเภทนี้แก้ปัญหาความสามารถในการปรับขนาดได้อย่างง่ายดายเนื่องจากมีขอบและโหนดซึ่งสามารถขยายได้ตามข้อกำหนด
ฐานข้อมูลแบบกราฟ: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog
pivot และ unfivot ในเซิร์ฟเวอร์ sql
ใช้กรณี
โดยทั่วไปจะใช้ในการตรวจจับการฉ้อโกงเครื่องมือแนะนำแบบเรียลไทม์ (ในกรณีส่วนใหญ่อีคอมเมิร์ซ) การจัดการข้อมูลหลัก (MDM) การดำเนินงานเครือข่ายและไอทีการจัดการข้อมูลประจำตัวและการเข้าถึง (IAM) เป็นต้น
HBase และ Cassandra เป็นฐานข้อมูลเชิงคอลัมน์ที่มีชื่อเสียงสองคอลัมน์ ตอนนี้พูดถึงระดับที่สูงขึ้นให้เราเปรียบเทียบและทำความเข้าใจความแตกต่างทางสถาปัตยกรรมและการทำงานระหว่าง HBase และ Cassandra
บทช่วยสอน HBase: HBase VS Cassandra
- HBase เป็นแบบจำลองบน BigTable (Google) ในขณะที่ Cassandra ใช้ DynamoDB (Amazon) ที่พัฒนาโดย Facebook
- HBase ใช้ประโยชน์จากโครงสร้างพื้นฐาน Hadoop (HDFS, ZooKeeper) ในขณะที่ Cassandra พัฒนาแยกกัน แต่คุณสามารถรวม Hadoop และ Cassandra ได้ตามความต้องการของคุณ
- HBase มีส่วนประกอบหลายอย่างที่สื่อสารร่วมกันเช่น HBase HMaster, ZooKeeper, NameNode, Region Severs ในขณะที่ Cassandra เป็นประเภทโหนดเดียวซึ่งโหนดทั้งหมดเท่ากันและทำหน้าที่ทั้งหมด โหนดใด ๆ สามารถเป็นตัวประสานงานนี้จะลบจุดเดียวของความล้มเหลว
- HBase เหมาะสำหรับการอ่านและรองรับการเขียนครั้งเดียวซึ่งนำไปสู่ความสม่ำเสมอที่เข้มงวด HBase รองรับการสแกนตามช่วงซึ่งทำให้กระบวนการสแกนเร็วขึ้น ในขณะที่ Cassandra รองรับการอ่านแถวเดียวซึ่งจะรักษาความสอดคล้องในที่สุด
- Cassandra ไม่รองรับการสแกนแถวตามช่วงซึ่งทำให้กระบวนการสแกนช้าลงเมื่อเทียบกับ HBase
- HBase รองรับการแบ่งพาร์ติชันตามคำสั่งซึ่งแถวของ Column Family จะถูกเก็บไว้ในคำสั่ง RowKey ในขณะที่การแบ่งพาร์ติชันตามลำดับ Casandra เป็นสิ่งที่ท้าทาย เนื่องจากการแบ่งพาร์ติชัน RowKey กระบวนการสแกนจึงเร็วกว่าใน HBase เมื่อเทียบกับ Cassandra
- HBase ไม่รองรับการทำโหลดบาลานซ์การอ่านเซิร์ฟเวอร์หนึ่งภูมิภาคทำหน้าที่ในการร้องขอการอ่านและแบบจำลองจะใช้ในกรณีที่เกิดความล้มเหลวเท่านั้น ในขณะที่ Cassandra รองรับการอ่านโหลดบาลานซ์และสามารถอ่านข้อมูลเดียวกันจากโหนดต่างๆ สิ่งนี้สามารถประนีประนอมความสม่ำเสมอ
- ใน CAP (Consistency, Availability & Partition -Tolerance) ทฤษฎีบท HBase รักษาความสม่ำเสมอและความพร้อมใช้งานในขณะที่ Cassandra มุ่งเน้นไปที่ Availability และ Partition -Tolerance
ตอนนี้เรามาดูข้อมูลเชิงลึกและทำความเข้าใจกับคุณสมบัติของ Apache HBase ที่ทำให้มันเป็นที่นิยม
Apache HBase Tutorial: คุณสมบัติของ HBase
- อ่านและเขียนปรมาณู: ในระดับแถว HBase ให้การอ่านและเขียนแบบอะตอม สามารถอธิบายได้ว่าในระหว่างกระบวนการอ่านหรือเขียนกระบวนการอื่น ๆ ทั้งหมดจะถูกป้องกันไม่ให้ดำเนินการอ่านหรือเขียน
- การอ่านและเขียนที่สอดคล้องกัน: HBase ให้การอ่านและการเขียนที่สอดคล้องกันเนื่องจากคุณสมบัติข้างต้น
- ความสามารถในการปรับขนาดเชิงเส้นและแบบแยกส่วน: เนื่องจากชุดข้อมูลถูกกระจายผ่าน HDFS ดังนั้นจึงสามารถปรับขนาดเป็นเชิงเส้นในโหนดต่างๆได้เช่นเดียวกับที่ปรับขนาดได้แบบแยกส่วนเนื่องจากแบ่งออกเป็นโหนดต่างๆ
- การแบ่งตารางโดยอัตโนมัติและกำหนดค่าได้: ตาราง HBase กระจายไปตามคลัสเตอร์และคลัสเตอร์เหล่านี้กระจายไปตามภูมิภาค ภูมิภาคและคลัสเตอร์เหล่านี้จะแยกออกและแจกจ่ายใหม่เมื่อข้อมูลเติบโตขึ้น
- Java API ที่ใช้งานง่ายสำหรับการเข้าถึงไคลเอ็นต์: มี Java API ที่ใช้งานง่ายสำหรับการเข้าถึงแบบโปรแกรม
- เกตเวย์ที่ประหยัดและบริการบนเว็บที่สมบูรณ์แบบ: นอกจากนี้ยังรองรับ Thrift และ REST API สำหรับฟรอนต์เอนด์ที่ไม่ใช่ Java
- บล็อกแคชและฟิลเตอร์บลูม: HBase รองรับ Block Cache และ Bloom Filters สำหรับการเพิ่มประสิทธิภาพการสืบค้นปริมาณมาก
- การสนับสนุนความล้มเหลวอัตโนมัติ: HBase ที่มี HDFS จัดเตรียม WAL (Write Ahead Log) ข้ามคลัสเตอร์ซึ่งให้การสนับสนุนความล้มเหลวโดยอัตโนมัติ
- เรียงแถว: เมื่อการค้นหาเสร็จสิ้นในช่วงของแถว HBase จะจัดเก็บ rowkeys ตามลำดับพจนานุกรม การใช้คีย์แถวและการประทับเวลาที่จัดเรียงเหล่านี้เราสามารถสร้างคำขอที่เหมาะสมที่สุด
ตอนนี้ก้าวไปข้างหน้าในบทช่วยสอน HBase นี้ให้ฉันบอกคุณว่ากรณีการใช้งานและสถานการณ์ที่สามารถใช้ HBase ได้คืออะไรจากนั้นฉันจะเปรียบเทียบ HDFS และ HBase
ฉันต้องการดึงดูดความสนใจของคุณไปยังสถานการณ์ที่ HBase เหมาะสมที่สุด
HBase Tutorial: เราจะใช้ HBase ได้ที่ไหน?
- เราควรใช้ HBase ในกรณีที่เรามีชุดข้อมูลขนาดใหญ่ (นับล้านหรือพันล้านหรือแถวและคอลัมน์) และเราต้องการการเข้าถึงข้อมูลที่รวดเร็วสุ่มและเรียลไทม์
- ชุดข้อมูลกระจายไปตามคลัสเตอร์ต่างๆและเราต้องการความสามารถในการปรับขนาดได้สูงเพื่อจัดการกับข้อมูล
- ข้อมูลถูกรวบรวมจากแหล่งข้อมูลต่างๆและเป็นข้อมูลกึ่งโครงสร้างหรือไม่มีโครงสร้างหรือรวมกันทั้งหมด สามารถจัดการได้อย่างง่ายดายด้วย HBase
- คุณต้องการจัดเก็บข้อมูลเชิงคอลัมน์
- คุณมีชุดข้อมูลหลายเวอร์ชันและจำเป็นต้องจัดเก็บชุดข้อมูลทั้งหมด
ก่อนที่จะข้ามไปยังกรณีศึกษาของ Facebook Messengerให้ฉันบอกคุณว่าความแตกต่างระหว่าง HBase และ HDFS คืออะไร
การสอน HBase: HBase VS HDFS
HDFS เป็นระบบไฟล์แบบกระจายบน Java ที่ช่วยให้คุณจัดเก็บข้อมูลขนาดใหญ่ในหลายโหนดในคลัสเตอร์ Hadoop ดังนั้น HDFS จึงเป็นระบบจัดเก็บข้อมูลพื้นฐานสำหรับจัดเก็บข้อมูลในสภาพแวดล้อมแบบกระจาย HDFS เป็นระบบไฟล์ในขณะที่ HBase เป็นฐานข้อมูล (คล้ายกับ NTFS และ MySQL)
เนื่องจากทั้ง HDFS และ HBase เก็บข้อมูลประเภทใดก็ได้ (เช่นมีโครงสร้างกึ่งโครงสร้างและไม่มีโครงสร้าง) ในสภาพแวดล้อมแบบกระจายดังนั้นให้ดูความแตกต่างระหว่างระบบไฟล์ HDFS และ HBase ซึ่งเป็นฐานข้อมูล NoSQL
- HBase ให้เวลาแฝงต่ำในการเข้าถึงข้อมูลจำนวนน้อยภายในชุดข้อมูลขนาดใหญ่ในขณะที่ HDFS ให้การดำเนินการแฝงสูง
- HBase รองรับการอ่านและเขียนแบบสุ่มในขณะที่ HDFS รองรับ WORM (เขียนครั้งเดียวอ่านหลายครั้งหรือหลายครั้ง)
- HDFS นั้นเข้าถึงได้โดยทั่วไปหรือเป็นหลักผ่านงาน MapReduce ในขณะที่ HBase เข้าถึงผ่านคำสั่งเชลล์, Java API, REST, Avro หรือ Thrift API
HDFS จัดเก็บชุดข้อมูลขนาดใหญ่ในสภาพแวดล้อมแบบกระจายและใช้ประโยชน์จากการประมวลผลแบบแบตช์กับข้อมูลนั้น เช่น. จะช่วยให้เว็บไซต์อีคอมเมิร์ซสามารถจัดเก็บข้อมูลของลูกค้าหลายล้านรายในสภาพแวดล้อมแบบกระจายซึ่งเพิ่มขึ้นเป็นระยะเวลานาน (อาจจะ 4-5 ปีหรือมากกว่านั้น) จากนั้นจึงใช้ประโยชน์จากการประมวลผลแบบกลุ่มกับข้อมูลนั้นและวิเคราะห์พฤติกรรมของลูกค้ารูปแบบความต้องการ จากนั้น บริษัท สามารถค้นหาว่าสินค้าประเภทใดลูกค้าซื้อในเดือนไหน ช่วยในการจัดเก็บข้อมูลที่เก็บถาวรและดำเนินการประมวลผลชุดงาน
ในขณะที่ HBase จัดเก็บข้อมูลในลักษณะเชิงคอลัมน์ซึ่งแต่ละคอลัมน์จะถูกเก็บไว้ด้วยกันดังนั้นการอ่านจึงใช้ประโยชน์จากการประมวลผลแบบเรียลไทม์ได้เร็วขึ้น เช่น. ในสภาพแวดล้อมอีคอมเมิร์ซที่คล้ายกันจะจัดเก็บข้อมูลผลิตภัณฑ์หลายล้านรายการ ดังนั้นหากคุณค้นหาผลิตภัณฑ์จากผลิตภัณฑ์นับล้านผลิตภัณฑ์จะปรับคำขอและกระบวนการค้นหาให้เหมาะสมโดยให้ผลลัพธ์ทันที (หรือจะพูดแบบเรียลไทม์ก็ได้) โดยละเอียด คำอธิบายสถาปัตยกรรม HBase ฉันจะพูดถึงในบล็อกถัดไป
อย่างที่เราทราบกันดีว่า HBase มีการแจกจ่ายผ่าน HDFS ดังนั้นการรวมกันของทั้งสองอย่างทำให้เรามีโอกาสที่ดีในการใช้ประโยชน์ของทั้งสองอย่างในโซลูชันที่ปรับแต่งให้เหมาะสมดังที่เราจะเห็นในกรณีศึกษาของ Facebook Messenger ด้านล่าง
บทช่วยสอน HBase: กรณีศึกษาของ Facebook Messenger
แพลตฟอร์มการส่งข้อความ Facebook เปลี่ยนจาก Apache Cassandra เป็น HBase ในเดือนพฤศจิกายน 2010
Facebook Messenger รวมข้อความอีเมลแชทและ SMS เข้ากับการสนทนาแบบเรียลไทม์ Facebook พยายามสร้างโครงสร้างพื้นฐานที่ปรับขนาดได้และมีประสิทธิภาพเพื่อจัดการกับชุดบริการเหล่านี้
ในเวลานั้นโครงสร้างพื้นฐานของข้อความได้จัดการผู้ใช้กว่า 350 ล้านคนที่ส่งข้อความจากบุคคลสู่คนมากกว่า 15 พันล้านข้อความต่อเดือน บริการแชทรองรับผู้ใช้มากกว่า 300 ล้านคนที่ส่งข้อความมากกว่า 120 พันล้านข้อความต่อเดือน
จากการตรวจสอบการใช้งานพบว่ารูปแบบข้อมูลทั่วไปสองรูปแบบเกิดขึ้น:
- ชุดข้อมูลสั้น ๆ ที่มีแนวโน้มที่จะผันผวน
- ชุดข้อมูลที่เพิ่มขึ้นเรื่อย ๆ ซึ่งแทบไม่ได้รับการเข้าถึง
Facebook ต้องการหาโซลูชันการจัดเก็บข้อมูลสำหรับรูปแบบการใช้งานทั้งสองนี้และเริ่มทำการตรวจสอบเพื่อหาสิ่งทดแทนสำหรับโครงสร้างพื้นฐานของ Messages ที่มีอยู่
ก่อนหน้านี้ในปี 2008 พวกเขาใช้ฐานข้อมูลโอเพนซอร์สเช่น Cassandra ซึ่งเป็นที่เก็บคีย์ - ค่าที่สอดคล้องกันในที่สุดซึ่งอยู่ในขั้นตอนการผลิตที่ให้บริการทราฟฟิกสำหรับ Inbox Search ทีมของพวกเขามีความรู้อย่างมากในการใช้และจัดการฐานข้อมูล MySQL ดังนั้นการเปลี่ยนเทคโนโลยีอย่างใดอย่างหนึ่งจึงเป็นเรื่องที่น่ากังวลอย่างยิ่งสำหรับพวกเขา
พวกเขาใช้เวลาสองสามสัปดาห์ในการทดสอบกรอบงานต่างๆเพื่อประเมินกลุ่มของ MySQL, Apache Cassandra, Apache HBase และระบบอื่น ๆ ในที่สุดพวกเขาก็เลือก HBase
เนื่องจาก MySQL ไม่สามารถจัดการกับชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพเนื่องจากดัชนีและชุดข้อมูลมีขนาดใหญ่ขึ้นประสิทธิภาพจึงได้รับผลกระทบ พวกเขาพบว่า Cassandra ไม่สามารถจัดการกับรูปแบบที่ยากในการปรับโครงสร้างพื้นฐาน Messages ใหม่ได้
ปัญหาที่สำคัญ ได้แก่ :
- การจัดเก็บข้อมูลจำนวนมากที่เติบโตอย่างต่อเนื่องจากบริการต่างๆของ Facebook
- ต้องการฐานข้อมูลที่สามารถใช้ประโยชน์จากการประมวลผลที่สูงได้
- จำเป็นต้องมีประสิทธิภาพสูงเพื่อตอบสนองคำขอหลายล้านรายการ
- การรักษาความสม่ำเสมอในการจัดเก็บและประสิทธิภาพ
fibonacci c ++ เรียกซ้ำ
รูปภาพ: ความท้าทายที่ Facebook Messenger ต้องเผชิญ
สำหรับปัญหาเหล่านี้ Facebook จึงมีวิธีแก้ปัญหาเช่น HBase Facebook นำ HBase มาใช้ในการให้บริการ Facebook Messenger แชทอีเมลและอื่น ๆ เนื่องจากมีคุณสมบัติที่หลากหลาย
HBase มาพร้อมกับความสามารถในการปรับขนาดและประสิทธิภาพที่ดีมากสำหรับเวิร์กโหลดนี้ด้วยโมเดลความสอดคล้องที่ง่ายกว่าคาสซานดรา ในขณะที่พวกเขาพบว่า HBase เหมาะสมที่สุดในแง่ของข้อกำหนดเช่นการปรับสมดุลการโหลดอัตโนมัติและการล้มเหลวการสนับสนุนการบีบอัดเศษหลายชิ้นต่อเซิร์ฟเวอร์เป็นต้น
HDFS ซึ่งเป็นระบบไฟล์ต้นแบบที่ใช้โดย HBase ยังมีคุณสมบัติที่จำเป็นหลายประการเช่นการตรวจสอบจากต้นทางถึงปลายทางการจำลองแบบและการปรับสมดุลโหลดใหม่โดยอัตโนมัติ
รูปภาพ: HBase เป็นโซลูชันสำหรับ Facebook Messenger
ในขณะที่พวกเขานำ HBase มาใช้พวกเขายังให้ความสำคัญกับการส่งผลลัพธ์กลับไปที่ HBase และเริ่มทำงานอย่างใกล้ชิดกับชุมชน Apache
เนื่องจากข้อความยอมรับข้อมูลจากแหล่งที่มาต่างๆเช่น SMS แชทและอีเมลจึงเขียนแอปพลิเคชันเซิร์ฟเวอร์เพื่อจัดการการตัดสินใจทั้งหมดสำหรับข้อความของผู้ใช้ เชื่อมต่อกับบริการอื่น ๆ จำนวนมาก ไฟล์แนบจะถูกเก็บไว้ใน Haystack (ซึ่งใช้ได้กับ HBase) พวกเขายังเขียนบริการค้นหาผู้ใช้ที่ด้านบนของ Apache ZooKeeper ซึ่งพูดคุยกับบริการโครงสร้างพื้นฐานอื่น ๆ สำหรับความสัมพันธ์กับเพื่อนการตรวจสอบบัญชีอีเมลการตัดสินใจในการจัดส่งและการตัดสินใจเกี่ยวกับความเป็นส่วนตัว
ทีมงาน Facebook ใช้เวลาส่วนใหญ่ในการยืนยันว่าบริการเหล่านี้มีประสิทธิภาพเชื่อถือได้และมีประสิทธิภาพที่ดีในการจัดการระบบการส่งข้อความแบบเรียลไทม์
ฉันหวังว่าบล็อกการสอน HBase นี้จะเป็นข้อมูลและคุณชอบ ในบล็อกนี้คุณได้เรียนรู้พื้นฐานของ HBase และคุณสมบัติต่างๆในบล็อกถัดไปของฉัน ฉันจะอธิบาย สถาปัตยกรรมของ HBase และการทำงานของ HBase ซึ่งทำให้เป็นที่นิยมสำหรับการอ่าน / เขียนแบบสุ่มและรวดเร็ว
ตอนนี้คุณเข้าใจพื้นฐานของ HBase แล้วลองดูไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรม Edureka Big Data Hadoop Certification ช่วยให้ผู้เรียนมีความเชี่ยวชาญใน HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume และ Sqoop โดยใช้กรณีการใช้งานแบบเรียลไทม์ในโดเมนการค้าปลีกโซเชียลมีเดียการบินการท่องเที่ยวการเงิน
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป