Hadoop入門

姓名:穆培婷

學號:17101223414

專業(yè):軟件工程

本文轉載自:http://www.cnblogs.com/yinghun/p/6228648.html

【嵌牛導讀】:Hadoop是一個開發(fā)和運行處理大規(guī)模數據的軟件平臺,是Appach的一個用Java語言實現開源軟件框架,實現在大量計算機組成的集群中對海量數據進行分布式計算.

【嵌牛鼻子】:Hadoop? 分布式計算 ? 并行

【嵌牛提問】:Hadoop是什么?

【嵌牛正文】:

Hadoop是什么?

Hadoop是一個開發(fā)和運行處理大規(guī)模數據的軟件平臺,是Appach的一個用Java語言實現開源軟件框架,實現在大量計算機組成的集群中對海量數據進行分布式計算.

Hadoop框架中最核心設計就是:HDFS和MapReduce.HDFS提供了海量數據的存儲,MapReduce提供了對數據的計算.

Hadoop的優(yōu)點

Hadoop是一個能夠對大量數據進行分布式處理的軟件框架。 Hadoop 以一種可靠、高效、可伸縮的方式進行數據處理。

Hadoop是可靠的,因為它假設計算元素和存儲會失敗,因此它維護多個工作數據副本,確保能夠針對失敗的節(jié)點重新分布處理。

Hadoop是高效的,因為它以并行的方式工作,通過并行處理加快處理速度。

Hadoop是可伸縮的,能夠處理 PB 級數據。

此外,Hadoop 依賴于社區(qū)服務,因此它的成本比較低,任何人都可以使用。

Hadoop是一個能夠讓用戶輕松架構和使用的分布式計算平臺。用戶可以輕松地在Hadoop上開發(fā)和運行處理海量數據的應用程序。它主要有以下幾個優(yōu)點:

高可靠性:Hadoop按位存儲和處理數據的能力值得人們信賴。

高擴展性:Hadoop是在可用的計算機集簇間分配數據并完成計算任務的,這些集簇可以方便地擴展到數以千計的節(jié)點中

高效性:Hadoop能夠在節(jié)點之間動態(tài)地移動數據,并保證各個節(jié)點的動態(tài)平衡,因此處理速度非常快。

高容錯性:Hadoop能夠自動保存數據的多個副本,并且能夠自動將失敗的任務重新分配。

低成本:與一體機、商用數據倉庫以及QlikView、Yonghong Z-Suite等數據集市相比,hadoop是開源的,項目的軟件成本因此會大大降低。

Hadoop核心架構

Hadoop

由許多元素構成。其最底部是 Hadoop Distributed File System(HDFS),它存儲 Hadoop

集群中所有存儲節(jié)點上的文件。HDFS的上一層是MapReduce 引擎,該引擎由 JobTrackers 和 TaskTrackers

組成。通過對Hadoop分布式計算平臺最核心的分布式文件系統(tǒng)HDFS、MapReduce處理過程,以及數據倉庫工具Hive和分布式數據庫Hbase的介紹,基本涵蓋了Hadoop分布式平臺的所有技術核心。

HDFS

對外部客戶機而言,HDFS就像一個傳統(tǒng)的分級文件系統(tǒng)。可以創(chuàng)建、刪除、移動或重命名文件,等等。但是

HDFS 的架構是基于一組特定的節(jié)點構建的(參見圖 1),這是由它自身的特點決定的。這些節(jié)點包括 NameNode(僅一個),它在 HDFS

內部提供元數據服務;DataNode,它為 HDFS 提供存儲塊。由于僅存在一個 NameNode,因此這是 HDFS 的一個缺點(單點失?。?/p>

存儲在

HDFS 中的文件被分成塊,然后將這些塊復制到多個計算機中(DataNode)。這與傳統(tǒng)的 RAID 架構大不相同。塊的大?。ㄍǔ?/p>

64MB)和復制的塊數量在創(chuàng)建文件時由客戶機決定。NameNode 可以控制所有文件操作。HDFS 內部的所有通信都基于標準的 TCP/IP

協(xié)議。

NameNode

NameNode

是一個通常在 HDFS 實例中的單獨機器上運行的軟件。它負責管理文件系統(tǒng)名稱空間和控制外部客戶機的訪問。NameNode 決定是否將文件映射到

DataNode 上的復制塊上。對于最常見的 3

個復制塊,第一個復制塊存儲在同一機架的不同節(jié)點上,最后一個復制塊存儲在不同機架的某個節(jié)點上。注意,這里需要您了解集群架構。

實際的

I/O事務并沒有經過 NameNode,只有表示 DataNode 和塊的文件映射的元數據經過

NameNode。當外部客戶機發(fā)送請求要求創(chuàng)建文件時,NameNode 會以塊標識和該塊的第一個副本的 DataNode IP

地址作為響應。這個 NameNode 還會通知其他將要接收該塊的副本的 DataNode。

NameNode

在一個稱為 FsImage 的文件中存儲所有關于文件系統(tǒng)名稱空間的信息。這個文件和一個包含所有事務的記錄文件(這里是 EditLog)將存儲在

NameNode 的本地文件系統(tǒng)上。FsImage 和 EditLog 文件也需要復制副本,以防文件損壞或 NameNode 系統(tǒng)丟失。

NameNode本身不可避免地具有SPOF(Single Point Of Failure)單點失效的風險,主備模式并不能解決這個問題,通過Hadoop Non-stop namenode才能實現100% uptime可用時間。

DataNode

DataNode

也是一個通常在 HDFS實例中的單獨機器上運行的軟件。Hadoop 集群包含一個 NameNode 和大量 DataNode。DataNode

通常以機架的形式組織,機架通過一個交換機將所有系統(tǒng)連接起來。Hadoop 的一個假設是:機架內部節(jié)點之間的傳輸速度快于機架間節(jié)點的傳輸速度。

DataNode

響應來自 HDFS 客戶機的讀寫請求。它們還響應來自 NameNode 的創(chuàng)建、刪除和復制塊的命令。NameNode 依賴來自每個

DataNode 的定期心跳(heartbeat)消息。每條消息都包含一個塊報告,NameNode

可以根據這個報告驗證塊映射和其他文件系統(tǒng)元數據。如果 DataNode 不能發(fā)送心跳消息,NameNode

將采取修復措施,重新復制在該節(jié)點上丟失的塊。

MapReduce

在Hadoop中,一個MapReduce作業(yè)通常會把輸入的數據集切分為若干獨立的數據塊,由Map任務以完全并行的方式去處理它們??蚣軙ap的輸出先進行排序,然后把結果輸入給Reduce任務。通常作業(yè)的輸入和輸出都會被存儲在文件系統(tǒng)中,整個框架負責任務的調度和監(jiān)控,以及重新執(zhí)行已經關閉的任務。

通常,MapReduce框架和分布式文件系統(tǒng)是運行在一組相同的節(jié)點上,也就是說,計算節(jié)點和存儲節(jié)點通常都是在一起的。這種配置允許框架在那些已經存好數據的節(jié)點上高效地調度任務,這可以使得整個集群的網絡帶寬被非常高效地利用。

JobTracker

JobTracker是一個master服務,軟件啟動之后JobTracker接收Job,負責調度Job的每一個子任務task運行于TaskTracker上,并監(jiān)控它們,如果發(fā)現有失敗的task就重新運行它。一般情況應該把JobTracker部署在單獨的機器上。

TaskTracker

TaskTracker是運行在多個節(jié)點上的slaver服務。TaskTracker主動與JobTracker通信,接收作業(yè),并負責直接執(zhí)行每一個任務,而且TaskTracker都需要運行在HDFS的DataNode上。

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • HDFS的體系結構 設計目標 自動快速檢測應對硬件錯誤 流式訪問數據 轉移計算本身比轉移數據更加劃算 簡單的數據一...
    Spike_3154閱讀 971評論 0 2
  • 首先,我們在使用前先看看HDFS是什麼?這將有助于我們是以后的運維使用和故障排除思路的獲得。 HDFS采用mast...
    W_Bousquet閱讀 4,455評論 0 2
  • 1.hadoop是什么? 一個適合大數據的分布式存儲和計算平臺. 是一個平臺,分布式的存儲和分布式的計算,在平臺之...
    君滿樓001閱讀 435評論 0 3
  • 我想天真無邪的笑,我想無憂無慮的跑,我也想每天不考慮那么多,我也想做個簡單的女孩子。 然而事實并非如此。 和男友分...
    禾子小斤欠閱讀 537評論 2 0
  • 520后第一次電話打給我。
    Sherrinie閱讀 250評論 0 0

友情鏈接更多精彩內容