大數據爲什麼這麼火?爲什麼那麼多人轉型?

 

做爲一名大數據新手,應該通過這篇文章瞭解大數據

 

一、大數據是什麼?

大數據,big data,《大數據》一書對大數據這麼定義,大數據是指不能用隨機分析法(抽樣調查)這樣捷徑,而採用所有數據進行分析處理。

這句話至少傳遞兩種信息:

1、大數據是海量的數據

2、大數據處理無捷徑,對分析處理技術提出了更高的要求

 

在這裏還是要推薦下我自己建的大數據學習交流羣:199427210,羣裏都是學大數據開發的,如果你正在學習大數據 ,小編歡迎你加入,大家都是軟件開發黨,不定期分享乾貨(只有大數據軟件開發相關的),包括我自己整理的一份最新的大數據進階資料和高級開發教程,歡迎進階中和進想深入大數據的小夥伴加入。

二、大數據的處理流程

下圖是數據處理流程:

做爲一名大數據新手,應該通過這篇文章瞭解大數據

 

1、底層是數以千億計的數據源,數據源可以是SCM(供應鏈數據),4PL(物流數據),CRM(客戶數據),網站日誌以及其他的數據

2、第二層是數據加工層,數據工程師對數據源按照標準的統計口徑和指標對數據進行抽取、清洗、轉化、裝載(整個過程簡稱ELT)

3、第三層是數據倉庫,加工後的數據流入數據倉庫,進行整合和存儲,形成一個又一個數據集市。

數據集市,指分類存儲數據的集合,即按照不同部門或用戶的需求存儲數據。

4、第四層是BI(商業智能),按照業務需求,對數據進行分析建模、挖掘、運算,輸出統一的數據分析平臺

5、第五層是數據訪問層,對不同的需求方開放不同的數據角色和權限,以數據驅動業務。

大數據的量級,決定了大數據處理及應用的難度,需要利用特定的技術工具去處理大數據。

三、大數據處理技術

以最常使用的Hadoop爲例:

Hadoop是Apache公司開發的一個開源框架,它允許在整個集羣使用簡單編程模型計算機的分佈式環境存儲並處理大數據。

集羣是指,2臺或2臺以上服務器構建節點,提供數據服務。單臺服務器,無法處理海量的大數據。服務器越多,集羣的威力越大。

Hadoop類似於一個數據生態圈,不同的模塊各司其職。下圖是Hadoop官網的生態圖。

做爲一名大數據新手,應該通過這篇文章瞭解大數據

 

Hadoop的LOGO是一隻靈活的大象。關於LOGO的來源,網上衆說紛紜,有人說,是因爲大象象徵龐然大物,指代大數據,Hadoop讓大數據變得靈活。而官方蓋章,LOGO來源於創始人Doug Cutting的孩子曾爲一個大象玩具取名hadoop。

從上圖可以看出,Hadoop的核心是HDFS,YARN和Map Reduce,下面和大家講一講,幾個主要模塊的含義和功能。

1、HDFS(分佈式文件存儲系統)

數據以塊的形式,分佈在集羣的不同節點。在使用HDFS時,無需關心數據是存儲在哪個節點上、或者是從哪個節點從獲取的,只需像使用本地文件系統一樣管理和存儲文件系統中的數據。

2、Map Reduce(分佈式計算框架)

分佈式計算框架將複雜的數據集分發給不同的節點去操作,每個節點會週期性的返回它所完成的工作和最新的狀態。大家可以結合下圖理解Map Reduce原理:

做爲一名大數據新手,應該通過這篇文章瞭解大數據

 

計算機要對輸入的單詞進行計數:

如果採用集中式計算方式,我們要先算出一個單詞如Deer出現了多少次,再算另一個單詞出現了多少次,直到所有單詞統計完畢,將浪費大量的時間和資源。

如果採用分佈式計算方式,計算將變得高效。我們將數據隨機分配給三個節點,由節點去分別統計各自處理的數據中單詞出現的次數,再將相同的單詞進行聚合,輸出最後的結果。

3、YARN(資源調度器)

相當於電腦的任務管理器,對資源進行管理和調度。

4、HBASE(分佈式數據庫)

HBase是非關係型數據庫(Nosql),在某些業務場景下,數據存儲查詢在Hbase的使用效率更高。

關於關係型數據庫和菲關係型數據庫的區別,會在以後的文章進行詳述。

5、HIVE(數據倉庫)

HIVE是基於Hadoop的一個數據倉庫工具,可以用SQL的語言轉化成Map Reduce任務對hdfs數據的查詢分析。HIVE的好處在於,使用者無需寫Map Reduce任務,只需要掌握SQL即可完成查詢分析工作。

6、 Spark(大數據計算引擎)

Spark是專爲大規模數據處理而設計的快速通用的計算引擎

7、Mahout(機器學習挖掘庫)

Mahout是一個可擴展的機器學習和數據挖掘庫

8、Sqoop

Sqoop可以將關係型數據庫導入Hadoop的HDFS中,也可以將HDFS的數據導進到關係型數據庫中

除上述模塊外,Hadoop還有Zookeeper、Chukwa等多種模塊,因爲是開源的,所以未來還有出現更多更高效的模塊,大家感興趣可以上網瞭解。

通過Hadoop強大的生態圈,完成大數據處理流程。

談起零基礎學習大數據,有幾點建議,先給大家說一下:雖然大數據的前景讓我們爲之着迷,但一定不要被金錢矇蔽了雙眼。大數據說實話,真的是一門複雜枯燥的技術,沒有很深的興趣愛好,很少有堅持下來的。大數據,不高深,但也不簡單;不難學,但也需要時間和耐心。在學習大數據之前,一定要堅定自己的信念,不要趨之若鶩。畢竟學習這個東西,自己的選擇才更重要。

零基礎學習大數據,本來就是一件很難的事情,所有一定要比別人多付出努力,不然是跟不上學習的節奏的。雖然時代追求的是快節奏生活,快節奏學習,但也要在自己能接受的範圍內加快速度,而不是丟了西瓜撿了芝麻。

零基礎大數據需要掌握java編程技術、hadoop 、spark、storm開發、hive 數據庫、Linux 操作系統等知識,學習分佈式存儲、分佈式計算框架等技術,熟悉大數據處理和分析技術。