Cassandra+Akka+Spark分散式機器學習架構

banq發表於2015-10-31
目前基於Mesos的 Spark, Akka, Cassandra 和 Kafka (簡稱SMACK)架構將機器學習 大資料分析 快資料實時流處理和叢集自動化管理結合一起,形成大資料領域的主流架構

資料分為快資料和大資料;快資料包括相關的最新資訊以及提供可操作的事件。大資料是有關分析與模型和學習,聚類,分類以及組織事實。

下圖是展示對大資料和快資料分別進行批處理和流處理以後,進入分散式資料儲存系統,然後再為終端使用者分別提供分析報告和實時提醒報警服務。

[img index=1]

為了實現這樣一個目標設計,使用Akka-Cassandra-Spark 組合實現,如下圖:

[img index=2]

Spark從Cassandra中釋放資料,建立模型,豐富模型,改造模型後再寫入到Cassandra;而Akka負責從Kafka訊息系統接受處理事件,以及實現實時響應式的提醒和報警服務。

使用Akka持久化接受進來的事件到Cassandra,也就是將Akka有態actor將其內部狀態持久化儲存,這樣當遭遇崩潰或重新啟動或叢集遷移時,actor能夠從Cassandra中恢復狀態,這是使用event sourcing原理,只是將改變actor狀態的事件持久化,而不是直接持久狀態,這是以一種日誌方式儲存。這種方式有很高的事務性和複製高效性。

Apache Spark機器學習初級教程

英文資料:

使用Spark MLlib, Akka and Cassandra進行實時異常檢測

Using Spark to analyse Akka persistence journal in Cassandra

Streaming Big Data with Spark, Spark Streaming, Kafka, Cassandra and Akka

[該貼被banq於2015-10-31 14:29修改過]

相關文章