閱讀690 返回首頁    go 技術社區[雲棲]


仁人幫探索大數據技術

41c93a36f2cb2e23f38c377a0a610b7234629ee8

前兩期小幫為大家介紹了仁人幫的大數據定義與大數據在仁人幫後台的應用。今天也不跟大家賣關子了,接下來,小幫為大家奉上的是大數據平台技術的探索。

大數據技術,小幫認為可以分成兩個大的層麵,大數據平台技術與大數據應用技術。要使用大數據,你先必須有計算能力,大數據平台技術包括了數據的采集,存儲,流轉,加工所需要的底層技術,如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、阿裏大數據體係

  我們先看一下阿裏的計算引擎三件套。

  阿裏雲最早先使用Hadoop解決方案,並且成功的把Hadoop單集群規模擴展到5000台規模。2010年起,阿裏雲開始獨立研發了類似Hadoop的分布式計算平台Maxcompute平台(前ODPS),目前單集群規模過萬台,並支持多集群聯合計算,可以在6個小時內處理完100PB的數據量,相當於一億部高清電影。

  分析型數據庫服務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台服務器的規模。首先係統做到集群化設計,無單點,且支持縱橫擴容。同時係統可模塊化拆分,數據存儲應做到持久化存儲。

51e0e339c614e518376430502424ceb9f7e67bed

通過負載均衡的解決方案,我們使用移動域名解析解決方案,移動加速解決方案,移動安全解決方案。通過URL分發路由的方式,實現尋找最優解析路徑的方式,通過一級二級緩存加快流速。通過數據庫集群設計,增加處理數據的效率。此外,我們還打算基於阿裏雲搭建了BI係統。最後,為了緩解自建大數據集群的規模較小的情況,積極采用阿裏雲大數據平台對數據進行分析和處理計算。

b59f126ed32e292faa7ebf60f352e238c507e544

未來,仁人幫會加入廣告植入和互換模式,這需要不同係統,不同來源的數據加以統計和分析,進而與合作商達到合作共贏,科學管理的方式。大規模和普遍的合作所產生的數據對仁人幫將會是一個不小的考驗。仁人幫願意接受各種考驗,我們也將在核心算法上不斷完善,剔除垃圾數據。提升響應體驗。

今天就聊到這了,咱們下期再見吧!

原文地址

阿裏巴巴大數據-玩家社區 https://yq.aliyun.com/teams/6/

---阿裏大數據博文,問答,社群,實踐,有朋自遠方來,不亦說乎……

bba01b493e1c5d904e882b1c380673c6ebe49a98

最後更新:2017-10-10 16:35:00

  上一篇:go  物聯網的關鍵技術:LoRa簡介與應用案例
  下一篇:go  5G時代最“有感”應用,車聯網進入黃金發展期