成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何使用Linux、Hadoop進(jìn)行分布式計(jì)算

運(yùn)維 系統(tǒng)運(yùn)維 分布式 Hadoop
Hadoop 的一個(gè)應(yīng)用是并行索引 Internet Web 頁面。Hadoop 是一個(gè)受到 Yahoo!、Google 和 IBM 等公司支持的 Apache 項(xiàng)目。本文將介紹 Hadoop 框架,并展示它為什么是最重要的基于 Linux® 的分布式計(jì)算框架之一。

Hadoop 由 Apache Software Foundation 公司于 2005 年秋天作為 Lucene 的子項(xiàng)目 Nutch 的一部分正式引入。它受到最先由 Google Lab 開發(fā)的 MapReduce 和 Google File System 的啟發(fā)。2006 年 3 月份,MapReduce 和 Nutch Distributed File System (NDFS) 分別被納入稱為 Hadoop 的項(xiàng)目中。

Hadoop 是最受歡迎的在 Internet 上對(duì)搜索關(guān)鍵字進(jìn)行內(nèi)容分類的工具,但它也可以解決許多要求極大伸縮性的問題。例如,如果您要 grep 一個(gè) 10TB 的巨型文件,會(huì)出現(xiàn)什么情況?在傳統(tǒng)的系統(tǒng)上,這將需要很長的時(shí)間。但是 Hadoop 在設(shè)計(jì)時(shí)就考慮到這些問題,因此能大大提高效率。

先決條件

Hadoop 是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架。但是 Hadoop 是以一種可靠、高效、可伸縮的方式進(jìn)行處理的。Hadoop 是可靠的,因?yàn)樗僭O(shè)計(jì)算元素和存儲(chǔ)會(huì)失敗,因此它維護(hù)多個(gè)工作數(shù)據(jù)副本,確保能夠針對(duì)失敗的節(jié)點(diǎn)重新分布處理。Hadoop 是高效的,因?yàn)樗圆⑿械姆绞焦ぷ鳎ㄟ^并行處理加快處理速度。Hadoop 還是可伸縮的,能夠處理 PB 級(jí)數(shù)據(jù)。此外,Hadoop 依賴于社區(qū)服務(wù)器,因此它的成本比較低,任何人都可以使用。

您可能已經(jīng)想到,Hadoop 運(yùn)行在 Linux 生產(chǎn)平臺(tái)上是非常理想的,因?yàn)樗鼛в杏?Java? 語言編寫的框架。Hadoop 上的應(yīng)用程序也可以使用其他語言編寫,比如 C++。

Hadoop 架構(gòu)

Hadoop 有許多元素構(gòu)成。最底部是 Hadoop Distributed File System(HDFS),它存儲(chǔ) Hadoop 集群中所有存儲(chǔ)節(jié)點(diǎn)上的文件。HDFS(對(duì)于本文)的上一層是 MapReduce 引擎,該引擎由 JobTrackers 和 TaskTrackers 組成。

HDFS

對(duì)外部客戶機(jī)而言,HDFS 就像一個(gè)傳統(tǒng)的分級(jí)文件系統(tǒng)。可以創(chuàng)建、刪除、移動(dòng)或重命名文件,等等。但是 HDFS 的架構(gòu)是基于一組特定的節(jié)點(diǎn)構(gòu)建的(參見圖 1),這是由它自身的特點(diǎn)決定的。這些節(jié)點(diǎn)包括 NameNode(僅一個(gè)),它在 HDFS 內(nèi)部提供元數(shù)據(jù)服務(wù);DataNode,它為 HDFS 提供存儲(chǔ)塊。由于僅存在一個(gè) NameNode,因此這是 HDFS 的一個(gè)缺點(diǎn)(單點(diǎn)失敗)。

點(diǎn)擊放大圖片

圖 1. Hadoop 集群的簡化視圖

存儲(chǔ)在 HDFS 中的文件被分成塊,然后將這些塊復(fù)制到多個(gè)計(jì)算機(jī)中(DataNode)。這與傳統(tǒng)的 RAID 架構(gòu)大不相同。塊的大小(通常為 64MB)和復(fù)制的塊數(shù)量在創(chuàng)建文件時(shí)由客戶機(jī)決定。NameNode 可以控制所有文件操作。HDFS 內(nèi)部的所有通信都基于標(biāo)準(zhǔn)的 TCP/IP 協(xié)議。

NameNode

NameNode 是一個(gè)通常在 HDFS 實(shí)例中的單獨(dú)機(jī)器上運(yùn)行的軟件。它負(fù)責(zé)管理文件系統(tǒng)名稱空間和控制外部客戶機(jī)的訪問。NameNode 決定是否將文件映射到 DataNode 上的復(fù)制塊上。對(duì)于最常見的 3 個(gè)復(fù)制塊,第一個(gè)復(fù)制塊存儲(chǔ)在同一機(jī)架的不同節(jié)點(diǎn)上,最后一個(gè)復(fù)制塊存儲(chǔ)在不同機(jī)架的某個(gè)節(jié)點(diǎn)上。注意,這里需要您了解集群架構(gòu)。

實(shí)際的 I/O 事務(wù)并沒有經(jīng)過 NameNode,只有表示 DataNode 和塊的文件映射的元數(shù)據(jù)經(jīng)過 NameNode。當(dāng)外部客戶機(jī)發(fā)送請(qǐng)求要求創(chuàng)建文件時(shí),NameNode 會(huì)以塊標(biāo)識(shí)和該塊的第一個(gè)副本的 DataNode IP 地址作為響應(yīng)。這個(gè) NameNode 還會(huì)通知其他將要接收該塊的副本的 DataNode。

NameNode 在一個(gè)稱為 FsImage 的文件中存儲(chǔ)所有關(guān)于文件系統(tǒng)名稱空間的信息。這個(gè)文件和一個(gè)包含所有事務(wù)的記錄文件(這里是 EditLog)將存儲(chǔ)在 NameNode 的本地文件系統(tǒng)上。FsImage 和 EditLog 文件也需要復(fù)制副本,以防文件損壞或 NameNode 系統(tǒng)丟失。

DataNode

NameNode 也是一個(gè)通常在 HDFS 實(shí)例中的單獨(dú)機(jī)器上運(yùn)行的軟件。Hadoop 集群包含一個(gè) NameNode 和大量 DataNode。DataNode 通常以機(jī)架的形式組織,機(jī)架通過一個(gè)交換機(jī)將所有系統(tǒng)連接起來。Hadoop 的一個(gè)假設(shè)是:機(jī)架內(nèi)部節(jié)點(diǎn)之間的傳輸速度快于機(jī)架間節(jié)點(diǎn)的傳輸速度。

DataNode 響應(yīng)來自 HDFS 客戶機(jī)的讀寫請(qǐng)求。它們還響應(yīng)創(chuàng)建、刪除和復(fù)制來自 NameNode 的塊的命令。NameNode 依賴來自每個(gè) DataNode 的定期心跳(heartbeat)消息。每條消息都包含一個(gè)塊報(bào)告,NameNode 可以根據(jù)這個(gè)報(bào)告驗(yàn)證塊映射和其他文件系統(tǒng)元數(shù)據(jù)。如果 DataNode 不能發(fā)送心跳消息,NameNode 將采取修復(fù)措施,重新復(fù)制在該節(jié)點(diǎn)上丟失的塊。#p#

文件操作

可見,HDFS 并不是一個(gè)萬能的文件系統(tǒng)。它的主要目的是支持以流的形式訪問寫入的大型文件。如果客戶機(jī)想將文件寫到 HDFS 上,首先需要將該文件緩存到本地的臨時(shí)存儲(chǔ)。如果緩存的數(shù)據(jù)大于所需的 HDFS 塊大小,創(chuàng)建文件的請(qǐng)求將發(fā)送給 NameNode。NameNode 將以 DataNode 標(biāo)識(shí)和目標(biāo)塊響應(yīng)客戶機(jī)。同時(shí)也通知將要保存文件塊副本的 DataNode。當(dāng)客戶機(jī)開始將臨時(shí)文件發(fā)送給第一個(gè) DataNode 時(shí),將立即通過管道方式將塊內(nèi)容轉(zhuǎn)發(fā)給副本 DataNode。客戶機(jī)也負(fù)責(zé)創(chuàng)建保存在相同 HDFS 名稱空間中的校驗(yàn)和(checksum)文件。在最后的文件塊發(fā)送之后,NameNode 將文件創(chuàng)建提交到它的持久化元數(shù)據(jù)存儲(chǔ)(在 EditLog 和 FsImage 文件)。

Linux 集群

Hadoop 框架可在單一的 Linux 平臺(tái)上使用(開發(fā)和調(diào)試時(shí)),但是使用存放在機(jī)架上的商業(yè)服務(wù)器才能發(fā)揮它的力量。這些機(jī)架組成一個(gè) Hadoop 集群。它通過集群拓?fù)渲R(shí)決定如何在整個(gè)集群中分配作業(yè)和文件。Hadoop 假定節(jié)點(diǎn)可能失敗,因此采用本機(jī)方法處理單個(gè)計(jì)算機(jī)甚至所有機(jī)架的失敗。

Hadoop 應(yīng)用程序

Hadoop 的最常見用法之一是 Web 搜索。雖然它不是惟一的軟件框架應(yīng)用程序,但作為一個(gè)并行數(shù)據(jù)處理引擎,它的表現(xiàn)非常突出。Hadoop 最有趣的方面之一是 Map and Reduce 流程,它受到 Google 開發(fā)的啟發(fā)。這個(gè)流程稱為創(chuàng)建索引,它將 Web 爬行器檢索到的文本 Web 頁面作為輸入,并且將這些頁面上的單詞的頻率報(bào)告作為結(jié)果。然后可以在整個(gè) Web 搜索過程中使用這個(gè)結(jié)果從已定義的搜索參數(shù)中識(shí)別內(nèi)容。

MapReduce

最簡單的 MapReduce 應(yīng)用程序至少包含 3 個(gè)部分:一個(gè) Map 函數(shù)、一個(gè) Reduce 函數(shù)和一個(gè) main 函數(shù)。main 函數(shù)將作業(yè)控制和文件輸入/輸出結(jié)合起來。在這點(diǎn)上,Hadoop 提供了大量的接口和抽象類,從而為 Hadoop 應(yīng)用程序開發(fā)人員提供許多工具,可用于調(diào)試和性能度量等。

MapReduce 本身就是用于并行處理大數(shù)據(jù)集的軟件框架。MapReduce 的根源是函數(shù)性編程中的 map 和 reduce 函數(shù)。它由兩個(gè)可能包含有許多實(shí)例(許多 Map 和 Reduce)的操作組成。Map 函數(shù)接受一組數(shù)據(jù)并將其轉(zhuǎn)換為一個(gè)鍵/值對(duì)列表,輸入域中的每個(gè)元素對(duì)應(yīng)一個(gè)鍵/值對(duì)。Reduce 函數(shù)接受 Map 函數(shù)生成的列表,然后根據(jù)它們的鍵(為每個(gè)鍵生成一個(gè)鍵/值對(duì))縮小鍵/值對(duì)列表。

這里提供一個(gè)示例,幫助您理解它。假設(shè)輸入域是 one small step for man, one giant leap for mankind。在這個(gè)域上運(yùn)行 Map 函數(shù)將得出以下的鍵/值對(duì)列表:

點(diǎn)擊放大圖片

結(jié)果是對(duì)輸入域中的單詞進(jìn)行計(jì)數(shù),這無疑對(duì)處理索引十分有用。但是,現(xiàn)在假設(shè)有兩個(gè)輸入域,第一個(gè)是 one small step for man,第二個(gè)是 one giant leap for mankind。您可以在每個(gè)域上執(zhí)行 Map 函數(shù)和 Reduce 函數(shù),然后將這兩個(gè)鍵/值對(duì)列表應(yīng)用到另一個(gè) Reduce 函數(shù),這時(shí)得到與前面一樣的結(jié)果。換句話說,可以在輸入域并行使用相同的操作,得到的結(jié)果是一樣的,但速度更快。這便是 MapReduce 的威力;它的并行功能可在任意數(shù)量的系統(tǒng)上使用。圖 2 以區(qū)段和迭代的形式演示這種思想。

點(diǎn)擊放大圖片

圖 2. MapReduce 流程的概念流#p#

現(xiàn)在回到 Hadoop 上,它是如何實(shí)現(xiàn)這個(gè)功能的?一個(gè)代表客戶機(jī)在單個(gè)主系統(tǒng)上啟動(dòng)的 MapReduce 應(yīng)用程序稱為 JobTracker。類似于 NameNode,它是 Hadoop 集群中惟一負(fù)責(zé)控制 MapReduce 應(yīng)用程序的系統(tǒng)。在應(yīng)用程序提交之后,將提供包含在 HDFS 中的輸入和輸出目錄。JobTracker 使用文件塊信息(物理量和位置)確定如何創(chuàng)建其他 TaskTracker 從屬任務(wù)。MapReduce 應(yīng)用程序被復(fù)制到每個(gè)出現(xiàn)輸入文件塊的節(jié)點(diǎn)。將為特定節(jié)點(diǎn)上的每個(gè)文件塊創(chuàng)建一個(gè)惟一的從屬任務(wù)。每個(gè) TaskTracker 將狀態(tài)和完成信息報(bào)告給 JobTracker。圖 3 顯示一個(gè)示例集群中的工作分布。

點(diǎn)擊放大圖片

圖 3. 顯示處理和存儲(chǔ)的物理分布的 Hadoop 集群

Hadoop 的這個(gè)特點(diǎn)非常重要,因?yàn)樗]有將存儲(chǔ)移動(dòng)到某個(gè)位置以供處理,而是將處理移動(dòng)到存儲(chǔ)。這通過根據(jù)集群中的節(jié)點(diǎn)數(shù)調(diào)節(jié)處理,因此支持高效的數(shù)據(jù)處理。

Hadoop 的其他應(yīng)用程序

Hadoop 是一個(gè)用于開發(fā)分布式應(yīng)用程序的多功能框架;從不同的角度看待問題是充分利用 Hadoop 的好方法。回顧一下 圖 2,那個(gè)流程以階梯函數(shù)的形式出現(xiàn),其中一個(gè)組件使用另一個(gè)組件的結(jié)果。當(dāng)然,它不是萬能的開發(fā)工具,但如果碰到的問題屬于這種情況,那么可以選擇使用 Hadoop。

Hadoop 一直幫助解決各種問題,包括超大型數(shù)據(jù)集的排序和大文件的搜索。它還是各種搜索引擎的核心,比如 Amazon 的 A9 和用于查找酒信息的 Able Grape 垂直搜索引擎。Hadoop Wiki 提供了一個(gè)包含大量應(yīng)用程序和公司的列表,這些應(yīng)用程序和公司通過各種方式使用 Hadoop(參見 參考資料)。

當(dāng)前,Yahoo! 擁有最大的 Hadoop Linux 生產(chǎn)架構(gòu),共由 10,000 多個(gè)內(nèi)核組成,有超過 5PB 字節(jié)的儲(chǔ)存分布到各個(gè) DataNode。在它們的 Web 索引內(nèi)部差不多有一萬億個(gè)鏈接。不過您可能不需要那么大型的系統(tǒng),如果是這樣的話,您可以使用 Amazon Elastic Compute Cloud (EC2) 構(gòu)建一個(gè)包含 20 個(gè)節(jié)點(diǎn)的虛擬集群。事實(shí)上,紐約時(shí)報(bào) 使用 Hadoop 和 EC2 在 36 個(gè)小時(shí)內(nèi)將 4TB 的 TIFF 圖像 — 包括 405K 大 TIFF 圖像,3.3M SGML 文章和 405K XML 文件 — 轉(zhuǎn)換為 800K 適合在 Web 上使用的 PNG 圖像。這種處理稱為云計(jì)算,它是一種展示 Hadoop 的威力的獨(dú)特方式。

結(jié)束語

毫無疑問,Hadoop 正在變得越來越強(qiáng)大。從使用它的應(yīng)用程序看,它的前途是光明的。您可以從 參考資料 小節(jié)更多地了解 Hadoop 及其應(yīng)用程序,包括設(shè)置您自己的 Hadoop 集群的建議。

 
 

 

責(zé)任編輯:黃丹 來源: IT商業(yè)新聞網(wǎng)
相關(guān)推薦

2012-09-19 14:09:20

Hadoop開源

2023-11-01 18:02:33

RayPython分布式

2010-06-03 18:54:57

Hadoop

2010-06-03 14:42:47

Hadoop分布式集群

2010-06-03 19:46:44

Hadoop

2021-03-23 22:43:09

Grafana Tem分布式跟蹤開源

2024-03-01 09:53:34

2017-09-01 05:35:58

分布式計(jì)算存儲(chǔ)

2011-09-28 11:22:52

Hadoop

2012-05-21 10:19:31

Hadoop

2022-06-08 07:36:03

LocustKubernete微服務(wù)

2014-07-15 11:15:44

hadoop分布式部署

2017-08-10 10:17:32

Hadoop分布式搭建

2019-09-26 15:43:52

Hadoop集群防火墻

2024-10-07 10:07:31

2024-04-01 05:10:00

Redis數(shù)據(jù)庫分布式鎖

2024-01-02 13:15:00

分布式鎖RedissonRedis

2019-10-28 10:10:01

技術(shù)研發(fā)分布式

2013-03-26 13:43:08

Java分布式計(jì)算

2021-03-14 18:23:18

邊緣計(jì)算對(duì)象存儲(chǔ)分布式計(jì)算
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品一区二区在线播放 | 久久久久资源 | 日韩成人在线一区 | 日韩成人在线观看 | 日韩手机在线视频 | 欧美精品日韩精品国产精品 | 精品欧美色视频网站在线观看 | 欧美成人激情 | 99久久免费精品 | 亚洲成av人片在线观看无码 | 一区二区三区四区在线 | 免费观看色 | 国产一区二区三区四区 | 美女午夜影院 | 黄色大片在线播放 | 精品一区二区三区免费视频 | 日韩成人免费视频 | 久久久久国产精品一区 | 欧美日韩视频在线播放 | 国产97视频在线观看 | 久久国产福利 | 色综合区 | 一区二区三区免费 | 精品久久精品 | 亚洲精品欧美精品 | 国产欧美精品一区二区色综合 | 99久久国产免费 | 亚洲精品在线免费观看视频 | 中文字幕在线一区 | 国产激情在线观看 | 青青久在线视频 | 欧美一区二区免费在线 | 国产亚洲一区二区三区 | av国产精品毛片一区二区小说 | 美女福利网站 | 国产这里只有精品 | 午夜精品一区二区三区在线视 | 日韩精品一区二区三区免费观看 | 国产成人区 | 日韩福利| 国产精品一区二区在线观看 |