閱讀373 返回首頁    go 阿裏雲 go 技術社區[雲棲]


蔣步星:輕量級大數據計算引擎

bac028b1ba618344ec9d8ca4624fadb44c09bb69

並不是任何事物都需要沉重的大數據平台,許多還是需要輕量級計算。

輕量級計算需求

  • 大數據的技術本質是高性能

  • 不總是有那麼大的數據量

  • 不總是適合部署大數據平台

  • 大數據平台 不總是可以擴容硬件(內存) 

大數據開發難度大

  • 大數據平台對SQL查詢關注過多

  • 大量過程計算的開發難度還很大

  • 提高性能本質上是降低開發難度 

舉例:漏鬥轉換器

0079e9a222de99de2c2662a5c4f2ab93ced290dc

集群透明化

  • 大數據平台努力實現集群透明化 

  • 透明化難以獲得最優性能 

  透明化隻能選擇最保險的方法,一般是性能較差的那     個,透明化框架對資源消耗嚴重

透明化與高性能的權衡

  • 數據分布 

  • 任務分配 

  程序員分配:根據節點能力安排任務,無框架資源消     耗,係統自動分配

輕量級計算的技術特征

  • 目標:過程計算
  • 可集成性
  • 數據源開放性

  • 注重單機優化

  • 權衡集群透明與高性能

集算器 — 技術特征

  • 麵向過程計算 
  • 無縫應用集成 
  • 多樣性數據源接口  直接文件計算 
  • 單機優化技術 多線程並行 
  • 無中心集群結構  自由數據分布和任務分配

集算器 — 敏捷語法體係

某支股票的漲幅交易日

53d9f39c1b6dd7b2562970a405ff7baf6121068c

數據模型不限製高效算法實現

f13913c9abe9cc340172b389dcb846d80dd99f17

集算器 — 麵向過程計算

7da86c8dbaa08fec560f0a6759e09db387929037

集算器 — 開發環境

8af337f753c9c61aa012558b9443a8e41f5a843c

集算器 — 應用結構

d3e18dfec02d5447a5d5f208d914956ab30180e7

輕量級計算的技術特征

  • 高效二進製壓縮文件、列式存儲
  • RDB:Oracle,DB2,MS SQL,MySQL,PG,…. TXT/CSV,JSON/XML,EXCEL 
  • Hadoop:HDFS,HIVE,HBASE 
  • MongoDB,REDIS,… 
  • HTTP、ALI-OTS … … 
  • 內置接口,即裝即用

單機計算技術 

e2f9e55a76f0844d63a25c31184ddd0e5d79419d

3ea1dc531f66756c887652e34c00653761068f25

b3a8d683bc7f03a5d5a6062e738a99ebded61241

10dd2d8b789d423bf90078771269667515f09acc

c984edfdd568ecfdcb144b84646783306a2fdddf

9fa1e66db6cf29a47f4fcb356cd43df130a0403a

29b20db1e9483ec11bc284bacd309adbeec718bc

2、連接解決

7d578f5b985c7c2a2387a21abb43df4e6e3eb4ca

區分JOIN

76b5b432587ea154a8d3744882f24cc45bb43eb7

外鍵指針化

e081a2b0b03f9de12926082c0354528e4df3a1fa

外鍵序號化

a5d09ab68cf42938ba7ba03171ea6ece4e671244

1c611cee08ec21ca9ce1977ba016c4114d2426c7

3、存儲格式

927ed0428300e1f7eb9136745b08cb53e7478019

1568540108c6e7ffae63cc555ed4f591fd47d082

序號主鍵

多層序號式主鍵 

外存指針式外鍵,高速引用 

外存遊離記錄表示,離散性 

天然有序,易於查找

分組針對外鍵 

結果自然對齊有序


233dc9ea3ab3954e257d2dab2311520b63ffe29e

多層複式表

層次式有序集合 每層均可以有數據結構 同維表與主子表統一 消除對齊式連接

a3a7b731b0a34b503b49f3e1691be21cf4f31f1c

4、使用索引


ad9296120558a56931c73d6ab0782c926be450e3

文本分段

7ffe5a81d6e00c1010a4e2a853e47c180ad27303

倍增分段

分段數足夠大,以適應變化的並行數

每段記錄數相對平均

數據追加時不必重寫所有數據,保持連續性

3cdd0c8e35d8a619137632652e2936f7364449bf
73bd84e92453c9fde7d30a092c9324e03ece34b6

列存分段

倍增分段方案解決列存並行困難 各列同步分段 

同列連續存儲



381147e9b0610cb3cece6d1552f994a23665828e

9099849601288e3228e32183a07cb1315d2ec372


有序與對位分段

504beae32201d6d7d3cfba6a306bbe72121a460f

9e1d0868e2f3f48cb53e2b94807e454d97c36a93

a11542e699596939e4966f1418adf639b9a105ca

集群方案

  • 集群設計原則 

確保容錯 

減少網絡傳輸量 

考慮負載均衡

  • 集群計算技術

e2369701add11a4b1c2ebe1831d329b19c7d4a46

集群方案 — 無中心設計

  • 服務器集群無中心

  • 無中心不會發生單點失效

  • 計算任務有主控節點

集群方案 — 負載均衡與容錯

  • 具備負載均衡能力 

  • 具備容錯能力 

集群方案 — 並行邏輯結構

9d47166cfcecd494b77a30db71978da46e4422d3
共享式數據計算分布
36645d895fbce90bb10e020d98fe2948dc9ee842

d7af3172a6bfa78c6047a05ae9ecf0f610f5eaee
冗餘式外存分布

023569f6ed49221bb402b87e961b6ef326cf4109
外存分布 — 數據同步

677fc0d7ddef3b552e21d9a60913113ef07370db
外存分布 — 動態任務分配
f5fb08740f0e760b540bb4d6cb77b52c8084508b

備胎式內存分布

4c54d4e9940820aa9115f6d14ef6a02f4a40fce4

內存分布 — 靜態任務分配

33d133975963e5963a002b01c6e2c393436fc792
集群維表

79b3abf91efc311db30dd67179ecc64f954ed9cf

集群維表 — 示例
79b3579a61cc564410afe387a86fa5429f960175
MapReduce->ForkReduce

集群應用 — 異構數據

集算器可以基於同構或異構數據庫集群進行結果匯總,為報表輸出匯總後的結果集。

00e999b2d3c3fc27892db373b92935d97dd603bd

集群應用 — 異構數據庫集群(聯合查詢)

集算器與報表V5合作提供DQL語言,可基於異構數據庫集群進行聯合查詢,結果匯總後為上層應用提供數據輸出服務。

125e75f12572c130e45ffe84106771f4a5b30a24
集群應用 — 協助HADOOP工作

集算器是輕量級、高性能、分布式的計算引擎,解決HADOOP上SQL能力弱、開發難、運算慢的問題,可以極大地縮減大數據平台的搭建周期和實施成本。

60c9c1c9854201ad28e9f3d1f0c828b3d4deac55
集群應用 — 獨立工作

集算器作為獨立的大數據計算引擎,可自己管理數據,不需要網絡文件係統,通過標準的接口為上層應

769bfe2dba09b187304986f73f0014e0b8ef56c4

本文來自雲棲社區合作夥伴“中生代技術”,了解相關信息可以關注“中生代技術

最後更新:2017-11-15 10:34:31

  上一篇:go  怎樣配置MySQL數據庫超時設置?
  下一篇:go  分布式服務框架Dubbo瘋狂更新!阿裏開源要搞大事情?