日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

[转载]Apache之Hadoop学习:初识hadoop

發(fā)布時(shí)間:2025/3/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载]Apache之Hadoop学习:初识hadoop 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文轉(zhuǎn)自:http://qa.taobao.com/blogs/qa?bid=10514

這是本人看到過(guò)的關(guān)于hadoop的比較容易理解的入門(mén)文章,在此轉(zhuǎn)載過(guò)來(lái),方便廣大像我這樣的初級(jí)碼農(nóng)。?原文如下:

?

引言

?

?

最近了解到淘寶使用hadoop的項(xiàng)目多了起來(lái),hadoop對(duì)于許多測(cè)試人員來(lái)說(shuō)或許是個(gè)新鮮玩兒,因此,把自己之前整理的學(xué)習(xí)筆記整理發(fā)上來(lái),希望通過(guò)此系列文章快速了解Hadoop的基本概念和架構(gòu)原理,從而助于hadoop相關(guān)項(xiàng)目的測(cè)試?yán)斫夂蜏贤ā?/span>

?

Hadoop簡(jiǎn)介

?

Hadoop 是一個(gè)實(shí)現(xiàn)了 MapReduce 計(jì)算模型的開(kāi)源分布式并行編程框架,借助于 Hadoop, 程序員可以輕松地編寫(xiě)分布式并行程序,將其運(yùn)行于計(jì)算機(jī)集群上,完成海量數(shù)據(jù)的計(jì)算。如果你對(duì)Hadoop不熟悉,下面這些名詞你或許耳熟能詳,Google File System、Google Map/Reduce模型、lucene 、Nutch、阿里云梯、云計(jì)算等,他們都與Hadoop有著或深或淺的關(guān)系,原來(lái)Hadoop離我們?nèi)绱酥?#xff0c;那么花些時(shí)間繼續(xù)了解它吧。

?

Hadoop的架構(gòu)
? 先拋開(kāi)Hadoop,簡(jiǎn)單地想想看,假設(shè)我們需要讀一個(gè)10TB的數(shù)據(jù)集,怎么辦?在傳統(tǒng)的系統(tǒng)上,這需要很長(zhǎng)時(shí)間,因?yàn)橛脖P(pán)的傳輸速度是受限的。一個(gè)簡(jiǎn)單的辦法是將數(shù)據(jù)存儲(chǔ)在多個(gè)磁盤(pán)上,同時(shí)從多個(gè)磁盤(pán)并行讀取數(shù)據(jù),這將大大減少讀取時(shí)間。

? ?

? 上面的方案需要解決兩個(gè)主要問(wèn)題,一個(gè)是硬件故障,要保證其中一個(gè)硬件壞了但數(shù)據(jù)仍然完整,Hadoop的文件系統(tǒng)HDFS(Hadoop Distributed Filesystem)提供了一種解決方式。另外一個(gè)問(wèn)題是如何并行讀取數(shù)據(jù)并合并保證正確性,通過(guò)MapReduce的編程模型可以簡(jiǎn)化這個(gè)問(wèn)題。簡(jiǎn)而言之,Hadoop提供了一個(gè)穩(wěn)定的共享存儲(chǔ)和分析系統(tǒng),存儲(chǔ)由HDFS實(shí)現(xiàn),分析由MapReduce實(shí)現(xiàn),這兩者構(gòu)成了Hadoop的核心功能。

HDFS

HDFS集群有兩種節(jié)點(diǎn),以管理者-工作者模式運(yùn)行,即1個(gè)名稱節(jié)點(diǎn)(NameNode)和N個(gè)數(shù)據(jù)節(jié)點(diǎn)(DataNode)。其底層實(shí)現(xiàn)是將文件切割成塊,然后將這些塊存儲(chǔ)在不同的DataNode上。為了容錯(cuò)容災(zāi),每個(gè)塊還被復(fù)制多份存儲(chǔ)在不同的DataNode上。NameNode管理文件系統(tǒng)的命名空間,記錄每個(gè)文件被切割成了多少塊,這些塊可以從哪些DataNode上獲得,以及各個(gè)DataNode的狀態(tài)信息等。下圖是Hadoop集群的簡(jiǎn)化視圖
?

HDFS內(nèi)部通信都是基于標(biāo)準(zhǔn)的TCP/IP協(xié)議,NameNode 依賴來(lái)自每個(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)上丟失的塊。更多HDFS的架構(gòu)和設(shè)計(jì)請(qǐng)閱讀http://hadoop.apache.org/common/docs/current/cn/hdfs_design.html

? MapReduce

?

?? 上圖說(shuō)明了用 MapReduce 來(lái)處理大數(shù)據(jù)集的過(guò)程, 這個(gè) MapReduce 的計(jì)算過(guò)程簡(jiǎn)而言之,就是將大數(shù)據(jù)集分解為成若干個(gè)小數(shù)據(jù)集,每個(gè)(或若干個(gè))數(shù)據(jù)集分別由集群中的一個(gè)結(jié)點(diǎn)(一般就是一臺(tái)普通的計(jì)算機(jī))進(jìn)行處理并生成中間結(jié)果,然后這些中間結(jié)果又由大量的結(jié)點(diǎn)進(jìn)行合并, 形成最終結(jié)果。

計(jì)算模型的核心是 Map 和 Reduce 兩個(gè)函數(shù),這兩個(gè)函數(shù)由用戶負(fù)責(zé)實(shí)現(xiàn),功能是按一定的映射規(guī)則將輸入的 對(duì)轉(zhuǎn)換成另一個(gè)或一批 對(duì)輸出。下圖是一個(gè)簡(jiǎn)單的MapReduce示例,實(shí)現(xiàn)字?jǐn)?shù)統(tǒng)計(jì)功能。

? ?

? 分布式并行運(yùn)算

?? Hadoop 的分布式并行運(yùn)算有一個(gè)作為主控的JobTracker,用于調(diào)度和管理其它的 TaskTracker, JobTracker 可以運(yùn)行于集群中任一臺(tái)計(jì)算機(jī)上。TaskTracker負(fù)責(zé)執(zhí)行任務(wù),必須運(yùn)行于 DataNode 上,即 DataNode 既是數(shù)據(jù)存儲(chǔ)結(jié)點(diǎn),也是計(jì)算結(jié)點(diǎn),這樣可以減少數(shù)據(jù)在網(wǎng)絡(luò)上的傳輸,降低對(duì)網(wǎng)絡(luò)帶寬的需求。 JobTracker 將 Map 任務(wù)和 Reduce 任務(wù)分發(fā)給空閑的 TaskTracker, 讓這些任務(wù)并行運(yùn)行,并負(fù)責(zé)監(jiān)控任務(wù)的運(yùn)行情況。如果某一個(gè) TaskTracker 出故障了,JobTracker 會(huì)將其負(fù)責(zé)的任務(wù)轉(zhuǎn)交給另一個(gè)空閑的 TaskTracker 重新運(yùn)行。

? Hadoop的其他子項(xiàng)目

? 上面介紹的MapReduce、HDFS、分布式并行運(yùn)算是Hadoop最核心的功能。還有一些子項(xiàng)目提供補(bǔ)充性服務(wù)。如hive(提供基于sql的查詢語(yǔ)言查詢存儲(chǔ)在HDFS中的數(shù)據(jù))、Hbase(一種分布式、列存儲(chǔ)數(shù)據(jù)庫(kù),適用于需要實(shí)時(shí)讀寫(xiě)、隨機(jī)訪問(wèn)超大數(shù)據(jù)集的場(chǎng)景)、Zookeeper(一個(gè)分布式、高可用性的協(xié)調(diào)服務(wù),提供分布式鎖之類(lèi)的基本服務(wù))、pig(一種數(shù)據(jù)流語(yǔ)言和運(yùn)行環(huán)境,用以檢索非常大的數(shù)據(jù)集,使程序員能專(zhuān)注于數(shù)據(jù)而不是執(zhí)行本質(zhì))等。

小結(jié)

如果你堅(jiān)持看到這里,或許會(huì)覺(jué)得失望,介紹了一堆的概念和名詞,貌似對(duì)你的幫助不大,不要沮喪,第一次接觸分布式知識(shí)的人大都如此,至少你跟開(kāi)發(fā)又多了些共同語(yǔ)言,下次那個(gè)哥們沖你說(shuō)pig(豬)時(shí),你可以認(rèn)為他說(shuō)的是pig(一種數(shù)據(jù)流語(yǔ)言和運(yùn)行環(huán)境,用以檢索非常大的數(shù)據(jù)集,使程序員能專(zhuān)注于數(shù)據(jù)而不是執(zhí)行本質(zhì))。

轉(zhuǎn)載于:https://www.cnblogs.com/kingcucumber/archive/2013/06/13/2872575.html

總結(jié)

以上是生活随笔為你收集整理的[转载]Apache之Hadoop学习:初识hadoop的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。