
前兩期小幫為大家介紹了仁人幫的大資料定義與大資料在仁人幫背景的應用。今天也不跟大家賣關子了,接下來,小幫為大家奉上的是大資料平台技術的探索。
大資料技術,小幫認為可以分成兩個大的層面,大資料平台技術與大資料應用技術。要使用大資料,你先必須有計算能力,大資料平台技術包括了資料的采集,存儲,流轉,加工所需要的底層技術,如hadoop生态圈,數加生态圈。
資料的應用技術是指對資料進行加工,把資料轉化成商業價值的技術,如算法,以及由算法衍生出來的模型,引擎,接口,産品等等。這些資料加工的底層平台,包括平台層的工具,以及平台上運作的算法,也可以沉澱到一個大資料的生态市場中,避免重複的研發,大大的提高大資料的處理效率。
大資料首先需要有資料,資料首先要解決采集與存儲的問題,資料采集與存儲技術,随着資料量的爆發與大資料業務的飛速發展,也是在不停的進化過程中。
在大資料的早期,或者很多企業的發展初期,是隻有關系型資料庫用來存儲核心業務資料,就算資料倉庫,也是集中型OLAP關系型資料庫。比如很多企業,包括淘寶早期,就用Oracle作為資料倉庫來存儲資料,當時建立了亞洲最大的Oracle RAC作為資料倉庫,按當時的規模來說,可以處理10T以下的資料規模 。
一旦出現獨立的資料倉庫,就會涉及到ETL,如資料的抽取,資料清洗,資料校驗,資料導入甚至資料安全脫敏。如果資料來源僅僅是業務資料庫,ETL還不會很複雜。如果資料的來源是多方的,比如日志資料,APP資料,爬蟲資料,購買的資料,整合的資料等等,ETL就會變得很複雜,資料清洗與校驗的任務就會變得很重要。
這時的ETL必須配合資料标準來實施,如果沒有資料标準的ETL,可能會導緻資料倉庫中的資料都是不準确的,錯誤的大資料就會導緻上層資料應用,資料産品的結果都是錯誤的。錯誤的大資料結論,還不如沒有大資料。由此可見,資料标準與ETL中的資料清洗,資料校驗是非常的重要。
最後,随着資料的來源變多,資料的使用者變多,整個大資料流轉就變成了一個非常複雜的網狀拓撲結構,每個人都在導入資料,清洗資料,同時每個人也都在使用資料,但是,誰都不相信對方導入,清洗的資料,就會導緻重複資料越來越多,資料任務也越來越多,任務的關系越來越複雜。要解決這樣的問題,必須引入資料管理,也就是針對大資料的管理。比如中繼資料标準,公共資料服務層(可信資料層),資料使用資訊披露等等。
随着資料量的繼續增長,集中式的關系型OLAP數倉已經不能解決企業的問題,這個時候出現了基于MPP的專業級的資料倉庫處理軟體 ,如GreenPlum。greenplum采用了MPP方式處理資料,可以處理的資料更多,更快,但是本質上還是資料庫的技術。Greenplum支援100台機器規模左右,可以處理PB級别資料量。Greenplum産品是基于流行的PostgreSQL之上開發,幾乎所有的PostgreSQL用戶端工具及PostgreSQL應用都能運作在Greenplum平台上,在Internet上有着豐富的PostgreSQL資源供使用者參考。
随着資料量的繼續增加,比如阿裡每天需要處理100PB以上資料,每天有100萬以上的大資料任務。以上的解決方案發現都沒有辦法來解決了,這個時候,就出現了一些更大的基于M/R分布式的解決方案,如大資料技術生态體系中的Hadoop,Spark和Storm。他們是目前最重要的三大分布式計算系統,Hadoop常用于離線的複雜的大資料處理,Spark常用于離線的快速的大資料處理,而Storm常用于線上的實時的大資料處理。以及阿裡雲推出的數加,它也包括了大資料計算服務MaxCompute(前ODPS),關系型資料庫ADS(類似Impala),以及基于Java的Storm系統JStorm(前Galaxy)。
我們看看大資料技術生态中的不同解決方案,也對比看看阿裡雲數加的解決方案,最後我也會單獨介紹數加。
1、大資料生态技術體系
Hadoop是一個由Apache基金會所開發的分布式系統基礎架構。Hadoop的架構最核心的設計就是:HDFS和MapReduce。HDFS為海量的資料提供了存儲,則MapReduce為海量的資料提供了計算。Hadoop作為一個基礎架構,上面也可以承載很多其它東西,比如Hive,不想用程式語言開發MapReduce的人,熟悉SQL的人可以使用Hive開離線的進行資料處理與分析工作。比如HBase,作為面向列的資料庫運作在HDFS之上,HDFS缺乏随即讀寫操作,HBase正是為此而出現,HBase是一個分布式的、面向列的開源資料庫。
Spark也是Apache基金會的開源項目,它由加州大學伯克利分校的實驗室開發,是另外一種重要的分布式計算系統。Spark與Hadoop最大的不同點在于,Hadoop使用硬碟來存儲資料,而Spark使用記憶體來存儲資料,是以Spark可以提供超過Hadoop100倍的運算速度。Spark可以通過YARN(另一種資源協調者)在Hadoop叢集中運作,但是現在的Spark也在往生态走,希望能夠上下遊通吃,一套技術棧解決大家多種需求。比如Spark Shark,是為了VS hadoop Hive,Spark Streaming是為了VS Storm。
Storm是Twitter主推的分布式計算系統,它由BackType團隊開發,是Apache基金會的孵化項目。它在Hadoop的基礎上提供了實時運算的特性,可以實時的處理大資料流。不同于Hadoop和Spark,Storm不進行資料的收集和存儲工作,它直接通過網絡實時的接受資料并且實時的處理資料,然後直接通過網絡實時的傳回結果。Storm擅長處理實時流式。比如日志,比如網站購物的點選流,是源源不斷、按順序的、沒有終結的,是以通過Kafka等消息隊列來了資料後,Storm就一邊開始工作。Storm自己不收集資料也不存儲資料,随來随處理随輸出結果。
其上的子產品隻是大規模分布式計算底層的通用架構,通常也用計算引擎來描述他們。
除了計算引擎,想要做資料的加工應用,我們還需要一些平台工具,如開發IDE,作業排程系統,資料同步工具,BI子產品,資料管理,監控報警等等,他們與計算引擎一起,構成大資料的基礎平台。
在這個平台上,我們就可以基于資料做大資料的加工應用,開發資料應用産品了。
比如一個餐廳,為了做中餐,西餐,日料,西班牙菜,它必須食材(資料),配合不同的廚具(大資料底層計算引擎),加上不同的佐料(加工工具)才能做出做出不同類型的菜系;但是為了接待大批量的客人,他必須配備更大的廚房空間,更強的廚具,更多的廚師(分布式);做的菜到底好吃不好吃,這又得看廚師的水準(大資料加工,應用能力)。
2、阿裡大資料體系
我們先看一下阿裡的計算引擎三件套。
分析型資料庫服務ADS(AnalyticDB) ,是一套RT-OLAP(Realtime OLAP,實時 OLAP)系統。在資料存儲模型上,采用自由靈活的關系模型存儲,可以使用 SQL進行自由靈活的計算分析,無需預先模組化;而利用分布式計算技術,ADS可以在處理百億條甚至更多量級的資料上達到甚至超越MOLAP類系統的處理性能,真正實作百億資料毫秒級計算。ADS是采用搜尋+資料庫技術的資料高度預分布類MPP架構,初始成本相對比較高,但是查詢速度極快,高并發。而類似的産品Impala,采用Dremel資料結構的低預分布MPP架構,初始化成本相對比較低,并發與響應速度也相當慢一些。
流計算産品(前Galaxy),可以針對大規模流動資料在不斷變化運動過程中實時的進行分析 ,是阿裡巴巴開源的基于Storm采用Java重寫的一套分布式實時流計算架構,也叫JStorm,對比産品是Storm或者是Spark Streaming。最近阿裡雲會開始公測stream sql,通過sql 的方式來實作實時的流式計算,降低了使用流式計算技術的使用門檻。
說了這麼多,可能大家會覺得無聊。這和咱們仁人幫有什麼關系呢。全部都是一些專業化的術語,不了解大資料的人跟看天書一樣。
其實,仁人幫未來的走向必将以學習阿裡在商業中使用大資料的方式作為參考标準。
資料存儲隻是一個部分。就在2017年9月29日,仁人幫注冊使用者已經達到10萬級。從10萬到100萬使用者,時間會非常短,估計會在半年左右内完成。如何保證背景資料的穩定性成為仁人幫必須要面對或者功課的難題。從使用者釋出的資料,到使用者行為資料,到日志資料,等等對于我們來說都是一筆寶貴的财富。不會使用大資料分析的企業,無異于“坐在金山啃饅頭”。那麼使用何種資料引擎成了我們技術部最關心的話題。剛開始創業團隊規模小、資金少,且時刻會面臨使用者爆炸式增長的情況,是以初期架構設計非常重要。仁人幫APP架構就是依賴于阿裡雲搭建而成,從開始的一台雲伺服器擴充到現在的接近10台伺服器的規模。首先系統做到叢集化設計,無單點,且支援縱橫擴容。同時系統可子產品化拆分,資料存儲應做到持久化存儲。
通過負載均衡的解決方案,我們使用移動域名解析解決方案,移動加速解決方案,移動安全解決方案。通過URL分發路由的方式,實作尋找最優解析路徑的方式,通過一級二級緩存加快流速。通過資料庫叢集設計,增加處理資料的效率。此外,我們還打算基于阿裡雲搭建了BI系統。最後,為了緩解自建大資料叢集的規模較小的情況,積極采用阿裡雲大資料平台對資料進行分析和處理計算。
未來,仁人幫會加入廣告植入和互換模式,這需要不同系統,不同來源的資料加以統計和分析,進而與合作商達到合作共赢,科學管理的方式。大規模和普遍的合作所産生的資料對仁人幫将會是一個不小的考驗。仁人幫願意接受各種考驗,我們也将在核心算法上不斷完善,剔除垃圾資料。提升響應體驗。
今天就聊到這了,咱們下期再見吧!
<a href="https://mp.weixin.qq.com/s?src=11&timestamp=1507623574&ver=443&signature=u8mGsom6g7Bv1z-mifJyai8HL-hxZiCAKU2Aa99xdg4Yt-3fNUAKDUiGPS4cb2uOWuCobxb2dAEcxSSa6D1ct1KpxRw3WW4ejkFleSh1ezDGRIApBaadOLs5EjpBCOQb&new=1" target="_blank">原文位址</a>
<a target="_blank">---阿裡大資料博文,問答,社群,實踐,有朋自遠方來,不亦說乎……</a>