2016/2/1

SMACK: Spark、Mesos、Akka、Cassandra 和 Kafka


對於新的名詞 SMACK,以下是一些網站的資訊,對於 Scala Akka,我們還算比較熟悉一些,Spark 在大數據的運算處理效能也已經被驗證了。對 Cassandra 就比較不知道特殊的定位在哪,目前只認為是一種 Java 實作的 NoSQL DB,但在 driver 的部分,並沒有感覺到有什麼優勢。還不熟悉 Mesos 跟 Kafka,Kafka 相較於 RabbitMQ 來說,定位在輕量級的 MQ 系統。


2016年是IT翻轉的關鍵一年


  1. Docker: 建立應用程式層級的虛擬隔離環境

  2. Microservices: 不同於過去只靠單一應用系統(Monolithic Application)來提供各種應用功能,微服務架構是一種以大量微型服務來組合成一套應用系統的架構。

  3. DevOps: 各種DevOps工具可以以Docker為溝通基礎,來建立相互搭配的機制,甚至更進一步能成為一個軟體開發生產線,就像是一間高度自動化的軟體工廠(Software Factory),在設計完成後,只需少數幾人就能維運來生產自家的軟體產品。

  4. SMACK(Spark、Mesos、Akka、Cassandra和Kafka)是矽谷最夯的大資料架構,這個以解決Fast Data串流資料為目標的架構


【大資料2016趨勢分析】超夯Big Data新架構SMACK崛起


一位瑞典大資料開發者Anton Kirillov把這5項大資料技術組合稱作SMACK架構,在2015年9月於斯德哥爾摩Big Data Meetup中提出。


在SMACK架構中,首先,採用Spark分散式引擎用來快速處理大規模資料,並用Mesos管理叢集資源。


Akka則是以Scala語言寫出的Actor模型庫,可用來建構一個能在JVM上執行的高同步、分散式、能自動容錯,並以彈性訊息驅動的應用。

儲存層使用Cassandra分散式資料庫,採用Key-Value資料儲存架構。

Kafka是一套分散式訊息提交系統,可以預先將進來的資料集合起來,讓多個Consumer進行批次資料讀取。


LEARN EVERYTHING YOU NEED TO KNOW ABOUT SCALA AND BIG DATA


How SMACK makes big data faster


Akka: a toolkit and runtime aimed at simplifying the construction of concurrent and distributed applications on the Java Virtual Machine (JVM). The only element that is not an Apache Software project.


Cassandra: a NoSQL database management system


Kafka: a distributed messaging system originally developed by LinkedIn


Mesos: a cluster management system co-created by Matei Zaharia who also co-created Spark


Spark: a general-purpose big data processing platform that generally runs in-memory


SMACK stands for Spark, Mesos, Akka, Cassandra and Kafka. These are all open-source, mostly Apache Software projects (Akka is not).


Akka, Spark and Cassandra take data from Kafka into the data layer - Cassandra handles the operational data, while Spark provides near real time analysis of that data. Mesos is tasked with orchestrating the components and managing all the resources used by each of them.


深入淺出Mesos(一):為軟件定義數據中心而生的操作系統


Mesos的起源於Google的數據中心資源管理系統Borg。Twitter從Google的Borg系統中得到啟發,然後就開發一個類似的資源管理系統來幫助他們擺脫可怕的“失敗之鯨”。


Mesos實現了兩級調度架構,它可以管理多種類型的應用程序。


第一級調度是Master的守護進程,管理Mesos集群中所有節點上運行的Slave守護進程。集群由物理服務器或虛擬服務器組成,用於運行應用程序的任務,比如Hadoop和MPI作業。


第二級調度由被稱作Framework的“組件”組成。Framework包括調度器(Scheduler)和執行器(Executor)進程,其中每個節點上都會運行執行器。Mesos能和不同類型的Framework通信,每種Framework由相應的應用集群管理。


Kafka剖析(一):Kafka背景及架構介紹


Kafka是由LinkedIn開發的一個分佈式的消息系統,用作LinkedIn的活動流(Activity Stream)和運營數據處理管道(Pipeline)的基礎,使用Scala編寫,它以可水平擴展和高吞吐率而被廣泛使用。


Spark擊敗Hadoop刷新資料排序世界記錄


Spark僅以不到30分鐘就完成排序多達100 TB的資料量,打破了此前由另一個大資料分析工具 Hadoop保有72分鐘的世界記錄。