實時數據處理
方案
Flume
Kafka 日志收集
Spark Streaming 實時處理
將數據寫入到kafka持久化存儲;Spark Streaming消費kafka數據,業務級別分析;將分析結果寫入HBase或者HDFS。
業界
《百度海量日志分析架構及處理》
對於互聯網企業來說,最有價值的數據,往往蘊藏在網站日志之中。
從日志中,我們不僅可以了解應用的使用量、活躍用戶數、服務質量,還可以了解到用戶的地域來源、使用偏好等許多關鍵信息,從而改善服務質量,更好地滿足用戶需求。
但在實踐中,隨着網站用戶規模增大和數據量的爆炸性增長,日志的管理、分析、挖掘變得越來越具有挑戰性。百度在實戰中積累了大量對海量日志數據處理的經驗,並演化出一套平台化、可定制、高性能、高吞吐、高可用的技術架構。本次演講將介紹百度日志處理平台LSP和海量數據處理語言DISQL的演化歷程與架構思路,以及百度在日志分析中積累的一些經驗。希望對大家有所啟發。
如何讓這些數據高效地運轉起來體現實用價值,而不僅僅是拿到很多數據存儲起來。
夯實基礎:其次要選擇一種或者幾種適合自己企業當前狀態的實時計算框架。實時分析並不等於實時計算,在分析過程中除了需要數據計算能力之外,還需要數據挖掘能力、實時采集能力。
《阿里雲日志服務》
日志收集與實施消費(LogHub:日志中樞通道)
打通日志與數據倉庫(LogShipper:日志投遞)
提供海量日志查詢與分析(LogSearch,日志檢索)
文章
《Spark Streaming 1.3對Kafka整合的提升詳解》http://dataunion.org/12102.html
《Spark Streaming 讀取 Kafka 數據的兩種方式》http://group.jobbole.com/15559/
《Spark streaming+kafka實戰教程》
http://qifuguang.me/2015/12/24/Spark-streaming-kafka%E5%AE%9E%E6%88%98%E6%95%99%E7%A8%8B/
Kafka + Spark Streaming
Spark Streaming提供與Kafka整合的內置支持。
Flume版本: apache-flume-1.5.0-cdh5.4.9 ,該版本已經較好地集成了對kafka的支持。
《Kafka + Spark Streaming構建實時數據處理系統》
https://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice2/
使用 Kafka 分布式消息框架和 Spark 的 Streaming 模塊構建一個實時數據處理系統。
股市走向分析, 氣象數據測控,網站用戶行為分析。
Kafka應用場景
流計算系統的數據源。
數據流分發給 Kafka 消息主題,流數據計算系統 (Storm/Spark Streaming) 實時消費並計算數據。
日志聚集:Kafka 可以作為日志收集系統的替代解決方案,將系統日志數據按類別匯集到不同的 Kafka 消息主題。
Spark Streaming應用場景
以高吞吐量,並且容錯的方式處理持續性的數據流。目前 Spark Streaming 支持的外部數據源有 Flume、 Kafka、Twitter、ZeroMQ、TCP Socket 等。
Flume是Cloudera提供的一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸的系統,Flume支持在日志系統中定制各類數據發送方,用於收集數據;同時,Flume提供對數據進行簡單處理,並寫到各種數據接受方(可定制)的能力。
Flume-ng最明顯的改動就是取消了集中管理配置的 Master 和 Zookeeper,變為一個純粹的傳輸工具。Flume-ng另一個主要的不同點是讀入數據和寫出數據現在由不同的工作線程處理(稱為 Runner)。
日志采集層:主要可以使用Flume, Kafka兩種技術。Cloudera 建議如果數據被多個系統消費的話,使用kafka;如果數據被設計給Hadoop使用,使用Flume。