100億小數據實時計算平臺

2017年6月,開始數據分析的職業生涯,作爲架構師,建立起一套基於.Net/.Net Core的小數據實時處理計算平臺,這裏記錄學習過程中的點點滴滴!

數據分析的核心,可以理解爲:Select xxx From table Where yyy Group By zzz

小數據計算平臺的定位:

  1. 數據量在1000萬行到100億行之間,傳統關係型數據庫算起來吃力,且類似項目不是特別多,Hadoop搭起來難以收回成本
  2. 資源投入有限,基於傳統項目之上的輕量級數據分析,一般只能有1~2臺服務器,Hadoop最好能有8臺以上服務器
  3. 門檻低,普通軟件工程師容易上手做數據分析,並參與開發配套的業務系統,大數據開發工程師需要會很多(Hadoop、MapReduce、HDFS、Hive、HBase、Spark、Zookeeper、Sqoop)
  4. 實時內存計算,C#/Java/Go+Redis/MongoDB,輕鬆做到0.5~5分鐘實時處理,大多數大數據開發工程師只熟悉 Hadoop+Hive,擅長T+1離線計算,對實時計算Spark+HBASE熟悉的不多

題外:其實大家平時藉助消息隊列(Kafaka/RocketMQ)異步處理的統計,本身就屬於實時計算數據分析的一種!

該平臺的目標並非替代Hadoop,而是對中小型數據分析提供一種輕量級選擇。

實際上我們大部門就有完整的Hadoop大數據平臺,我們的許多模塊,都跟Hive、HBase、Kafka等有大量的數據交互

未來的日子裏,會根據後面的小數據平臺配套,把相關技術慢慢寫下來。

 

文章目錄:

新生命Redis組件(日均80億次調用)

藉助Redis做秒殺和限流的思考

大數據分析中Redis怎麼做到220萬ops

每天4億行SQLite訂單大數據測試(源碼)

 

小數據計算平臺配套:

  1. 關係型數據庫,數據來源以及計算結果存儲,推薦MySql,批量插入5000~50000tps
  2. Redis,原始數據源預熱,中間計算數據臨時存儲,結果數據緩衝隊列,選Linux/Windows多實例部署,單實例性能8w~10wops
  3. 計算節點,核心數據分析應用,從數據庫或Redis或微服務讀取原始數據和基礎數據,根據業務規則進行計算,統計結果直接落庫或藉助Redis異步落庫
  4. 調度系統,時間片調度算法,對數據進行切片處理,多實例多線程並行計算,錯誤或超時重試機制。計算節點上跑的分析應用依賴於調度系統
  5. 服務節點,頻繁且反覆讀取的小數據(1000萬~100億)預熱進入Redis,大量部署微服務,封裝各種數據訪問,10萬以下數據直接緩存到進程內存
  6. 微服務註冊中心,每個服務至少部署2個節點(可用性、負載均衡),大量服務需要管理起來,伸縮擴容
  7. 配置中心,數據分析應用和微服務的大量伸縮部署,需要有配置中心把數據庫配置等各種配置管理起來
  8. 監控中心,監控重要計算節點和服務節點,通過微信/短信/釘釘等工具報告緊急情況,或每天提供數據簡報

實際使用根據需要進行調整,如果數據分析項目不多,後面的輔助性配套可以不要。

 

關於博客,10多年來斷斷續續也寫了不少博文,我寫的博客有個特點,都是經過深思熟慮並且在網絡上很少能找到相關內容的知識點。

關於工作,公司財報提到2018年第二季度包裹量21.16億件,公司名和具體工作內容不方便討論,還請大家見諒和監督!

 

本文答疑:QQ羣1600800,2018-08-12 20:00:00

 

End.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章