1. 程式人生 > >想學習大數據卻搞不懂Hadoop?阿裏雲工程師帶你三步解讀Hadoop!

想學習大數據卻搞不懂Hadoop?阿裏雲工程師帶你三步解讀Hadoop!

大數 網易 挖掘 支持 文件存儲 規模 淘寶 階段 設計

一、什麽是Hadoop?

Google發表了兩篇論文:描述如何以分布式方式存儲海量數據的Google文件系統和描述如何處理大規模分布式數據的MapReduce:大型集群上的簡化數據處理。受這兩篇論文的啟發,DougCutting實現了這兩篇基於OSS(開源軟件)的論文的原則,Hadoop誕生了。

Hadoop是一個用於分布式存儲和處理大型數據的開源平臺。Hadoop作為一個大規模的分布式數據處理平臺,已經成為許多程序員的重要技能。

技術分享圖片

二、Hadoop能做什麽?

大數據時代已經到來,給我們的生活、工作和思維方式帶來了變化。如何在大數據背後尋找價值既是一個機遇也是一個挑戰。無論是財務數據,電子商務數據,社會數據,遊戲數據…這些數據的規模、結構和增長速度給傳統的數據存儲和處理技術帶來了巨大的挑戰。幸運的是,Hadoop的誕生和它所建立的生態系統為大型數據的存儲、處理和分析帶來了曙光。

無論是像谷歌、雅虎這樣的知名外國公司。微軟、亞馬遜、易趣、facebook、twitter、linkedin、cloudera、hortonworks等,或中國移動、阿裏巴巴、華為、騰訊、百度、網易、京東商城等國內知名企業,均采用Hadoop及相關技術解決大規模數據問題,以滿足公司需求。需求並創造商業價值。

例如:雅虎!垃圾郵件識別與過濾,用戶特征建模系統;亞馬遜(Amazon)協同過濾推薦系統;Facebook網絡日誌分析;Twitter、LinkedIn網絡搜索系統;淘寶商品推薦系統,淘寶在自定義過濾功能中搜索…這些應用程序使用Hadoop和相關技術。

“Hadoop能做什麽?”總結如下:

  • 1、搜索引擎:這是DougCutting的Hadoop設計的初衷,為了快速索引大型網頁;
  • 2、大數據存儲:利用Hadoop的分布式存儲能力,如數據備份、數據倉庫等。
  • 3、大數據處理:利用Hadoop的分布式處理能力,如數據挖掘、數據分析等。
  • 4、科學研究:Hadoop是一個分布式開源框架,對分布式系統有很大的參考價值。

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

技術分享圖片

三、具有Hadoop核心的分布式文件系統HDF

Hadoop分布式文件系統(HDFS)是Hadoop的核心模塊之一。它主要解決了Hadoop的大數據存儲問題,其思想來源是Google的文件系統gfs。HDF的主要特點是:

保存多個拷貝,並提供容錯機制,拷貝丟失或停機自動恢復。默認情況下保存三份副本,在廉價機器上運行。

適用於大數據處理。HDFS默認將文件分為塊,64M是塊。然後塊鍵值對存儲在HDFS上,鍵值對的映射存儲在內存中。如果有太多的小文件,內存負擔將很重。

HDF中的兩個重要角色:

  • 1、管理文件系統的命名空間。
  • 2、記錄每個數據節點上每個文件數據的位置和復制信息。
  • 3、協調客戶機對文件的訪問。
  • 4、記錄命名空間中的更改或空間的省屬性中的更改。
  • 5、namenode使用事務日誌記錄HDFS元數據中的更改。使用圖像文件存儲文件系統名稱空間,包括文件映射、文件屬性等。

從社會學角度看,namenode是hdfs的管理者,起著管理、協調和操縱的作用。

  • 1、負責物理節點的存儲管理。
  • 2、一次寫,多次讀(不做修改)。
  • 3、文件由數據庫組成。通常,數據塊的大小為64MB。
  • 4、數據盡可能地移動到每個節點。

從社會學的角度來看,datanode是hdfs的工作人員。它根據namenode的命令工作,並將工作進度和問題反饋給namenode。

技術分享圖片

客戶機如何訪問HDFS中的文件?具體流程如下:

  • 1、首先,從namenode獲取組成文件的數據塊的位置列表。
  • 2、接下來,我們知道根據位置列表存儲數據塊的數據節點。
  • 3、最後,訪問datanode獲取數據。
  • 註:名稱節點不參與數據的實際傳輸。

在數據存儲系統中,數據存儲的可靠性是非常重要的。HDFS如何保證其可靠性?主要采用以下機制:

  • 1、冗余復制策略,即所有數據都有副本,副本數量可以在hdfs-site.xml復制因子中設置。
  • 2、機架策略,即HDFS的“機架感知”,通常在機架中存儲一份拷貝,在其他機架中存儲其他拷貝,這樣可以防止機架故障時數據丟失,並提供帶寬利用率。
  • 3、心跳機制,也就是說,namenode定期從datanode接收心跳信號和快速報告,不能按時發送心跳的datanode將被標記為停機,不會給出任何I/O請求。如果由於數據節點的故障而導致副本數量減少,並且低於預先設置的閾值,則namenode將檢測這些數據塊並在適當的時間復制它們。
  • 4、安全模式,名稱節點啟動時將進入“安全模式”階段。
  • 5、校驗和。客戶端通過校驗和獲取數據,發現數據塊是否損壞,從而判斷是否讀取拷貝。
  • 6、“回收站”,刪除文件,將首先轉到“回收站/垃圾箱”,它可以快速響應文件。
  • 7、元數據保護、鏡像文件和事務日誌是名稱節點的核心數據,可以配置為多個副本。
  • 8、快照支持在某個時間點存儲圖像,它允許 數據在需要時返回到該時間點的狀態。

想學習大數據卻搞不懂Hadoop?阿裏雲工程師帶你三步解讀Hadoop!