วันอังคารที่ 18 ตุลาคม พ.ศ. 2559

Apache Spark คืออะไร


     Apache Spark คือ Processing Engine ชนิดหนึ่งที่ใช้ในการประมวลผลขนาดใหญ่ๆ โดยจะเน้นการประมวลผลแบบ in-memory ทำให้มีประสิทธิภาพที่รวดเร็ว

     ใน Apache Spark จะมี Library ให้เลือกใช้ตามแต่ชนิดของงาน มีดังนี้
     Spark SQL ใช้สำหรับแปลง dataset ให้อยู่ในรูปแบบของ dataframe ทำให้สามารถใช้ SQL command ในการประมวลผลข้อมูลได้
     Spark Streaming ใช้สำหรับการประมวลผลแบบ Real-Time
     MLlib ใช้สำหรับการประมวลผล Machine Learning
     GraphX ใช้สำหรับการประมวลผล Graph

และยังสามารถ Run งานบน Hadoop, Mesos, Standalone และ On Cloud

     ภาษาที่รองรับ
     Scala(แนะนำ)
     Java
     Python(แนะนำ)
     R

     Resilient Distributed Dataset (RDD) คือ Dataset ที่กระจายจายข้อมูลอยู่บนหลายๆ Node ของ Cluster ซึ่งมีความสามารถที่จะประมวลผลแบบ Parallel อีกทั้งยังมีความยืดหยุ่นเช่น หากมี Node ที่ Down ขณะทำงาน Spark จะไปกระจายงานให้กับ Node อื่นที่ยังมีข้อมูลแบบเดียวกันกับ Node ที่ Down ไปทำให้ยังสามารถประมวลผลต่อได้

     Lazy Execution : สำหรับ Apache Spark จะมีการประมวลผลแบบ Lazy Execution คือจะไม่ทำการประมวลผลจนกว่าจะเจอ คำสั่งที่เป็น Action

     Transformation : สำหรับ Apache Spark จะมีคำสั่งเกี่ยวกับ Transformations หรือจัดข้อมูลให้อยู่ในรูปแบบที่ต้องการเช่น
     map(func)
     filter(func)
     flatMap(func)
     mapPartitions(func)

     Action : สำหรับ Apache Spark จะมีคำสั่งเกี่ยวกับ Action ต่างๆเช่น
     reduce(func)
     collect()
     count()
     first()
     take(n)
     saveAsTextFile(path)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น