好程式設計師分享自學大資料入門乾貨

好程式設計師IT發表於2019-05-27

  首先,提及大資料一詞的概念。大資料本質還在於資料,但是它有著新的特徵亮點。包括:資料來源廣,資料格式多樣化(結構化資料、非結構化資料、Excel檔案、文字檔案等)、資料量大(最少也是TB級別的、甚至可能是PB級別)、資料增長速度快等等。


  擴充套件講大資料的4個基本特徵,我們將進行下面額思考:


1.資料來源廣?


  廣泛的資料來源從何而來,透過何種方式進行採集與彙總?相對應的我們出現Sqoop,


Cammel,Datax等工具。


2.資料採集之後,該如何儲存?


  採集之後,為了方便儲存,我們對應的出現了GFS,HDFS,TFS等分散式檔案儲存系統。


  並且,介於資料的增長速度非常之快,這也就要求我們,資料儲存必須可以進行水平擴充套件。


3.資料儲存之後,該如何透過運算快速轉化成一致的格式,又該如何快速運算出自己想要的結果?


  對此,MapReduce的分散式運算框架提出瞭解決方案。但是由於MapReduce需要java的程式設計程式碼較多,由此,又出現了Hive,Pig等將SQL轉化成MapReduce的解析引擎;再有,因普通的MapReduce只能一批一批地批次處理資料,時間消耗過多,最終目的又要求我們輸入的一條資料就能得到結果,於是又出現了Storm/JStorm這樣的低時延的流式計算框架;但是如果同時需要批處理和流處理,按照如上就得搭兩個叢集,Hadoop叢集(包括HDFS+MapReduce+Yarn)和Storm叢集,不易於管理,所以出現了Spark這樣的一站式的計算框架,既可以進行批處理,又可以進行流處理(實質上是微批處理)。而後Lambda架構,Kappa架構的出現,又提供了一種業務處理的通用架構。


4.此外,為了提高工作效率,加快運速度,出現了一些輔助工具:


Ozzie,azkaban:定時任務排程的工具。


Hue,Zepplin:圖形化任務執行管理,結果檢視工具。


Scala語言:編寫Spark程式的最佳語言,當然也可以選擇用Python。


Python語言:編寫一些指令碼時會用到。


Allluxio,Kylin等:透過對儲存的資料進行預處理,加快運算速度的工具。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2645735/,如需轉載,請註明出處,否則將追究法律責任。

相關文章