大數據技術總結
大綱
概念,應用,難題,技術棧,思想
概念
大數據是以容量大、類型多、存儲速度快、應用價值高爲主要特徵的數據集合,正快速發展爲對數量巨大、來源分散、格式多樣的數據進行採集、存儲和關聯分析,從中發現新知識、創造新價值、提升新能力的新一代信息技術和服務業態。
應用
互聯網領域(推薦,廣告,搜索),電信(網絡管理,市場營銷),醫療(藥品研發,臨牀數據對比),金融(客戶畫像,風險管控)
難題
數據安全,計算速度,分析工具等。
數據收集層:分佈式,異構性,格式多樣化,流式產生。需有擴展性、可靠性、安全性、低延遲
數據存儲層:需有擴展性、容錯性、支持多種存儲模型等特點等特點
資源管理與服務協調層:需有資源利用率高、運維成本低、數據共享等特點
計算引擎層:需有系統吞吐量大和數據處理延遲低特點
數據分析層:算法能力強
數據可視化層:易於人理解
技術棧
大數據架構
LA(Lambda Architecture),分爲三層,批處理層、流式處理層和服務層。優勢:兼顧了數據可靠性和低延時。主要有Google爲主和Hadoop+Spark兩種主流生態技術棧。下圖是Hadoop+Spark主流技術棧
1. 數據收集
Sqoop/Canal
關係型數據收集和導入工具,是連接關係型數據庫的橋樑;Cannal可用於實現數據的增量導入
Flume
非關係型數據收集工具,主要是流式日誌數據
Kafka
分佈式消息隊列
2. 數據存儲
HDFS
hadoop分佈式文件系統
HBase
構建在HDFS之上的分佈式數據庫
Kudu
分佈式列式存儲數據庫
3. 分佈式協調與資源管理
Zookeeper
基於簡化的Paxos協議實現的服務系協調系統
Yarn
同一資源管理與調度系統
4. 數據計算
MapReduce
經典的Hadoop批處理計算引擎
Spark
通用DAG計算引擎,可以批處理和流處理
Impala/Presto
分別由Cloudera和Facebook開源的MPP系統,均是爲了克服Hive性能低下而提出來的SQL查詢引擎
Storm
分佈式流式實時計算引擎
Flink
開源流處理框架,阿里發展爲Blink,成爲主流
5. 數據分析
Hive
基於MapReduce/Tez實現的SQL引擎
Pig
基於MapReduce/Tez實現的工作流引擎
SparkSQL
基於Spark實現的SQL引擎
Mahout/MLLib
機器學習和數據挖掘算法,Mahout基於MapReduce,MLlib基於Spark
Apache Beam
基於各類計算框架而封裝的高級API,方便用戶構建複雜的數據流水線
MOLAP
是一種通過與計算cube方式加速查詢的OLAP引擎,核心思想是“空間換時間”,典型的有Druid和Kylin。
Hadoop發行版本
Apache Hadoop,CDH(Cloudera Distribute Hadoop),HDP(Hortonworks Data Platform)
大數據計算模式
技術指標
- 可擴展性(水平擴展,垂直擴展)
- 一致性(強一致性,弱一致性,最終一致性)
- 持久性(複製)
思想
分而治之,MapReduce分片並行處理;scale-up–>scale-out。
計算向數據移動,數據移動花銷大。
主從災備。
Paxos舉手投票保證數據一致性。