主要包括如下部分內(nèi)容:
- 大數(shù)據(jù)在線分析處理和常用工具
- 大數(shù)據(jù)離線處理和常用工具
數(shù)據(jù)流
數(shù)據(jù)的收集-->數(shù)據(jù)的傳輸-->數(shù)據(jù)的處理--->數(shù)據(jù)的處理
大數(shù)據(jù)在線分析處理
- 大數(shù)據(jù)在線分析處理的特點
- 數(shù)據(jù)源源不斷的到來
- 數(shù)據(jù)需要盡快的得到處理挂谍,不產(chǎn)生積壓不產(chǎn)生數(shù)據(jù)丟失
- 數(shù)據(jù)量巨大
- 處理的結(jié)果盡快展現(xiàn)
以上四個特點可以總結(jié)為:數(shù)據(jù)的收集-->數(shù)據(jù)的傳輸--->數(shù)據(jù)的處理--->數(shù)據(jù)存儲&&展現(xiàn)栈戳。
其中數(shù)據(jù)的處理一般設(shè)計數(shù)據(jù)的聚合材泄,數(shù)據(jù)處理和展現(xiàn)都是秒級或毫秒級
針對這些問題目前形成了Flume+kafka+stom/Spark+habse/redis的技術(shù)架構(gòu)解決方案。
- Flume:專注于大數(shù)據(jù)的收集和傳輸寓盗。
- Flume的特點:支持多種數(shù)據(jù)源并且輸出到多種數(shù)據(jù)源,支持多種數(shù)據(jù)格式
- 可以多個Agent相連構(gòu)成Agent鏈
- Flume源源不斷的收集日志
- 參考文檔:使用 Flume 部署和管理可擴展的 Web 服務(wù)
![Flume架構(gòu)](https://www.ibm.com/developerworks/cn/data/library/bd-flumews/fig01.png)
Flume架構(gòu)
- Spark和Stom:數(shù)據(jù)處理
- Hbase:數(shù)據(jù)存儲
- Hbase專注于大數(shù)據(jù)的存儲和提供查詢
- CAP理論中豆拨,Hbase選擇了滿足一致性和分區(qū)容忍性张症,擁有強大的記錄集一致性
- Hbase不支持直接SQL,需要使用者部署第三方服務(wù)來支持SQL,如:Apache Phoenix
大數(shù)據(jù)離線分析和常用工具
- 大數(shù)據(jù)離線處理特點
- 數(shù)據(jù)量巨大且保存時間長
- 在大量數(shù)據(jù)上進行復(fù)雜的批量運算
- 數(shù)據(jù)在計算之前已經(jīng)完全到位讶请,不會發(fā)生變化
- 能夠方便的查詢批量計算的結(jié)果
技術(shù)架構(gòu):使用HDFS存儲數(shù)據(jù)祷嘶,使用MapReduce進行批量計算,計算完成的數(shù)據(jù)夺溢,如果需要數(shù)據(jù)倉庫存儲论巍,直接存入Hive,然后在Hive進行展現(xiàn)企垦。
-
HDFS介紹
- 分布式文件系統(tǒng)环壤,支持多備份
- 不支持隨機讀寫晒来,支持追加
-
MapReduce介紹
- MapReduce是一種分布式批量計算框架钞诡,分為Map階段和Reduce階段
- MapReduce經(jīng)歷了從第一代MapReduce V1到第二代MapReduce YARN,增加了Yarn框架進行資源管理和任務(wù)調(diào)度湃崩。
- Hadoop V1到Hadoop V2
-
Hive介紹
- Hive是一種以SQL風格進行任何大小數(shù)據(jù)分析的工具荧降,其特點是采取類似關(guān)系數(shù)據(jù)庫的SQL命令。其特點是通過SQL處理Hadoop的大數(shù)據(jù)攒读,數(shù)據(jù)規(guī)亩浣耄可以伸縮擴展到100PB+,數(shù)據(jù)形式可以是結(jié)構(gòu)或非結(jié)構(gòu)數(shù)據(jù)薄扁。
- Hive是一種數(shù)據(jù)倉庫剪返,而Hbase是一種分布式的數(shù)據(jù)庫
- Hive組織數(shù)據(jù)包含四種層次:DataBase --> Table --> Partition --> Bucket,對應(yīng)在HDFS上都是文件夾形式
- HQL最終轉(zhuǎn)換為MapReduce執(zhí)行
Hive架構(gòu)圖1
Hive架構(gòu)圖2
參考資料