ข้ามไปที่เนื้อหาหลัก

บทความ

สถาปัตยกรรมภายใน Apache Spark โครงสร้างภายในและการทำงานของ Distributed Data Processing

โพสต์ล่าสุด

คำถามการวิจัย “ทำอย่างไรให้ Cluster Computing ประมวลผลข้อมูลชุดเดิมซ้ำ ๆ ได้เร็ว โดยไม่ต้องอ่านข้อมูลจาก Disk ใหม่ทุกครั้ง และยังทนต่อเครื่องที่ล้มได้?” ของ Apacha Spark

งานวิจัยเริ่มต้นที่ UC Berkeley และแกนปัญหาคือ “ทำอย่างไรให้ Cluster Computing ประมวลผลข้อมูลชุดเดิมซ้ำ ๆ ได้เร็ว โดยไม่ต้องอ่านข้อมูลจาก Disk ใหม่ทุกครั้ง และยังทนต่อเครื่องที่ล้มได้?” งานสำคัญเริ่มต้นคือ “Spark: Cluster Computing with Working Sets” โดย Matei Zaharia, Mosharaf Chowdhury, Michael Franklin, Scott Shenker และ Ion Stoica ตีพิมพ์ในปี 2010 และมี technical report ของ Berkeley ลงวันที่ 7 พฤษภาคม 2010 1. ปัญหาที่นักวิจัยเห็น ยุคนั้น MapReduce/Hadoop เป็นแนวทางสำคัญสำหรับ Big Data โดยเฉพาะ Machine Learning ที่ต้องใช้ Dataset เดิมหลายรอบ เช่น ถ้าทุก iteration ต้องอ่านข้อมูลจาก Disk ใหม่ จะเกิด overhead สูง งานวิจัย Spark จึงตั้งโจทย์ว่า ทำอย่างไรให้ Working Set อยู่ใน Memory และนำกลับมาใช้ซ้ำได้ 2. นวัตกรรมสำคัญคือ RDD นักวิจัยไม่ได้เริ่มจากคำว่า DataFrame หรือ Spark SQL แต่ละ Partition สามารถถูกเก็บใน Memory และนำกลับมาใช้ซ้ำได้ 3. แล้วถ้า Memory หายล่ะ? นี่คือจุดที่งานวิจัย ฉลาดมาก แทนที่จะ replicate ทุกข้อมูลเหมือนระบบ Distributed Storage บางประเภท Spark ใช้แนวคิด Lineage ...

Docker Swarm คืออะไร? จาก Container สู่ระบบ Distributed Application

เมื่อพูดถึง Docker คนส่วนใหญ่มักนึกถึงการสร้างและรัน Container แต่เมื่อระบบเริ่มใหญ่ขึ้น การมี Container เพียงไม่กี่ตัวบนเครื่องเดียวอาจไม่เพียงพอ ลองจินตนาการว่าระบบหนึ่งมีทั้ง Web Application, API, Database, Redis, Kafka, Worker และ AI Service และแต่ละ Service ต้องทำงานบนหลายเครื่องเพื่อรองรับผู้ใช้งานจำนวนมาก คำถามคือ ใครจะเป็นคนจัดการ Container เหล่านี้? นี่คือจุดที่แนวคิด Container Orchestration เข้ามามีบทบาท และหนึ่งในเครื่องมือที่มากับ Ecosystem ของ Docker ก็คือ Docker Swarm Docker Swarm คืออะไร? Docker Swarm คือระบบ Container Orchestration ของ Docker ที่ใช้สำหรับรวม Docker Host หลายเครื่องเข้าด้วยกันเป็น Cluster และบริหาร Container หรือ Service เหล่านั้นจากศูนย์กลาง แทนที่จะคิดว่า Server 1  └── Container Server 2  └── Container Server 3  └── Container เราสามารถมองเป็น               Docker Swarm Cluster                        │       ...