天天看點

大資料入門幹貨

  首先,提及大資料一詞的概念。大資料本質還在于資料,但是它有着新的特征亮點。包括:資料來源廣,資料格式多樣化(結構化資料、非結構化資料、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等:通過對存儲的資料進行預處理,加快運算速度的工具。