聲明:本文爲做者在CSDN技術公開課的分享原創整理,未經許可,禁止轉載。
做者:郭煒,易觀CTO,畢業於北京大學,曾任聯想大數據總監、萬達電商數據部總經理,曾在中金、IBM、Teradata公司擔任大數據方向重要崗位。在智能硬件以及大數據分析領域具備豐富的理論和實踐經驗。
責編:錢曙光,關注架構和算法領域,尋求報道或者投稿請發郵件qianshg@csdn.net,另有「CSDN 高級架構師羣」,內有諸多知名互聯網公司的大牛架構師,歡迎架構師加微信qshuguang2008申請入羣,備註姓名+公司+職位。前端
分享內容簡介
今天和你們分享的內容主要就是怎麼樣從0到N來建一個大數據平臺。其實,每個大數據平臺都不是憑空而起的,每一個企業剛剛開始數據分析的時候,也不是上來就是一個大數據開源平臺Hadoop、Spark這樣一個存儲的。今天分享的內容,實際上是根據企業發展的不一樣階段,針對業務的需求來選擇不一樣的大數據架構,配置不一樣規模的數據處理人員,根據企業不一樣的時間點,幫助企業從0到N,創建高性價比的大數據平臺。python
從0到N——數據大時代的劃分
第一個先說從0到N大數據的時代劃分,其實大數據時代不是如今纔開始的,它早在之前就開始了,只不過那時候不叫大數據,在最開始的時候叫數據倉庫。十年前,它在作企業內部的ERP、CRM的相對的一些集成。而後把裏面作一些BI的分析報表,作一些數據挖掘。那個時候最著名的例子應該是啤酒和尿片的故事,就是關聯數據挖掘能分析出來,週末男人常常去買尿片和啤酒故事。到後來互聯網的出現大數據進入了Web2.0時代。在過去你們只是拿到一些用戶結構化的交易信息和用戶的聯繫信息,如今能夠得到每個人上網的點擊流的信息,根據你的點擊的狀況作一些推薦。包括一些如今的猜你喜歡和搜索引擎排名,這些都是在Web2.0時候基於你在點擊流的大數據的檢索和大數據的一些處理。第三個階段,如今咱們所處的階段,我認爲就是IoT O2O時代,如今你們一講到大數據,其實不只僅包括了上網的行爲日誌,還包括像如今智能Wi-Fi與智能POS(感知在線下,一個在逛商場的時候,你在哪裏停留了,停了多久,進了哪家店,吃了什麼東西,唱了什麼歌,看了什麼電影這樣的數據)把這些東西所有能收上來。還包括像如今的一些可穿戴的設備,去檢測你的健康信息,也包括圖象的識別、錄像的分析,這些都是在如今這個時代大數據囊括的內容。mysql
你們能感受到,隨着大數據時代的發展,從1.0,2.0到如今3.0,它離消費者的距離是愈來愈近了,過去原來都是高高在上,數據結果都是在相關的企業決策者的眼裏,而如今其實咱們均可以把它穿戴在身上,從手機上就能看到一些相關的數據的分析和相關的結果,整個數據對業務的影響力也是由弱慢慢變強,如今基本上若是一個企業沒有一個數據決策,這個企業很難去運轉。算法
從0到N——大數據時代企業劃分
說過大數據時代的劃分,下面來給你們介紹下我定義的大數據時代的企業劃分,這裏面我作了一個小的比喻,我根據一個企業的數量量,而後根據它的技術人員的分佈,我去把它分紅幼兒園、小學、中學、大學、碩士、博士等等。最後單獨拿一個模板給傳統企業。這裏面的提到的PV數,若是你不是互聯網的企業也不要緊,你能夠用你的企業天天日增的數據的處理條數,由於數據量其實決定了企業的技術框架複雜度和你的處理的人員多少。這裏分別劃分了幾種:五萬、五十萬、五百萬、五千萬、五十億條,大於五十億條。數據技術人員的多少跟每個企業發展階段都是有直接關係的,具體狀況參見上圖,再也不贅述。單獨把傳統企業拎出來,由於它稍微特殊,除了數據量的量級以外,傳統行業的技術人員作大數據的人通常都比較匱乏,如今像零售、醫療、銀行等等其實都是這個狀態,而它的數據需求特別多,既須要OLAP,又要作挖掘,還要作個性推薦,對數據還有作一些數據產品,想法很是多,咱們到後面也討論一下,傳統企業作大數據的時候要注意什麼。sql
這個是我對不一樣數據階段的劃分,下面逐步介紹不一樣階段適合的框架。數據庫
大學以前的基本框架
先說說大學以前的框架,就是全部的這些數據處理的基本框架,在大學以前其實無外乎分爲如下幾個模塊:數據處理調度模塊,數據展現工具,結構化數據存儲(非結構化處理後放入結構化存儲)。非結構化數據也能夠用第三方的一些免費的分析工具,具體每一個階段略有不一樣。安全
先說說大學以前的框架,就是全部的這些數據處理的基本框架,在大學以前其實無外乎分爲如下幾個模塊:數據處理調度模塊,數據展現工具,結構化數據存儲(非結構化處理後放入結構化存儲)。非結構化數據也能夠用第三方的一些免費的分析工具,具體每一個階段略有不一樣。服務器
先講講幼兒園階段,此時數據專職人員幾乎沒有,主要都是結構化的數據。結構化數據在這個量級的時候天天五萬條,用Mysql便可存儲,數據處理調度的時候,不用專門複雜的ETL工具,用Shell+JAVA處理便可(此時企業也沒有專職數據處理人員)。展現工具在這個階段的時候,不用買什麼工具,這裏我強烈推薦Excel,待會我給你們講講爲何推薦它。對於非結構化數據,這個量級有不少第三方的免費工具,若是須要能夠挑選一個使用。微信
幼兒園基本框架
Excel是小數據量最好分析工具markdown
- 所見即所得。
- 產品使用方便,人員易上手
- 支持各類定製化展現
- 支持簡單的數據挖掘
- 業務部門容易使用 無招勝有招 多少金融模型來自於Excel
爲何推崇Excel?到目前爲止,我的一直認爲Excel是小數據量的最好的分析工具,沒有之一。第一,所見即所得,全部的數據處理和數據挖掘工具沒有一個就像Excel同樣,簡單拖拖拽拽便可實現,旋轉透視表、關聯分析挖掘、或者回歸分析徹底就在一個界面上就能處理好,沒有一個工具能比得上它。第二點是使用方便,人員易上手,對業務人員不用作什麼培訓,用Excel業務人員就能作出各類各樣的分析報表,很是高效。第三,支持各類個性化的展現。如右圖,在頁面上面能畫出來比較炫酷的這些圖,Excel基本都支持,包括支持地圖上展現熱區圖等,具體的方法,你們自行谷歌一下。第四,支持簡單的數據挖掘。Excel支持大部分的基本數據挖掘算法,好比關聯分析,決策樹分類等,方法你們自行谷歌。 Excel我認爲在數據量級不超過十萬條的時候是最好的分析工具。因此用Mysql把這個數據作一下彙總,Excel直接展現,這也是在幼兒園階段對你來說最好的一個分析框架了。有些人會說用Excel不是大數據,可是到如今爲止,不少數據分析師還在用Excel,我的認爲無招勝有招,不在意工具是怎麼樣,而是在意你背後分析思路和分析的經驗是如何。你們知道如今不少你們都說金融股票分析什麼這些都很是高深,用各類量化模型,可是你們知道,不少金融模型都是來自Excel的,對於最基本的分析工具Excel,我向你們強烈推薦一下,不管哪一個階段必定要深學活用。
第三方分析——易觀方舟幫助你分析頁面流量
- 支持網頁和APP
- SDK只有66k
- 省去了各類數據加工的麻煩
- 基本指標包羅萬象
- 目前開放的基本功能,永久免費
- 功能不斷在迭代
對於在這個階段,互聯網非結構化分析有不少像友盟和方舟這樣的免費分析工具。我在易觀就簡單說易觀的方舟,經過易觀的業界最小的SDK(Android只有66K)就能夠看到各類基本的分析指標,存儲和處理都不用操心了。基本的這些指標包羅萬象,並且永久免費,指標數據能夠下載回本地,若是須要明細數據回傳服務也能夠單聊。這個階段,最重要的是把企業把業務流程打通,先活下來,這是在幼兒園這個階段。
集美貌與智慧一身的「SQL Server」
爲何是SQL Server?
- 一個軟件覆蓋了這個階段數據處理的全部功能
- 支持各類數據源的集成
- 支持ETL調度
- 支持報表展現
- 支持OLAP
- 數據量在幾億條以內(天天50萬,一年1.5億),查詢效
率OK,若是擴展cluster,支持更好。 -
小數據分析神器Excel,完美結合,擴展了數據挖掘,展
現等功能 -
缺點:數據量大之後,效率跟不上
在小學階段的企業基本上有一點數據了,天天大概有五十萬條這樣的數據,有一些數據的處理專職人員了,1到2我的。須要有ETL工具和必定數據量級的數據存儲。這個時候,向小企業隆重推薦一個繼承解決方案就是SQL Server。提到SQL Server其實也有不少人在鄙視,聽上去一點都不高大上,怎麼能叫大數據?但其實你們知道嗎?不管是如今已經火的京東,仍是如今的美團,剛剛起步的時候都曾經通過SQL Server作數據分析的階段。我把SQL Server叫作「集美貌與智慧於一身」,爲何這麼說?其實SQL Server實際上是它目前惟一一款軟件,覆蓋了這個階段數據處理分析的全部功能,支持各類數據源的支撐。由於企業在這個數據量級的時候,源數據庫有多個異構數據庫和異構數據來源,須要一個比較強大的ETL工具作集中數據存儲。在這個階段,能夠利用SQL Server自身集成帶的一個東西叫SSIS,SSIS組件是一個簡化版的ETL處理工具,你購買了SQL Server,你不用再須要購買一個ETL工具。此外,SQL Server還集成SSRS,它是一個網頁報表系統,這個東西自己還支持OLAP引擎,你不須要再單獨買一套報表的展示工具,對於這個階段的企業來說,大部分需求也足夠使用。第四個是OLAP引擎,就是上鑽下鑽旋轉這些OLAP特性SQL Server全都支持,並且在數據量級在幾億條之內,數據查詢效率OK。固然,若是企業比較富裕,你去購買Cognos、Tablau這樣的產品的話,支持會更好一些。最關鍵的,完美結合剛纔提到的小數據分析神器Excel。Excel直接連上SqlServer,那基本上就如虎添翼,原來Excel只能十萬條,SQL Server擴展到一億條。固然此時第三方的工具還能夠繼續用,你用的像方舟這些繼續可使。那方舟裏面,但這個階段除了剛纔說PV、UV,如今可能就是分析一下這個頁面路徑了,就是這些人經過什麼樣的路徑點擊進來,到你那觸達你的最終的購買路線的,這些人究竟它的轉化率怎麼樣。包括一些留存分析,就是哪些用戶是老用戶,這些用戶留存狀況怎麼樣,是什麼活動促銷進來的等等。這個問題是在這個階段確定有的,可是用的工具不必定是易觀的方舟也有其餘的工具。
傳統數據倉庫+日誌分析工具
日增500萬,年度過5億之內,2-4我的,暫時尚未人力搭建hadoop。
剛纔講到了幼兒園小學,如今上中學了。爲什此時我還在推薦商業組件而不是開源組件,是由於在此時,大部分企業仍是以知足企業內部需求爲主,創建分析平臺的時間和效率每每比創建高大上的平臺有效切實的多,同時創建相關團隊也須要時間,使用商業組件能夠提升總體的效率。在中學的時候,每日日增數據量基本上是五百萬量級,通常是小型的這些互聯網企業,或者小的傳統企業,此時,數據專職人員就有2到5我的了,這個數據量可能像一年下來可能要過十億條了,單機的SQL Server支持可能會有一些吃力。目前這個階段,我我的的建議仍是你不要上Hapdoop這樣大的平臺,創建Hapdoop平臺必定要10人以上的團隊規模,這個實際上是一個坎兒,在這個時間不要着急搭這種複雜的Hapdoop平臺,可是對於您目前的企業數據量來說,你須要一些專業的數據處理工具和展現工具了,就是你的小的企業可能剛纔我說的SqlServer這個解決方案,已經不適合你了。那通常如今都有哪些?像數據處理調度的時候,由於剛纔我提到說,SqlServer它本身集成,可是目前處理到SSIS,確定是不可以徹底知足你的要求了,因而就有比較專業的數據處理工具,有兩個比較商業上過去用的很是有名的,一個叫Informatica,另外一個Datastage,這兩個其實都能知足大部分的企業的數據處理的調度的需求,如今大部分銀行也在用。固然今天咱們追求性價比,因此我給你們介紹經常使用開源的工具,叫作Kettle,目前大部分中小公司Kettle用的其實仍是最多的,由於它的功能比Informatica、Datastage相比確定要弱一些,可是比SSIS來說仍是要更強一些,並且如今Kettle還支持了Hadoop、Spark等等任務調度和監控,仍是擴展性在這個階段挺強的工具。
數據存儲在這裏也有一個升級,原先的存儲在這個數據量級每一年在15-20億條,此時須要更大型的數據存儲,好比說DB二、Oracle,這兩個都是商業的,就是如今目前也是過去在商業數據倉庫驗證比較好的。咱們追求性價比,也能夠用去年開源的Greenplum。GP其實在大數據行業裏面還挺有名的,去年年末實現開源無償使用。GP是在上百億數據量級裏面,惟一一個MPP架構且開源的數據存儲平臺,它的處理效率和DB二、Oracle一點不落後。在展現方面,隨着業務量的增長,需求愈來愈多,也須要一些單獨的查詢展現工具。在這個環境下,數據量有必定數據量級了,但你的人很少,作本身的一些查詢工具可能還不行,你方式是買一些商用的工具來去作一個過渡,因此我在這裏推薦幾個如今比較火的。Qlik Sense/Tablau這兩個我用過都還不錯,屬於新一代的展示工具,固然還有老牌的Cognos和BO等表現都中規中矩,建議展現工具和業務需求部門一塊兒評審,選一個合適的便可。選擇合適的展現工具能夠節約創建大數據平臺的大量時間。
開源的ELK——簡易日誌分析平臺
-
ELK
- Logstash
- ElasticsSearch
- Kabana
-
優勢
- 搭建簡易
- 迅速知足日誌分析需求
- 自身具備多種展現方式
-
缺點
- 功能單一,只針對日誌
- 擴展性不強
在中小學的時候,非結構化數據能夠經過程序轉換爲結構化數據再存入傳統結構化數據數據庫的同時使用第三方免費工具來分析處理。在這個數據量級的時候,你會發現不少臨時性的新需求,第三方免費的這些工具不夠用,這時候ELK就派上用場了,ELK,就是Logstash、ElasticsSearch、Kabana縮寫。在這個時間點,其實若是你想要本身一些自主的,這種非結構化的日誌類的分析,可使用ELK分析。
在這個時候若是你的公司尚未使用Python處理數據的話,必定要求你的技術人員開始使用Python,前面其實都沒有單獨對數據處理的語言對你們作限制,特別人比較少的時候,在這個時間點,必定須要讓你的人員從JAVA轉到Python去。Python有幾個這樣的好處,第一數據處理簡潔明快,比Java針對數據開發效率高不少。過去有一個語言叫作Perl,如今Python已經取代了Perl的地位,成爲一個數據處理的一個必會的語言。第二個好處是Python各類數據源和各類環境都支持,它的延展性特別高。第三個是Python支持各類數據挖掘的算法庫,基本上各類在Python的這種庫是最多的,甚至比JAVA還多。第四個是支持各類流式計算系統的框架,就是你未來學了Python之後,你能夠順利地從中學上大學。因此在這個階段,我建議每個企業在這個時候,去把Python腳本用起來。
第三方免費分析——易觀方舟的用戶畫像
- 人口屬性:設備羣體特徵
- 使用類型:都是使用什麼類型的應用
- 使用類型時段:什麼時間使用什麼類型的APP
- 使用關聯分析:從哪裏來,到哪裏去
- 用戶偏好:用戶標籤
固然,在這個階段,第三方的數據平臺依然能夠幫你作一些事情,好比說方舟的用戶畫像。由於這些功能的背後須要有大量的數據和大量的數據分析算法,來幫助你的企業告訴你,你的客戶它的設備羣體是什麼樣的,他們是在使用什麼樣類型的應用,這些應用在什麼時間段怎麼使用。也能告訴你作一些關聯分析,就是你這個客戶在使用應用以前,他從哪裏來到哪裏去,還給你不少的一些用戶標籤。這些實際上是你在用ELK,這些統計的東西都是沒有的,目前這個功能也是免費對外開放的,你們歡迎去使一下。
開源平臺的引入與數據治理的增強
上完中學之後就要上大學了,包括小銀行、政府機構、大部分傳統機構,這個裏面它要求的東西就更多了。上大學之後,系統的結構一下就變複雜了,爲何?除了非結構化數據的處理以外,在這個時候有兩個非技術模塊很重要,一個叫作主數據管理,一個叫作元數據管理,全部在這個階段的企業都作了相似這樣的項目。主數據是什麼?在企業裏面,各類各樣的系統裏面都有各類各樣的數據,對於某些特殊的數據的標準數據就是主數據。舉個例子,客戶信息。你可能有CRM裏面有,ERP裏面有,可能生產調度系統裏面有,可能銷售的APP裏面也有,你的網站上面也有。對於每個客戶來說,誰做爲惟一肯定的數據作黃金拷貝?這就是主數據管理的意義,你必定把主數據存儲獨立存儲,業務流程發生變動的時候,哪一個系統有權限去改主數據,是很是重要的,不然最後客戶的電話號碼每天變來變去,你也不知道它哪一個是最終有的有效數據。因此在這個時間點你必定要作一個主數據的管理。第二個元數據,元數據的管理,到這個階段之後,表、存儲特別多了,這些數據怎麼能有效的管理。例如,元數據當中的血緣分析,就是你這個表它的數據從哪裏來,到哪裏去,這個數據怎麼最後變成了指標展示出來,指標發生數據問題的時候,哪些數據處理過程可能存在一些故障可能,這些東西實際上是在這個階段作的。
在這個階段開始要作真的開源平臺的引入了,開源平臺的引入和數據治理的增強,致使你的人員迅速地擴張。第一個這裏面引入了Hadoop,Hadoop我目前建議你仍是先用Hive先用用,逐步轉爲Map Reduce非結構化處理,經過Kafka,接入Storm也可使用實時地流式計算,經過Storm直接反饋到前端的展示工具。在這個數據量級的時候,天天五千萬條左右的結構化數據的處理量,可使用開源的Greenplum或者商業化的Teradata。Teradata目前仍是在MPP架構業界最快的,可是賣的也是最貴的。展示工具,企業依然能夠去買第三方工具,本身不用去開發。此時的企業,數據挖掘的需求愈來愈多,使用數據挖掘工具的時候,原來作的一些簡單的像Excel這樣的工具已經沒法知足個性化推薦、協同過濾這些算法了。挖掘工具能夠在R SPSS、SAS、或Mlib庫選一個。Mlib是Spark中的數據挖掘庫,功能強大,處理速度快。不過此時我還不建議企業着急上Spark,由於大部分這些企業大數據投入仍是有限的,Spark的使用會給人員帶來新的需求。若是人員有限,那麼能夠選擇商業的數據挖掘工具,若是人力比較富裕,可使用開源的R結合python相關挖掘的類庫,能解決企業大部分的挖掘和推薦需求。這個時間點上有一個特色就是在大部分的這個企業處理的時候,大部分數據仍是將非結構化數據處理以後,變爲結構化數據再作相關處理,哪怕通過了MapReduce,通過挖掘在線模型,最終的數據還會回到這種結構化的數據庫裏面再去使用。或者有小部分地流式實時數據處理來作展現。絕大部分數據存儲還不是放在Hive和Hapdoop裏面的,你的大部分的數據其實仍是在結構化的數據裏面。由於你的人員在這個階段,其實仍是結構化數據處理人員比非結構化數據處理人員多,你的業務需求也是結構化數據需求最多。
中流砥柱——Kafka/HDFS/Hadoop/Hive
-
最皮實的組合
- 魯棒性
- 硬件兼容性
- 數據處理穩定性
-
每一個系統大數據存儲,都繞不開
-
缺點:慢!
分開來說,Kafka/HDFS/Mapreduce/Hive,我把它叫作最皮實的大數據組合,緣由有幾個:第一就是穩定,不管你如今用的是Cloudera 仍是Hortonworks,其實讓你的開發人員去安裝一套,安裝配置的時候可能中間有一些坑,可是你只要把它安上去轉起來一次之後,那後面基本上它的大部分問題幾乎就沒有了。不會像其餘平臺,在運行時有時候會有一些詭異的問題。它的兼容性也比較強,就是不管好硬件差硬件,它都能跑起來。數據處理的穩定性,數據處理是很是穩定的,你不用擔憂數據量徒增會出什麼問題。因此如今目前爲止,每個大數據的存儲都繞不開這個組合。缺點也很明顯,就是慢。這個東西它是不會內存爆掉,不會死機, 可是它轉起來真的很慢,你想讓它跑快起來,這個事其實挺難的,由於這個整個結構其實就不是那樣的結構,常常你查一個SQL下去,你看着它先作map,而後再作reduce可能半個小時過去了。
貴族的開源——Greenplum
- MPP架構,查詢速度很快!
- 大數據量SQL查詢,除了Teradata,商業化使用最多
-
穩定性強
-
GPDB目前使用最多,HAWQ支持HDFS是將來
-
缺點:吃硬件,萬兆、多SAS盤、服務器很貴…
剛纔我提到了Greenplum, Greenplum這家公司其實也是一家老牌公司了,它其實如今有兩個開源的版本,一個以GPDB爲核心,一個以HAWK位核心。GPDB是如今目前使用最多一個查詢的引擎,普遍應用於銀行、電信等等不少的領域裏面,其實都是用了GPDB的SQL的查詢比較多。HAWK是新版的GP存儲引擎,如今支持HDFS,簡單來說它是底下存儲換爲HDFS,它自己的查詢計劃和優化仍是用的GP的這一套東西,因此它的速度基本上和GPDB是相同的,只不過如今剛剛推出來,還須要一些時間驗證和推廣。可是整個趨勢來看HAWK是將來,由於它支持的HDFS,對於數據的導入導出,磁盤的冗餘替換都是很是有利的。易觀做爲GP開源之後第一個使用開源版本存儲處理大量數據的企業(日處理量在100億條左右),咱們也遇到了一些坑。可是給咱們帶來的優點是查詢速度很是快,一樣的結構化數據的查詢,不誇張的講Hive須要1小時,GP 1分鐘就能夠算出來。目前來說GP其實商業化用的是最多的,穩定性也是很是強,在大數據的類SQL這個領域裏仍是比較好用的。固然,它也有缺點,就是很是吃硬件。普通的開源軟件我叫作屌絲開源,通常對硬件要求不高,而GP我管它叫貴族開源,它對網絡和磁盤的IO要求極爲苛刻,一旦你的網絡和你的磁盤IO沒有配置均衡有效的時候,它會常常出現一些詭異的問題。因此基本的配置,單光口萬兆是最最基本的,沒有這個硬件投入你就不要想用GP了,通常它推薦的是雙萬兆卡,就是必定要有光交機,兩個萬兆給它,每個機器的磁盤不少的SAS盤。因此,它要求的硬件,包括整個的服務器,那你服務器自己主板其實這些要求全都規格都上去了。可是企業結構化數據到必定數據量級的時候,仍是能夠選它的,我的認爲它仍是比較靠譜的。
易觀方舟的轉化分析與應用評級
-
看本身產品轉化
- 營銷活動是否高轉化爲下單支付?
- 行業平均轉化率如何?
- 什麼渠道用戶分享與傳播多?
-
看行業均值、TOP10
- 市場是否已被領頭羊蠶食?
- 長尾幾無生存空間?
-
看本身評級
- 易觀給你的第三方的評估
固然在這個階段,第三方的平臺依然能夠給你一些幫助。例如,幫助你看你企業從廣告到瀏覽到下單,轉化率是如何的?行業均值差多遠?這些易觀都一些分行業的分析模板,只須要你簡單的作一些數據嵌入便可。能看看行業趨勢是怎麼樣,你本身看看這個行業的TOP10是怎麼樣。你的市場已經被領頭羊吃掉了,或者你本身生存空間怎麼樣。再看看你在這個行業裏排行如何?有沒有一些新的缺口?另外易觀給你作一個第三方的評估評級,給你的投資看下你的用戶的價值有多大。這些基本功能都是永久免費的,而未來基於這些基本功能的擴展分析是要收費的。
那剛纔講完大學了,如今開始上研究生了,研究生天天的數據條數少於五十億,那如今到了這個量級的時候,基本上專職人員是30到50人了,這個時候關鍵詞就是一個字,開源。爲何?在這個量級的時候,若是你不去用一些開源的一些工具投入已經超過了你對於人員僱傭的投入費用。那對於這個階段來說,除了Hadoop系列,會引入Spark、麒麟、Presto、Druid這樣的數據處理和存儲平臺。研發工具基本上原來的商業工具確定是沒法知足需求了,能夠引用百度的E-Chart或者D3。他們之間各有千秋,可是我是支持國產的開源的,因此我選了echarts。
數據量增長、實時計算的引入致使全面開源化
內存計算的翹楚——Spark
- 目前最火的大數據開源項目
- 華人貢獻佔52%
- 大數據下數據挖掘必選項SparkR
- 即便使用磁盤,執行效率優於Hive幾倍
研究生大數據必修課
- 缺點:若是達到很高效,硬件要支持
- 數據量比較大,節點比較多,對Scala要求比較高
先說Spark,目前最火的大數據開源項目。它的開源的火爆程度目前超過了Hadoop一倍可能還得多,並且華人在裏面貢獻的人名數超過50%以上。在這個數據量級,會有大量的數據挖掘模型和處理的需求,而Spark對於迭代式的數據挖掘,特別大數據量的處理的時候。同時,它的內存計算及相關框架效率是Hadoop運行效率的幾倍,因此在研究生階段,大數據必修課就是Spark。但缺點也挺明顯,就是若是你想達到它的高效,由於它就是內存的計算,硬件總體環境須要支持。就是也許你如今不用萬兆,那你也得用雙網卡或者四網卡捆綁,你的網絡IO得有保證,你的內存和CPU得能上來,這兩個是你在Spark的時候必用的。另外,你們知道Spark是用scala作的,你對scala的要求就比較高了,由於你結點多的時候,這點或者那點總有點小問題,因此研發的技術人員必須得對scala比較熟悉,能夠簡單調試相關的問題。相對於Hadoop,Spark穩定性還在逐步增強,它在流程裏會有一些小的bug出來,由於它雖然很火,可是它還會有各類各樣的小問題,須要你去修修補補的。因此這個是你在研究生的時候你再去學。
OLAP的利器——Kylin
- 解決了大數據多維度查詢速度慢,多維查詢數據返回丌及時的問題
- 開源MOLAP利器
- Apache金牌項目
- 源自Ebay內部大數據
- 利用Hbase,加速能夠加速Hbase
中國人本身的開源項目!
- 缺點:預計算時間比較長
麒麟源自於e-Bay,如今它單獨從e-Bay獨立出來了,那它是Apache的金牌開源項目。麒麟是開源的MOlap的利器,解決了大數據多維查詢速度慢,多維查詢的反饋不及時的問題。目前麒麟底層主要是利用Hbase去作存儲和查詢,因此你要去想加快麒麟的速度的話,能夠用加強磁盤和網絡I/O的方式處理。麒麟目前國內不少大牌的地方也都用過了,包括像騰訊,美團都有使用,如今有不少通過實際的一些經驗,它是OK的。最重要的一點,它是中國本身開源的項目,中國人本身的,因此你們必定要支持它。可是麒麟也有它的缺點了,就是它的預加載時間比較長,由於它是用空間換時間的。在大數據架構裏,展現的時候若是想看到數據怎麼上鑽下鑽,而後作一些查詢,麒麟做爲國產的開源的這樣一個軟件,我以爲仍是強烈推薦的,這個你們能夠去使用。
OLAP的生力軍——Druid
- 解決單表大數據查詢問題
- 支持實時增量的聚合
- 不支持查明細
正準POC,不亂評價
開源負責人是華人
- 缺點:未知,正在準備試用
Druid是最近比較火爆的查詢平臺,最近羣裏也一直在討論,我正在作POC,暫時還不評論。試用之後再給你們作一個反饋。
內部SQL查詢工具——Presto
- Facebook開源內存SQL查詢
- 能夠跨mysql,Hadoop, cassandra查詢
- 查詢效率進高於Hive
-
SQL支持比較好
-
缺點:內存吃的很厲害,並且大查詢出現詭異的異常
- 目前易觀用做內部查詢使用
Presto其實Facebook開源的,是一個內存式計算的框架,它比較牛的地方,它是一個可以跨Mysql跨Hadoop,跨cassandra的查詢。支持跨庫查詢,可能主數據在Mysql,行爲明細在Hive,用戶標籤在cassandra,一個語句能夠解決全部問題。這件事情仍是很牛逼的,可是如今它要支持不少新的數據庫的Adapter,可是聽說新的adapter要收費,查詢效率也高於原生的Hive。咱們原先也用 presto,美團也在使用。可是Presto的缺點也挺明顯,就是若是你數量不大的時候,原來咱們拿presto串到整個數據處理流程也很好。但缺點也很明顯,Presto內存吃的很厲害,若是數據量級比較大的的查詢(超過20億左右,根據集羣大小不一樣),就會出現很詭異的異常,並且每次異常的點都不同。因此在這個狀況下,就是咱們如今易觀拿它作內部查詢使用,就是你不能把它串到數據處理流程裏。
對開源平臺的修改、對硬件的定製要求
到博士生了,更多的技術人員集中到算法層面,例如像知識庫或者知識圖譜的創建,或者在線推薦引擎和搜索優化這樣。大數據平臺方面,其實每一個不一樣的這個地方,其實都不太同樣。這個階段每一個公司都是自主的一些存儲了,包括ETL的工具。在這個階段原先免費開源的ETL調度工具都不行了,這個工具須要結合任務去動態調整資源,像易觀本身作的EAMP,或者我在萬達時候e-horse,除了你調度ETL流程以外,由於你的數據量不少了,它得可以去調動你的Hadoop的這些資源並處理一些特殊的業務狀況。大數據存儲的時候在此時各顯神通,這個時候真的沒有一個統一地說完整的解決方案。這裏稍微提一點優化,就是須要將大數據分段處理了。由於這麼大量的數據,若是直接扔到後臺集羣,集羣壓力會超大,性價比也不是最高。因此在這裏舉例,在互聯網數據接收的時候,就開始作數據處理。例如,利用Lua在openresty去處理髒數據,分段優化總體的大數據處理流程。在這個階段,基本上全部的這些博士生的企業,都有修改開源平臺的能力,你的團隊得能去修理開源的平臺解決相關的問題。
性價比最高的定製化硬件
-
大數據集羣要什麼?不一樣場景不一樣
-
批量計算——高性價比的I/O,網絡I/O,磁盤I/O
- 磁盤I/O,SSD?量大了用不起。
- 多磁盤,組Raid
- 網絡I/O,光纖萬兆?性價比丌吅適
- 多網卡捆綁,4塊放一塊兒
-
實時計算——網絡 I/O,CPU
- 大內存
- 萬兆
- 高CPU
- 磁盤?SSD,必須的
同時,你要對硬件作一些定製,就是若是你真的想作性價比最高,原來成型的這些機器不太好使了,其實有不少東西你得去配置什麼要下一些功夫。大數據集羣須要什麼?就是不一樣場景,不太同樣。批量計算,批量計算像Hadoop或者presto主要是高性價比的IO,指的是網絡的IO,磁盤的IO。若是真的想框架不變,速度提高優化50%、70%,你想經過優化Hadoop這些優化,我以爲基本不太可能,你直接升SSD硬盤纔是解決方案。若是性價比比較高的方案,優選的就是磁盤特別多的機器,在這個時候你去買更多的盤,好比說你的機器支持16塊盤,把這16塊盤,若是HDFS倍數是3的話,你組三個Raid,去處理,比你用8塊盤的機器用羅裸快得多。磁盤IO這件事是我以爲第一個優化的。
第二個網絡IO,網絡IO,咱們要高性價比,網絡IO萬兆固然是最好了可是性價比其實不合適,其實如今不少的這種多網卡捆綁的方案了,就是你買四塊網卡,費點交換機,你把四塊卡綁一塊兒,其實它這個速度,雖然不是×4,可是基本上×2×3還能夠。因此在這個時候也是一個廉價的解決方案,因此你的Hadoop集羣在配的時候,你就用這種多磁盤,多網卡,CPU要不要高?其實我以爲不用。就是大部分的Hadoop出現的問題都不用在CPU上,都是在磁盤和網絡IO上面的,就是你在這兩個IO上面提上去,你的查詢效率會高不少,並且也不用花太多錢。
對於時時計算來說,這個事其實若是你真的想作得比較好,那麼主要是網絡IO和CPU,內存必定要大,你的網絡,我以爲像GP、Spark這些你要想把它轉得很是好,速度很是快,那你仍是上萬兆吧。若是你要想便宜的話,你就用四塊網卡去捆綁,CPU,由於這個時候其實它是內存之間的交互,CPU若是不夠高,那你最後CPU就有瓶頸,磁盤直接上SSD便可,如今目前其實你要想定製比較性價比高的這些硬件,其實主要仍是回到它原來處理平臺的時候,須要IO,須要CPU仍是須要網絡,從這幾個角度來看,不一樣場景其實仍是不太同樣的。
固然,其實剛纔講了一堆開源的工具,咱們也在作一些有趣的測試,就是拿咱們如今易觀處理完的,好比說一天大概五十億條的數據,拿這個數據作一下評測,在不一樣場景下,每一個查詢效果怎麼樣,這個事其實咱們如今正在作POC,作完之後,下次分享的時候,也跟你們去聊一聊。
剛纔也說了各個不一樣的,從幼兒園到博士生,其實跨度仍是挺大的,講的從一開始的Mysql到最後整個完整的一個大數據平臺。傳統企業比較特殊,就是它大部分數據都是結構化數據,技術人員基本上不是特別多,要麼就是外包,要麼是本身內部人員。但大數據的這些算法和大數據的非結構化的處理比較少。我這裏面關鍵詞其實就是建議傳統企業仍是先建一個數據倉庫,而後把少許的非結構化的處理放到結構化裏面。
傳統企業模板
大數據雲化的觀點
-
大數據雲化是趨勢
-
小公司,全面雲化,借劣第三方雲化解決方案,端到端解決問題
- 核心數據選一家大的(阿里、騰訊、Ucloud等)
- 周邊方案丌必定只一家(多選幾家功能觸達爲主)
-
大公司,大數據混吅雲是當前的最佳實踐
- 大數據集羣自主
- 相關組件不產品雲化
最後說說,大數據和雲化的問題。各家雲都上了各類大數據組件,這個東西可不可用?好很差用?該不應用?個人觀點是這樣的,就是大數據是雲化是將來的趨勢。目前在國內,若是你是小公司,那你就全面雲化吧,那借助第三方的雲化的解決方案,端到端解決問題,好比阿里、騰訊、Ucloud等等這個就不列了,這個感興趣你們能夠看易觀的分析報告。周邊端到端的數據分析服務雲就不必定選一家,哪家能用它的一個優化的方案來解決你用哪家,對於移動互聯網來說,你能夠選易觀,固然你也能夠加上其餘的友商,在這個階段對於中小公司來說,這就能夠了。對於大公司來說,目前如今最佳的方案是混合雲,最終落到仍是一個混合雲的方案。是爲何?就剛纔提到,大數據集羣從性價比來說,從穩定性來說,公有云都還有一段路要走。大數據集羣能夠在本身的私有云裏面,那麼你的相關的這些產品能夠放到公共雲上。
2016年8月12日-13日,由CSDN重磅打造的互聯網應用架構實戰峯會、運維技術與實戰峯會將在成都舉行,目前18位講師和議題已所有確認。兩場峯會大牛講師來自阿里、騰訊、百度、京東、小米、樂視、聚美優品、YY互娛、華爲、360等知名互聯網公司,一線深度的實踐,共同探討高可用/高併發/高性能系統架構設計、電商架構、分佈式架構、運維工具研發與實踐、運維自動化系統的構建、DevOps、雲上的運維案例分析、虛擬化技術、應用性能檢測與管理、遊戲行業的運維實踐等,將和與會嘉賓共同探討「構建更安全、更高性能、更穩定的架構和運維體系」等領域的話題與技術。【八折優惠中,點擊這裏搶票,欲購從速。】