我們來認識一下hadoop

hadoop三連問

一、什麼是hadoop?

1.hadoop誕生背景

這裏我們要從一款搜索引擎技術Nutch的誕生說起。Nutch 是2002年8月由Doug Cutting發起,託管於Sourceforge,Nutch的誕生主要是致力於讓每個人能更容易, 同時花費很少就可以配置出世界一流的Web搜索引擎。 而爲了完成這一宏偉的目標, Nutch必須能夠做到:

* 每個月取幾十億網頁
* 爲這些網頁維護一個索引
* 對索引文件進行每秒上千次的搜索
* 提供高質量的搜索結果

上面參考自百度百科

隨着抓取網頁數量的持續遞增,Nutch遇到了嚴重的可擴展性問題,即如何解決數十億網頁的存儲和索引。2003年、2004年穀歌發表的兩篇論文爲該問題提供了可行的解決方案。方案主要包含:

分佈式文件系統(GFS),可用於處理海量網頁的存儲
分佈式計算框架MAPREDUCE,可用於處理海量網頁的索引計算問題。

這也是hadoop的核心模型思路,而後2004年Nutch的開發人員完成了相應的開源實現HDFS和MapReduce,並從Nutch中剝離成爲獨立項目hadoop,hadoop誕生。到2008年,hadoop成爲Apache頂級項目。

2.hadoop能做什麼

hadoop是一種分析和處理大數據的軟件平臺。hadoop的最核心設計就是:HDFS和MapReduce。HDFS爲海量的數據提供了存儲,MapReduce爲海量的數據提供了計算。

3.hadoop的核心特性

* 擴容能力(Scalable):hadoop是在可用的計算機集羣間分配數據並完成計算任務的,這些集羣可用方便的擴展到數以千計個節點中。

* 成本低(Economical):hadoop通過普通廉價的機器組成服務器集羣來分發以及處理數據,以至於成本很低。

* 高效率(Efficient):通過併發數據,hadoop可以在節點之間動態並行的移動數據,使得速度非常快。

* 可靠性(Rellable):能自動維護數據的多份複製,並且在任務失敗後能自動地重新部署(redeploy)計算任務。所以hadoop的按位存儲和處理數據的能力值得人們信賴。

4.hadoop的核心組件

4.1 hadoop Common:支持其他hadoop模塊的常用工具。

4.2 hadoop分佈式文件系統(HDFS™):一種分佈式文件系統,可提供對應用程序數據的高吞吐量訪問。

4.3 hadoop YARN:作業調度和集羣資源管理的框架。

4.4 hadoop MapReduce:一種用於並行處理大型數據集的基於YARN的系統。

二、hadoop有哪些應用場景?

2012年美國著名科技博客GigaOM的專欄作家Derrick Harris跟蹤雲計算和Hadoop技術已有多年時間,在一篇文章中總結了10個Hadoop的應用場景,下面分享給大家:

1.在線旅遊:

目前全球範圍內80%的在線旅遊網站都是在使用Cloudera公司提供的Hadoop發行版,其中SearchBI網站曾經報道過的Expedia也在其中。

2.移動數據:

Cloudera運營總監稱,美國有70%的智能手機數據服務背後都是由Hadoop來支撐的,也就是說,包括數據的存儲以及無線運營商的數據處理等,都是在利用Hadoop技術。

3.電子商務:

這一場景應該是非常確定的,eBay就是最大的實踐者之一。國內的電商在Hadoop技術上也是儲備頗爲雄厚的。

4.能源開採:

美國Chevron公司是全美第二大石油公司,他們的IT部門主管介紹了Chevron使用Hadoop的經驗,他們利用Hadoop進行數據的收集和處理,其中這些數據是海洋的地震數據,以便於他們找到油礦的位置。

5.節能:

另外一家能源服務商Opower也在使用Hadoop,爲消費者提供節約電費的服務,其中對用戶電費單進行了預測分析。

6.基礎架構管理:

這是一個非常基礎的應用場景,用戶可以用Hadoop從服務器、交換機以及其他的設備中收集並分析數據。

7.圖像處理:

創業公司Skybox Imaging使用Hadoop來存儲並處理圖片數據,從衛星中拍攝的高清圖像中探測地理變化。

8.詐騙檢測:

這個場景用戶接觸的比較少,一般金融服務或者政府機構會用到。利用Hadoop來存儲所有的客戶交易數據,包括一些非結構化的數據,能夠幫助機構發現客戶的異常活動,預防欺詐行爲。

9.IT安全:

除企業IT基礎機構的管理之外,Hadoop還可以用來處理機器生成數據以便甄別來自惡意軟件或者網絡中的攻擊。

10.醫療保健:

醫療行業也會用到Hadoop,像IBM的Watson就會使用Hadoop集羣作爲其服務的基礎,包括語義分析等高級分析技術等。醫療機構可以利用語義分析爲患者提供醫護人員,並協助醫生更好地爲患者進行診斷。

摘自:10個hadoop應用場景

三、學習hadoop後應該具備哪些能力?

1.hadoop分佈式集羣的平臺搭建

2.hadoop分佈式文件系統HDFS的原理理解及使用

3.hadoop分佈式運算框架MapReduce的原理理解及編程

4.Hive數據倉庫工具的熟練應用

5.Flume、sqoop、oozie等輔助工具的熟練使用

6.Shell/python等腳本語言的開發能力

附:HDFS運行原理

1、NameNode和DataNode節點初始化完成後,採用RPC進行信息交換,採用心跳機制,即DataNode節點定時向NameNode反饋狀態信息,反饋信息如:是否正常、磁盤空間大小、資源消耗情況等信息,以確保NameNode知道DataNode的情況;

2、NameNode會將子節點的相關元數據信息緩存在內存中,對於文件與Block塊的信息會通過fsImage和edits文件方式持久化在磁盤上,以確保NameNode知道文件各個塊的相關信息;

3、NameNode負責存儲fsImage和edits元數據信息,但fsImage和edits元數據文件需要定期進行合併,這時則由SecondNameNode進程對fsImage和edits文件進行定期合併,合併好的文件再交給NameNode存儲。

注:文章內容整理自網絡,算是個人學習筆記,僅做記錄整理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章