SPARK全栈 全流程 大数据实战 之 技术选型篇
2019獨角獸企業重金招聘Python工程師標準>>>
###一、技術選型,環境搭建安裝及生產部署
####1.大數據研發調研和需求分析
如果 你已經或正在嘗試搭建一套大數據環境或生產環境做研發和測試部署的話,如APACHE原生包或CDH和其它三方集成包,建議你先讀讀我的一次kylin安裝測試經歷《渣外有渣大數據OLAP平臺之KYLIN起死回生篇》,可以幫助你了解HADOOP序列的安裝使用的各種復雜煩鎖配置和版本兼容問題以及各種坑,而且全在LINUX下操作,這無疑是你走進大數據領域的一個最大拌腳石和攔路虎;或是在一些所謂的云計算平臺上操作,目前來說大多數都還處在比較基礎功能集成和簡單的工具封裝,還需要太多的手動配置和其它模塊集成等操作,才能完成和實現你的一個完整數據開發需求,要不就像databricks和IBM的bluemix一樣需要付費。而你不想重復這個痛苦的過程,需要先了解一下大數據研發環境需要如下幾方面需求:
數據支撐平臺:大數據的基礎存儲(HDFS,S3,或是其它分步式存儲平臺或對象存儲產品等),計算框架(MAPREDUCE,SPARK)集成平臺,加基本的監控運維安全支持(如CDH或其它三方平臺集成的監控管理平臺,或是云平臺)
研發測試工具鏈:一套數據開發測試各階段的工具鏈的集成整合(ETL采集中間件及輔助處理工具:sqoop,flume,fluent,kafka,kettle,infomatica等;倉庫工具:HIVE,SPARK SQL;實時流計算框架:storm,spark streaming,structured streaming;OLAP 平臺cube技術: kylin等;BI工具:sas,spas,mahout,spark mlib,r,python,tableaue),還不包括研發過程管理和到生產發布環境的自動化部署管理
應用層輸出整合:一序列數據輸出(如數據集市:hbase,cassandra,parquet,mogodb;),報表生成(如smartBI,cravel),應用展現可視化等(如R,Python,還有html5的各種js框架)應用層工具框架
####2.技術選型及測試
** docker鏡像+云計算存儲平臺+sparkNotebook,使你直面需求和業務邏輯,迅速進入正式開發測試和生產部署階段**
-  「目前現狀」多數大數據生產環境部署使用三方的像CDH這樣的集成平臺,一是提供穩定的版本集成,定制和功能擴展及加強外,甚至是多計算框架集成,在線配置統一管理等 ,還提供簡單安裝過程,集群技術部署監控管理,還有好用的web輔助操作平臺HUE。基本上是基礎輸入出存儲平臺,集群監控管理,到開發測試工具集成,甚至包含一些簡單展現工具方便分析調試處理結果,多數需求都 有了。唯一的缺點是只是對現有各種技術 的集成封裝,如要據線上需求調整參數或架構那這一套還是要做大量的管理,hadoop序列產品的特點就是不是一家的,數據格式不兼容統一不說,版本兼容復雜配置還是逃不了,而且因為這點一些新版本和技術優化特性沒發使用,版本往往靠后,瓶頸很容易出現,而hadoop本身的發展就不快,這也是阻礙它發展的主要拌腳石。 
-  而這里提供的「方案思路」是存儲系統包含輸入出系統如dw dm ods cube加速等與計算系統或其它系統如web應用,可視化,爬蟲等分別隔離,獨立出來。好處依次是系統和服務分解,基本的拆分思路解決大而難的復雜問題,其次分治,方便管理擴充維護,再次是專業的需求專業問題教給專業的技術和人資源來解決回答到更優的方案,也體現了現在流行的微服務理念。 
-  而「存儲系統」建議直接使用線上成熟產品,如S3,云存儲,db等,主要監控運維工作都交給云平臺處理,而且自搭數據平臺資源限制,要真實環境使用往往也需要線上平臺做為擴充,而且真實環境這些基本運維管理可能根本達不到要求,安全,容錯,備份,容災,恢復,升遷不是一件簡單的事;存儲平臺的自搭需求只有在自有敏感數據做預處理或脫敏時有必要,而且這塊完全是一個內部研發級系統就可以了,要求不需要太高 
-  其次是「計算系統」直接用spark平臺,數據采集預處理(各種數據結構api,dataframe,dataset,spark sql都可以做為數據處理工具) 實時(spark streaming可以處理各種高級或低級數據源)離線(可以對接各種數據庫,日志,文件或不同格式的數據進行直接對接操作)計算 分析 統計(spark sql mlib graph x還有擴展的r python) 研發(scala python node.js)一站式解決,而且的他的集群管理,運維監控都有好的方案,管理相對容易。而這一切正是在受了一代數據平臺多年發展的苦后,人們急切呼吁,市場急需變革而產生的新一代產物,重點是spark據于自身的優點和社區版本不斷跌代和互聯網計算機信息行業發展特點技術創新技術引導18月理論等漸漸偶合,它的性能吞吐量易用性易實施管理和多樣需求至多技術棧隔合,數據格式統一等也越來越完善和被肯定。而有一些大公司現在開始加入和推進HADOOP體序的升級,也正是印證了在這個行業不發展不改變面對結果將是直接被人們忽略掉的特點,且再不發展推進可能現有平臺的維護都可能后繼無人了,而如今還有人一在用hadoop體序的惟一原因是一些大公司有些數據積累,一直沿用這套平臺(有的還在沿用1.x的版本),而且大規模部署甚至在此基礎 上建云平臺和上層設施,而這一切變革意味著不僅是全套技術積累的廢棄而且有利益的隔舍。而你擋不住歷史的齒輪,這一切終將會到來!而還有些人說是因為JAVA語言的特點在使用hadoop,人員好找,這句話根本站不腳,真正用起hadoop系統的都 是用腳本做業務處理,沒人會為做一步etl寫一大堆java程序,而java對分步式數據集的處理并不善長,其次,從學習難度上來說,學java+hadoop一序列的框架,還有發展缺點和天花板,而學同樣一門JVM語言scala,一個spark框架 就能解決一序列的問題,且發展前境無限,結果顯然若見:1+n>1+1 
-  「其它子系統」如如web應用,可視化,爬蟲等常見數據開發輔助平臺這里就略了,據自己的實際場境如業務相關性,服務相關性和具體集群環境做選擇和架構調整 
-  這里值得一提的是「自動化管理」使用docker技術做研發測試生產部署的隔離,跌代,集成管理,研發過程管理或線上服務治理 ,自動化管理 ,和架構演進,加云平臺的一站式支持,這也是新一代CI,CD,DEVOS,微服務理念的趨勢,說到云平臺除國際知名AWS ALIYUN對容器不斷支持外,還有databricks,bluemix等知名數據服務商,國內容器云優秀的也有不少,像時速云等產品做的就不錯,思路和本地化方面做的非常好,是個不錯的選擇 
-  還有今天的主角兒新一代「大數據開發環境」spark notebook,與其它在線平臺比如databricks,bluemix等開源免費不說,和hue及python notebook開源產品比,除支持在線編輯sql,腳本執行,調試和日志收集回顯,markdown集成,各種頁面快捷等(這已經是傳統開發工具無法做到的,在線集群上調試運行代碼,免去分步式程序和算法模型,需打包發布提交集群,測試參數優化和算法改進后再打包發布等常見過程),而且直接集成SBT包管理,cell里命令管理linux系統,這還是輔助的,重點各種數據可視化組件直接調用還可以cell里自定義,(不僅不用回linux界面,連可視化都不需要學r,python,html5框架整合了),還有spark各個模塊的用例直接操作運行查看效果,還有多種內核版本集成,可在一平臺管理不同版本下的代碼和數據測試,而且有scala腳本md pdf等導出和運行進程及集群簡單狀況管理,還有運行job狀態,errlog,和chat room(這個偶然發現還沒試用過),惟一發現好像代碼提示不是太好用,不知是不是我的離線操作原因,還有如果再加腦圖,建模,制圖工具在集成的話這個就是一個簡潔版的dmp平臺了,呵呵 
-  關于部署和安裝請參照官網spark-notebook.io,提供多種集成版本選擇和tar,zip,gz和docker下載。如果你和我一樣是使用docker直接在官網里直接選好版本,一條docker run 命令bulild運行的話(官網說的是docker pull ,docker run 兩條命令5秒鐘搞定,you known 使用一條即可,實際情況可能國內網絡環境問題我下了三四次),后通過自帶各模塊的例子按幾下shift+enter,直接看到結果,文檔都無需查看直接上手,上面都是一時間試用總結。文檔也許在源碼包里吧,官網也沒有看到,只有版本選擇下載和提示他們在招人加入,好像還是個國內人主持開發或發啟參與 的,非常 不錯。在我的使用和體驗中非常流暢,相比其它產品有過之而無不極。至此如果說HUE和它集成監控還是你覺得在hadoop體序下值得留念和贊賞的話,此刻你可以說spark已經在各方面全面超越,好了,為了不讓多數人灰心和失望和引發無謂口水戰,加一句「個人觀點,僅供參考」!此博文的編寫及后續實戰都直接在spark notebook上實現,運行調試結果,日志輸出和展現效果都將借助他一目了然全然成顯,然 后在makedown導出原樣轉貼至blog。 如果 在這里使你感覺所幫助 或表示贊同的話,歡迎打賞,也歡迎留言回貼收藏轉載支持和指正,3Q。 
轉載于:https://my.oschina.net/hblt147/blog/817324
總結
以上是生活随笔為你收集整理的SPARK全栈 全流程 大数据实战 之 技术选型篇的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 阿里云的羊毛如何薅?创业者看过来!
- 下一篇: MySQL5.6忘记root用户名和密码
