1. 程式人生 > >為什麼大資料工程師一定要學習Hadoop

為什麼大資料工程師一定要學習Hadoop

大資料就是多,就是多。原來的裝置存不下、算不動。 ————啪菠蘿·畢加索

當前是個人、是個公司都在說自己搞大資料,每天沒有幾個PB的資料入庫,每天沒有幾個TB的分析資料產出敢說自己是大資料?乘著大資料噱頭之風,我們還是要看一下大資料所運用的工具對於我們是否有用,當我們目前日資料產生量在10W級別時,借鑑當前分散式資料庫的經驗,採用Hbase叢集,Hadoop作為hbase的基礎,被提到首要位置做研究。

Hadoop是什麼

Hadoop是一個由Apache基金會所開發的分散式系統基礎架構。使用者可以在不瞭解分散式底層細節的情況下,開發分散式程式。充分利用叢集的威力進行高速運算和儲存。Hadoop實現了一個分散式檔案系統(Hadoop Distributed File System),簡稱HDFS。HDFS有高容錯性的特點,並且設計用來部署在低廉的(low-cost)硬體上;而且它提供高吞吐量(high throughput)來訪問應用程式的資料,適合那些有著超大資料集(large data set)的應用程式。HDFS放寬了(relax)POSIX的要求,可以以流的形式訪問(streaming access)檔案系統中的資料。

 

很多初學者,對大資料的概念都是模糊不清的,大資料是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大資料學習qq群:199427210,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大資料講師給大家免費授課,給大家分享目前國內最完整的大資料高階實戰實用學習流程體系
 

為什麼大資料工程師一定要學習Hadoop

 

Hadoop核心

Hadoop的核心就是HDFS和MapReduce,而兩者只是理論基礎,不是具體可使用的高階應用,Hadoop旗下有很多經典子專案,比如HBase、Hive等,這些都是基於HDFS和MapReduce發展出來的。要想了解Hadoop,就必須知道HDFS和MapReduce是什麼?

HDFS: 為海量的資料提供了儲存

MapReduce:為海量的資料提供了計算

HDFS

為什麼大資料工程師一定要學習Hadoop

 

HDFS(Hadoop Distributed File System,Hadoop分散式檔案系統),它是一個高度容錯性的系統,適合部署在廉價的機器上。HDFS能提供高吞吐量的資料訪問,適合那些有著超大資料集(large data set)的應用程式。

HDFS的設計特點是:

1、大資料檔案

2、檔案分塊儲存

3、流式資料訪問

4、廉價硬體

5、硬體故障

HDFS的關鍵元素:

Block:將一個檔案進行分塊,通常是64M。

NameNode:儲存整個檔案系統的目錄資訊、檔案資訊及分塊資訊,這是由唯一一臺主機專門儲存,當然這臺主機如果出錯,NameNode就失效了。在Hadoop2.*開始支援activity-standy模式----如果主NameNode失效,啟動備用主機執行NameNode。

DataNode:分佈在廉價的計算機上,用於儲存Block塊檔案。

MapReduce"Map(對映)"和"Reduce(歸約)":一套從海量源資料提取分析元素最後返回結果集的程式設計模型,將檔案分散式儲存到硬碟是第一步,而從海量資料中提取分析我們需要的內容就是MapReduce做的事。

適用場景

下圖為京東的北斗系統架構圖

為什麼大資料工程師一定要學習Hadoop

 

hadoop擅長離線日誌分析,facebook就用Hive來進行日誌分析,2009年時facebook就有非程式設計人員的30%的人使用HiveQL進行資料分析;淘寶搜尋中的自定義篩選也使用的Hive;利用Pig還可以做高階的資料處理,包括Twitter、LinkedIn上用於發現您可能認識的人,可以實現類似Amazon.com的協同過濾的推薦效果。淘寶的商品推薦也是!在Yahoo!的40%的Hadoop作業是用pig執行的,包括垃圾郵件的識別和過濾,還有使