離線項目下的Hadoop生態棧
Hadoop生態離線項目
Hadoop:(無論什麼大數據項目Hadoop是少不了的)
HDFS MapReduce(主要是做清洗) YARN (大數據項目基本都是跑在yarn資源框架上)
Hadoop集羣
Hive:(主要是做計算)
外部表 (會使用)
SQL (會使用)
數據傾斜 (會遇到的問題)
優化
基於元數據管理 (需要拿到元數據管理)
SQL ==> MapReduce (hive不僅僅是寫sql,重要的是給一個sql語句如何分析生成的stage)
Flume
調度:(作業的調度)
crontab、shell
Azkaban
HUE:可視化的notebook CM
主要用於排查數據(相對於命令行形式來講非常方便)
項目:通用
集羣規模==>每臺機器的配置==>機型 (CDH博客介紹裏會有詳細講解)
離線處理架構
domain traffic
1、集羣內的可以用flume,beat,logstash等等採集工具
2、集羣外的數據可以通過sqoop或者spark等一些平臺或者框架來導入(如果從sql來解決就是平臺型的,如果從代碼來解決就是業務型的)這裏都是平臺型來解決。
3、大部分公司都是以天級別來分log文件的;支持各種文本格式。
4、清洗過後的數據一般都是落在hive之上;ETL(mapreduce)出來之後是一個分區表
5、步驟是:數據清洗=》移動數據到數倉=》刷元數據信息 最後用hue等工具展示數據
流程簡述:【重心爲2,3,4】 {mapreduce chain是mapreduce鏈,一個作業緊接一個作業}(圖中邏輯只需要map即可)
1、數據採集,外部數據和內部數據(對於sqoop能做的就是字段的選擇和行的過濾實際也就是select和while【也就是隻有map】)【sqoop的map是固定的4個,這個要做適當的調整】
2、做一個etl操作【一端到遠端去讀;把數據讀過來後寫入hdfs;圖中紅字部分就是etl】
3、把原始數據移到target(外部表的位置)【開發來講就是到此爲止】
4、業務統計:SQL(根據業務來定)不同維度不同的表
5、webui展示