摘要:摘要第九屆中國數(shù)據(jù)庫技術(shù)大會,阿里巴巴技術(shù)專家孟慶義對阿里的數(shù)據(jù)管道設(shè)施實踐與演進進行了講解。它必須在把風(fēng)險做完,風(fēng)控是根據(jù)長期的歷史信息近期歷史的信息和實時的信息三個方向做綜合考量。
摘要:第九屆中國數(shù)據(jù)庫技術(shù)大會,阿里巴巴技術(shù)專家孟慶義對阿里HBase的數(shù)據(jù)管道設(shè)施實踐與演進進行了講解。主要從數(shù)據(jù)導(dǎo)入場景、 HBase Bulkload功能、HImporter系統(tǒng)、數(shù)據(jù)導(dǎo)出場景、HExporter系統(tǒng)這些部分進行了講述。
直播視頻請點擊
PPT下載請點擊
精彩視頻整理:
數(shù)據(jù)導(dǎo)入場景
生意參謀
生意參謀是一種為商家服務(wù),幫助商家進行決策和運營的數(shù)據(jù)產(chǎn)品。如在淘寶或天貓上開一家店,生意參謀會提供店里每天進入的流量、轉(zhuǎn)化率、客戶的畫像和同行業(yè)進行對比這些數(shù)據(jù)屬于什么位置。商家可以根據(jù)流量分析、活動分析和行業(yè)分析去進行決策。可以根據(jù)平時日志、點擊量和訪問量,數(shù)據(jù)庫把數(shù)據(jù)通過實時的流處理寫入HBase。有一部分寫到離線系統(tǒng)里,定期做一些清洗和計算再寫入HBase,然后供業(yè)務(wù)去查詢 HBase。
螞蟻風(fēng)控
在螞蟻上任何一筆交易支付都會調(diào)用風(fēng)控,風(fēng)控主要是去看這次交易是否屬于同一個設(shè)備,是否是經(jīng)常交易的地點,以及交易的店鋪信息。它必須在100ms—200ms把風(fēng)險做完,風(fēng)控是根據(jù)長期的歷史信息、近期歷史的信息和實時的信息三個方向做綜合考量。用戶的輸入會實時的寫入HBase,同時這個實時的信息增量也會導(dǎo)入到離線系統(tǒng)里面,離線系統(tǒng)會定期的對數(shù)據(jù)進行計算,計算的數(shù)據(jù)結(jié)果會作為歷史或近期歷史再寫回HBase,一個支付可能會調(diào)百十次的風(fēng)控,而且需要在百毫秒內(nèi)進行返回。
數(shù)據(jù)導(dǎo)入需要解決的問題
2013年剛剛開始做數(shù)據(jù)導(dǎo)入的時候面臨的更多的是功能需求性的問題,現(xiàn)在需要考慮的是導(dǎo)入的周期性調(diào)度、異構(gòu)數(shù)據(jù)源多、導(dǎo)入效率高和多集群下的數(shù)據(jù)一致性的問題。前兩個問題更適合由平臺化去解決,HBase的數(shù)據(jù)導(dǎo)入更關(guān)注的是導(dǎo)入效率和多集群下的數(shù)據(jù)的一致性。
什么是Bulkload?Bulkload有什么功能?
Bulkload使用的是一種新的結(jié)構(gòu)LSM Tree進行寫入更新,其結(jié)構(gòu)如上圖所示。使用Application code 進行數(shù)據(jù)寫入,數(shù)據(jù)會被寫入到MemStore,MemStore在HBase里是一個跳表,可以把它看成一個有序的列表,并不斷往里面插入數(shù)據(jù)。當(dāng)數(shù)據(jù)達(dá)到一定量時就會啟動flush對數(shù)據(jù)進行編碼和壓縮,并寫成HFile。HFile是由索引塊和數(shù)據(jù)塊組成的文件結(jié)構(gòu),其特點是只讀性,生成HFile之后就不可改了。當(dāng)用戶進行讀取數(shù)據(jù)的時候,就會從三個HFile和一個MemStore進行查找進行讀取。這個結(jié)構(gòu)的優(yōu)化就是就把隨機的寫變成了有序的寫。Bulkload就可以把上千上萬條數(shù)據(jù)在毫秒內(nèi)加入到HBase里。所以Bulkload的優(yōu)勢如下:
高吞吐
不需要WAL
避免small compaction
支持離線構(gòu)建
Bulkload的導(dǎo)入結(jié)構(gòu)如上圖所示,數(shù)據(jù)來源于數(shù)倉,首先根據(jù)HBase的分區(qū)規(guī)則對數(shù)據(jù)進行分區(qū)和排序。然后會生成Partition Data,需要寫一個HBase插進去。同步中心就會調(diào)動一個作業(yè),作業(yè)內(nèi)部會有很多的tasks,每個task獨立的執(zhí)行把文件讀出,寫到HDFS上,形成一個HFile文件。當(dāng)把所有文件寫完,同步中心就會調(diào)Bulkload指令到HBase,把所有的HFile一次性的load進去。
以前采用的是多集群導(dǎo)入的方法,但是多集群導(dǎo)入有很多缺點如下:
很難保證多個任務(wù)同時完成,導(dǎo)致一定時間窗口內(nèi)數(shù)據(jù)不一致
調(diào)度后的運行環(huán)境不一致
網(wǎng)絡(luò)延遲不一致
失敗重試
集群部署對業(yè)務(wù)不透明的缺點:
需要配置多個任務(wù)
集群遷移需要重新配置任務(wù)
為了保證數(shù)據(jù)的一致性,采用了邏輯集群導(dǎo)入法。
邏輯集群的流程如上圖所示,首先進行分區(qū)合并,然后進行雙數(shù)據(jù)流處理,把流分別寫到Active和Backup里,當(dāng)Active和Backup的HFile文件寫完后執(zhí)行Bulkload。因為Bulkload是毫秒級別的,所以能實現(xiàn)一致性。
多任務(wù)和邏輯集群的差別比較如下:
多任務(wù)模式:需要重復(fù)配置,是不透明的,很難保證一致性,分區(qū)排序
需要執(zhí)行兩次,編碼壓縮兩次。
邏輯集群模式:配置一次,遷移無感知,在一致性上達(dá)到毫秒級,分區(qū)排序是執(zhí)行一次,但分區(qū)數(shù)量變多,編碼壓縮一次。
隨著業(yè)務(wù)做得越來越大,這種導(dǎo)入就會遇到新的線上問題,如擴展性、資源利用率、研發(fā)效率、監(jiān)控等。
什么是HImporter系統(tǒng)?
HImporter是用于輔助數(shù)據(jù)同步的中間層,他會把所有HFile的構(gòu)建,加載邏輯下沉到HImporter層。
HImporter所處的位置如上圖所示。
HImporter的優(yōu)勢
分布式水平擴展,同一個作業(yè)的不同任務(wù)可以調(diào)度到HImporter的不同worker節(jié)點
提高資源利用率,將壓縮等CPU密集操作下降到HImporter
快速迭代,HImporter的運維和迭代與同步中心獨立
獨立監(jiān)控,HImporter可按照自己的需求實現(xiàn)監(jiān)控
HImporter 功能迭代
功能迭代主要包括表屬性感知、保證本地化率、支持輕量計算和安全隔離。其中表屬性感知就是感知特性,并保證特征不會變,主要包括、混合存儲、新壓縮編碼、表級別副本數(shù);保證本地化率是將Hfile寫入到分區(qū)所在服務(wù)器,保證本地化率和存儲特性,對一些rt敏感的業(yè)務(wù)效果明顯;支持輕量計算就是支持MD5,字符串拼接等函數(shù);安全隔離是避免對外暴露HDFS地址、支持Task級別重試。
數(shù)據(jù)導(dǎo)出場景
菜鳥聯(lián)盟
菜鳥聯(lián)盟的場景如上圖所示。一個物流詳情會傳到HBase,HBase會傳到數(shù)據(jù)倉庫,數(shù)據(jù)倉會產(chǎn)生報表,然后去訓(xùn)練路由算法。
淘寶客服
淘寶客服的一個退款應(yīng)用場景如上圖。這是一個逆向鏈接,把退款、糾紛、退款物流、退款費用等實時的寫入到HBase里,HBase會實時的寫入queue里,blink流系統(tǒng)會消費queue產(chǎn)生一些數(shù)據(jù)會返回到HBase,blink輸出會支撐智能服務(wù)、客戶監(jiān)控等。
增量數(shù)據(jù)導(dǎo)出需要解決的問題
增量數(shù)據(jù)導(dǎo)出需要解決的問題主要是離線數(shù)據(jù)的T+1處理特點、吞吐量 、實時性、主備流量切換等。
早期的方案是會周期性的從HDFS里把所有的日志羅列出來,然后對日志進行排序會產(chǎn)生一個有序的時間流。取work里同步時間最短的作為最終的同步時間。這種方案具有對NN節(jié)點造成很大壓力、無法應(yīng)對主備切換、日志熱點處理能力低等問題。
HExporter系統(tǒng)
HExporter1.0如上圖所示,HExporter1.0優(yōu)勢主要有主備流量切換不影響數(shù)據(jù)導(dǎo)出,能夠識別數(shù)據(jù)來源,過濾非原始數(shù)據(jù);獨立的同步時間流,能夠保障數(shù)據(jù)按有序時間分區(qū)Dump到數(shù)據(jù)倉庫;復(fù)用HBase replication框架,能夠降低開發(fā)工作量,復(fù)用HBase的監(jiān)控,運維體系。
HExporter1.0 優(yōu)化主要包括以下五點:
減少拓?fù)渚W(wǎng)絡(luò)中的數(shù)據(jù)發(fā)送,備庫避免向Exporter發(fā)送重復(fù)數(shù)據(jù);
遠(yuǎn)程輔助消化器,空閑的機器幫助消化熱點;
避免發(fā)送小包,HExporter在接收到小包后,等待一段時間再處理;
同步通道配置隔離,實時消費鏈路和離線消費鏈路可以采用不同的配置;
數(shù)據(jù)發(fā)送前壓縮。
HExporter1.0的問題是業(yè)務(wù)寫入流量產(chǎn)生高峰,離線出現(xiàn)同步延遲;HBase升級速度慢。然后我們就有了以下解決思路,離線同步的資源可以和在線資源隔離,利用離線大池子可以削峰填谷;Exporter的worker是無狀態(tài)的,如果把所有邏輯都放在Exporter,那么升級、擴容會簡單快速。然后就產(chǎn)生了HExporter2.0。
HExporter2.0如上圖所示
總結(jié)
ALiHBase數(shù)據(jù)通道的導(dǎo)入和導(dǎo)出都是添加了中間層,中間層的核心價值易擴展、可靠性高、迭代快和穩(wěn)定。因為采用分布式水平擴展更易擴展;采用自主識別主備切換,封裝對HBase訪問更可靠;采用架構(gòu)解耦,快速迭代使迭代速度更快;因為無狀態(tài),節(jié)點對等所以更加穩(wěn)定。
原文鏈接
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/17755.html
摘要:摘要第九屆中國數(shù)據(jù)庫技術(shù)大會,阿里云高級技術(shù)專家架構(gòu)師封神曹龍帶來題為大數(shù)據(jù)時代數(shù)據(jù)庫云架構(gòu)生態(tài)實踐的演講。主要內(nèi)容有三個方面首先介紹了業(yè)務(wù)挑戰(zhàn)帶來的架構(gòu)演進,其次分析了及生態(tài),最后分享了大數(shù)據(jù)數(shù)據(jù)庫的實際案例。數(shù)據(jù)備份及恢復(fù)。 摘要: 2018第九屆中國數(shù)據(jù)庫技術(shù)大會,阿里云高級技術(shù)專家、架構(gòu)師封神(曹龍)帶來題為大數(shù)據(jù)時代數(shù)據(jù)庫-云HBase架構(gòu)&生態(tài)&實踐的演講。主要內(nèi)容有三個方...
閱讀 848·2019-08-30 15:55
閱讀 1420·2019-08-30 13:55
閱讀 1999·2019-08-29 17:13
閱讀 2852·2019-08-29 15:42
閱讀 1342·2019-08-26 14:04
閱讀 1030·2019-08-26 13:31
閱讀 3281·2019-08-26 11:34
閱讀 842·2019-08-23 18:25