บทช่วยสอน HBase: บทนำ HBase และกรณีศึกษาของ Facebook



บล็อกการสอน HBase นี้จะแนะนำคุณเกี่ยวกับ HBase และคุณสมบัติของมันคืออะไร นอกจากนี้ยังครอบคลุมกรณีศึกษาของ Facebook Messenger เพื่อทำความเข้าใจประโยชน์ของ HBase

ดังที่เราได้กล่าวไว้ในไฟล์ บล็อก HBase เป็นส่วนสำคัญของระบบนิเวศ Hadoop ของเรา ตอนนี้ฉันอยากจะพาคุณไปดูบทช่วยสอน HBase ซึ่งฉันจะแนะนำคุณเกี่ยวกับ Apache HBase จากนั้นเราจะพูดถึงกรณีศึกษาของ Facebook Messenger เราจะกล่าวถึงหัวข้อต่อไปนี้ในบล็อกการสอน HBase นี้:

Apache HBase Tutorial: ประวัติศาสตร์

ให้เราเริ่มต้นด้วยประวัติของ HBase และทราบว่า HBase มีวิวัฒนาการอย่างไรในช่วงเวลาหนึ่ง





ประวัติของ HBase - การสอน HBase - Edureka

  • 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 โดยใช้กรณีการใช้งานแบบเรียลไทม์ในโดเมนการค้าปลีกโซเชียลมีเดียการบินการท่องเที่ยวการเงิน

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป