大数据架构及技术体系
下面是大數據體系架構圖
大數據分2個部分,一部分是走實時的,另外一部分是走離線的,不管那塊都需要數據來分析
從上圖來看,數據分為結構化數據(MYSQL,ORACLE等),半結構數據(文件日志),非結構化數據(視頻,PPT等)
我們一般需要分析的數據 就是結構化的數據和非結構化的數據,非結構化數據可以存HDFS系統。
很多專業的東西后面在開博客另講,先大概了解數據流走向。
1,數據收集系統。
? ? ?首先我們要坐的就是收集數據,像數據庫中的數據我們可以通過Sqoop(通過SHELL命令連接數據庫實現 MYSQL,HIVE(可以通過HQL將HDFS中的數據通過表形式呈現出來)和HDFS(分布式文件系統)間的通信)來收集,這種我們可以通過用azkaban(分布式工作流調度)來定時調度每天講MYSQL數據導入到HDFS和HIVE中,這部分數據方便我們坐離線計算。
? ? ?像一些商品查詢,用戶登陸等查詢操作,又或者是要計算實時交易等(直接操作數據庫會影響數據庫性能),這些東西就可以走日志收集這塊,可以在前端埋點和后端埋點,記錄日志,然后在通過flume收集,發送到KAFKa和HDFS(HIVE)中.這部分的數據可以走實時(flink消費kafka中的數據進行流式計算),可以走離線計算(一般第二天凌晨和mysql數據結合統計一些報表)
2,數據離線分離。
? ?數據離線分析,離線分析大概分4層,
? ? ? ODS:原始數據層(保持數據的最初),DWD:數據倉庫數據層(去除空值,臟數據,超過極限范圍的明細解析等)
? ? ? DWS:數據倉庫服務層:寬表-用戶行為,輕度聚合,對dwd層的數據在進行處理輕度匯總
? ? ? ADS:? ?做分析處理最后將同步到mysql數據庫里邊,給其他應用展示
? 大概流程和使用的技術。像每天,每周等報表,azkaban定時調度,通過HIVE腳本對每天的ODS數據進行離線分析處理
慢慢到DWD,DWS,ADS,最后同步到數據庫。
?3,數據實時計算。
? ?有些公司需要看一些實時數據,比如商品的訪問量,用戶登陸情況,實時交易額等。這些數據有些從數據庫中查詢不到(商品訪問,用戶登陸),有些數據庫有但是統計復制,慢(實時交易量,訂單數等),這些數據就可以走實時統計。
? ?像1說的,可以通過數據埋點,在這些需要計算的地方埋點(就是記錄日志,將需要的數據寫到日志),最后通過FLUME手機匯總,最后到kafka,flink通過消費KAFKA的數據來消費這些日志,通過FLINK的流式計算,中間也像離線一樣分ODS,DWD,ADS,最后講結果寫到數據庫,整個流程雖然不是毫秒級,但也是亞秒級別的。
上面就是整個大數據的流程和需要用的技術。
flume 日志收集傳輸框架 專門也來對接HDFS,也可以對接KAFKA等。
hadoop體系:? HDFS 分布式文件存儲系統 ,? ? YARN:基于hadoop的分布式資源調度,? ?MAPREDUCE:基于hadoop的分布式計算應用 (像HIVE就是基于YARM向執行一個一個的MAPREDUCE)?
kafka? 消息隊列,高吞吐,穩定,緩存數據的
zookeeper 保證大數據中的一些框架的高可用
sqoop:主要用于在Hadoop(Hive)與傳統的數據庫(mysql、postgresql...)間進行數據的傳遞
azkaban:工作流調度系統,可以按定義的邏輯一步一步先后執行腳本和JAVA程序(包括sh,java)
hive:是基于Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張表,并提供類SQL查詢功能,其實就是通過mapreduce來操作數據。
flink:是一個框架和分布式處理引擎,用于對無界和有界數據流進行有狀態計算,通過流式計算。(暫時沒跑通)
?
總結
以上是生活随笔為你收集整理的大数据架构及技术体系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工资软件测试白盒测试报告,白盒测试测试报
- 下一篇: 【UnityEditor】制作一个uni