Cloud Notes

fluentd

是一個日誌收集系統,它的特點在於其各部分均是可定製化的,你可以通過簡單的配置,將日誌收集到不同的地方。

 
Kafka

是一套分散式訊息系統,可以輕易擴充,特色是能支援多個Consumer。
此外Kafka可以配置每個Partition需要備份的個數,並備份到多臺機器上每個分區都會進行備份,即使單一節點壞掉也可以確保訊息不遺失,也可以設定多個Consumer Group針對同一主題,確保服務不會產生重複訊息。

 
Cassandra

則是NoSQL分散式資料庫,採用Key-Value資料儲存架構,在Cassandra叢集架構中,每一臺伺服器節點對等獨立,彼此沒有主從關係,且具有複寫機制,因此也沒有單點失效問題(Single Point of Failure,SPOF),不會因為單一臺主機掛掉導致資料庫無法運作。
此外,Cassandra具有非常快的寫入效能,只要算一個分區的Key放到對的節點上就做完了,適合串流資料的處理。

 

葉祐欣將這整個架構稱為SDACK,結合Spark來處理串流與批次資料分析,而然後用Docker做資源管理,葉祐欣表示,因為在特定任務平臺上只有一個App,只要把自己的資源管理好,不需要用到多重管理工具如YARN或Mesos,Akka用來做細緻的資料處理流程,Cassandra用來做批次查詢,Kafka則提供可用的緩衝區。

 
SMACK大資料架構夯,Bigtop即將釋出新版本

他也說,不同企業採用的技術不同,趨勢現在也正在發展階段,他建議企業可以選擇採用SMACK Stack中的5大資料元件來因應多種不同的資料處理情境,包括Spark、Mesos、Akka、Cassandra及Kafka。

葉祐欣認為,大資料未來發展,很多新興大資料解決方案都專注在記憶體式運算(In Memory)和Fast Data,如Spark,或是更晚出現的Flink、Iginte、Geode等新興套件。

他也預告,Bigtop 1.1版預計在2016年1月釋出,將可支援Hadoop 2.7.1版、有Back-pressure功能的Spark 1.5.1版、支援Spark action的Oozie 4.2。

 
SMACK
在SMACK架構中,首先,採用Spark分散式引擎用來快速處理大規模資料,

並用Mesos管理叢集資源,Mesos是分散式系統的核心,提供有效的資源隔離,
並能跨分散式應用程式共享資源,讓不同Scheduler決定怎麼使用這些資源。

Akka則是以Scala語言寫出的Actor模型庫,可用來建構一個能在JVM上執行的
高同步、分散式、能自動容錯,並以彈性訊息驅動的應用,
其中的Actor具有階層關係,此外,也可用Scheduler安排訊息發送排程。

儲存層使用Cassandra分散式資料庫,採用Key-Value資料儲存架構,可將資料結構最佳化,
降低寫入負擔,進行線性擴充,可設定一致性層級(consistency level)來為個別應用程式配置CAP作取捨,
調整速度及一致性等優先次序。

另一部份則用Kafka做即時資料分析,Kafka是一套分散式訊息提交系統,
可以預先將進來的資料集合起來,讓多個Consumer進行批次資料讀取,並能作為AWS Kinesis的串流資料層選擇。

 
分散式資料庫的戰爭:HBase vs. Cassandra
http://oss-tw.blogspot.tw/2010/04/hbase-vs-cassandra.html
 
論文:Cassandra-一個分散式結構儲存系統
http://oss-tw.blogspot.tw/2010/07/cassandra.html
 
Hadoop專家實戰經驗大公開,揭露企業導入大資料的關鍵4階段
http://www.ithome.com.tw/news/101577
而現在的大資料已經能處理流動的大資料(Big Data in Motion),
如金融交易、IoT災害預防等應用情境,必須做即時性的資料處理,
此時,若是結構化資料則用HBase、Drill、Impala來滿足即時分析,
使用記憶體內的資料處理方式(In-memory Processing),
資料進來後先在記憶體內做運算,最後再將結果寫入硬碟。
若是非結構化資料,則要用Message Queue的處理方式,採用Storm、Kafka等技術。

Lambda架構則是新的混合式大資料處理架構,
運用Hadoop平臺同時處理串流即時訊息和大資料批次分析,
王耀聰解釋,資料蒐集後分別送往兩邊,
一邊寫到 Hadoop 平臺進行批次處理,另一邊寫到 Speed Layer,
採用Storm、Kafka等技術,進行即時分析。
除非特別註明,本頁內容採用以下授權方式: Creative Commons Attribution-ShareAlike 3.0 License