ยานเดกซ์ปล่อยซอร์สโค้ดของ YTsaurus

YTซอรัส

YTsaurus เป็นแพลตฟอร์มจัดเก็บและประมวลผลแบบกระจายสำหรับข้อมูลขนาดใหญ่พร้อมรองรับโมเดล MapReduce

เมื่อไม่กี่วันที่ผ่านมาYandex ได้ประกาศเปิดซอร์สโค้ดของแพลตฟอร์ม YTsauruซึ่งใช้สำหรับการจัดเก็บและประมวลผลข้อมูลจำนวนมากแบบกระจาย โดยรองรับการจัดการข้อมูลโดยใช้กระบวนทัศน์ MapReduce, เอ็นจิ้นการสืบค้น SQL, ระบบไฟล์แบบกระจาย และที่เก็บข้อมูล NoSQL ในรูปแบบคีย์-ค่า

YTsaurus ถูกนำมาใช้ในโครงสร้างพื้นฐานของ Yandex เพื่อใช้ประโยชน์จากพลังการประมวลผลของซูเปอร์คอมพิวเตอร์ของบริษัทอย่างมีประสิทธิภาพ แพลตฟอร์มนี้สามารถขยายขนาดได้ถึงคลัสเตอร์ที่มีโหนดมากกว่า 10,000 โหนด ครอบคลุมโปรเซสเซอร์ได้มากถึงหนึ่งล้านตัวและ GPU หลายพันตัว (สำหรับงานด้านการเรียนรู้ของเครื่อง)

คอนเทนเนอร์แบบแยกที่ทำงานบนเซิร์ฟเวอร์จริงสามารถใช้เป็นหน่วยคลัสเตอร์ได้ ที่เก็บข้อมูลสามารถบรรจุข้อมูลที่อยู่บนสื่อต่างๆ เช่น ฮาร์ดไดรฟ์, SSD, NVME และ RAM

คลัสเตอร์รองรับการเพิ่มและการลบโหนดแบบไดนามิก ความซ้ำซ้อน (ไม่มีจุดล้มเหลวแม้แต่จุดเดียว) การจำลองแบบอัตโนมัติ การอัปเกรดซอฟต์แวร์คลัสเตอร์ที่ใช้งานอยู่ และการกู้คืนความซ้ำซ้อนอัตโนมัติในกรณีที่โหนดล้มเหลว

ระบบรองรับคลัสเตอร์สามประเภท ได้แก่คลัสเตอร์ประมวลผล (สำหรับการประมวลผลแบบขนานขนาดใหญ่ของข้อมูลขนาดใหญ่โดยใช้การดำเนินการ MapReduce) คลัสเตอร์สำหรับตาราง Pivot และการจัดเก็บข้อมูลแบบ Key-Value และคลัสเตอร์ที่กระจายอยู่ตามภูมิศาสตร์

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

จากกรณีการใช้งานพื้นฐานที่มีการกล่าวถึง:

  • การประมวลผลเป็นชุด: MapReduce และ SPYT (Apache Spark เป็นเครื่องมือประมวลผลข้อมูลใน YTsaurus) สำหรับการประมวลผลข้อมูลที่มีโครงสร้างและกึ่งโครงสร้าง: บันทึกหรือธุรกรรมทางการเงิน
  • การวิเคราะห์เฉพาะกิจ: สืบค้นอย่างรวดเร็วผ่าน CHYT (กลุ่มเซิร์ฟเวอร์ ClickHouse บนโหนดประมวลผล YTsaurus) โดยไม่ต้องคัดลอกข้อมูลไปยังระบบวิเคราะห์แยกต่างหาก ODBC และ JDBC พร้อมความสามารถในการเชื่อมต่อ BI เพื่อการแสดงภาพ
  • งาน OLTP: การทำธุรกรรมตามเวลาจริงพร้อมการจัดเก็บคีย์-ค่า: ตัวอย่างเช่น การจัดเก็บโปรไฟล์ผู้ใช้ การแสดงโฆษณา หรือการประมวลผลสตรีม
  • การเรียนรู้ของเครื่อง: จัดการคลัสเตอร์ GPU เพื่อฝึกโมเดลด้วยพารามิเตอร์หลายพันล้านตัว
  • การจัดเก็บข้อมูลเมตา: การจัดเก็บธุรกรรมของ metaformation และบริการที่เชื่อถือได้ของล็อคแบบกระจาย
  • การสร้างคลังข้อมูลและ ETL สำหรับการประมวลผลข้อมูลหลายชั้นโดยใช้เครื่องมือทั่วไป: Apache Spark, SQL, MapReduce

ในส่วนขององค์ประกอบหลักทางสถาปัตยกรรมได้กล่าวถึงดังนี้

  • ระบบไฟล์แบบกระจายและพื้นที่เก็บข้อมูลเมตาตามต้นไม้ที่ทนทานต่อความผิดพลาดของ Cypress
  • ตัวกำหนดตารางเวลาสำหรับการคำนวณแบบกระจายพร้อมการรองรับโมเดล MapReduce รวมถึงการดำเนินการขั้นพื้นฐานขั้นสูง
  • ความสามารถในการปรับขนาดในแนวนอนของการดำเนินงานด้านไอที
  • การแยกทรัพยากรการประมวลผลและความเป็นไปได้ในการจัดสรรทรัพยากรการประมวลผลบางอย่าง (CPU, GPU, RAM) ในสัดส่วนที่แตกต่างกัน
  • PivotTable สำหรับสร้างที่เก็บข้อมูล OLTP รองรับที่เก็บข้อมูลที่ใช้ MVCC ธุรกรรม ความสามารถในการลบข้อมูลหลังจากหมดอายุ และคิวข้อความสำหรับการสตรีมการประมวลผลข้อมูลผ่าน PivotTable
  • API และไลบรารีสำหรับการเขียนโปรแกรมภาษา C++, Python, Java, Go
  • เว็บอินเตอร์เฟสสำหรับผู้ใช้และผู้ดูแลระบบที่รองรับการนำทางผ่านที่เก็บข้อมูลแบบต้นไม้

สุดท้ายนี้หากคุณสนใจเรียนรู้เพิ่มเติมคุณควรทราบว่าโค้ดของโปรเจ็กต์นี้เขียนด้วยภาษา C/C++ และเป็นโอเพนซอร์สภายใต้ใบอนุญาต Apache 2.0 คุณสามารถดูรายละเอียดเพิ่มเติมได้ที่ลิงก์ต่อไปนี้

ที่เก็บโค้ดบน GitHub ประกอบด้วยโค้ดเซิร์ฟเวอร์สำหรับ YTsaurus โครงสร้างพื้นฐานการใช้งานที่ใช้ k8s อินเทอร์เฟซเว็บสำหรับระบบ และ SDK ไคลเอ็นต์สำหรับภาษาโปรแกรมยอดนิยม เช่น C++, Java, Go และ Python


เพิ่มเป็นแหล่งข้อมูลที่ต้องการใน Google