云計算和Hadoop中網(wǎng)絡(luò)是討論得相對比較少的領(lǐng)域。本文原文由Dell企業(yè)技術(shù)專家Brad Hedlund撰寫,他曾在思科工作多年,專長是數(shù)據(jù)中心、云網(wǎng)絡(luò)等。文章素材基于作者自己的研究、實驗和Cloudera的培訓(xùn)資料。
本文將著重于討論Hadoop集群的體系結(jié)構(gòu)和方法,及它如何與網(wǎng)絡(luò)和服務(wù)器基礎(chǔ)設(shè)施的關(guān)系。最開始我們先學(xué)習(xí)一下Hadoop集群運作的基礎(chǔ)原理。
Hadoop里的服務(wù)器角色
Hadoop主要的任務(wù)部署分為3個部分,分別是:Client機器,主節(jié)點和從節(jié)點。主節(jié)點主要負(fù)責(zé)Hadoop兩個關(guān)鍵功能模塊HDFS、Map Reduce的監(jiān)督。當(dāng)Job Tracker使用Map Reduce進行監(jiān)控和調(diào)度數(shù)據(jù)的并行處理時,名稱節(jié)點則負(fù)責(zé)HDFS監(jiān)視和調(diào)度。從節(jié)點負(fù)責(zé)了機器運行的絕大部分,擔(dān)當(dāng)所有數(shù)據(jù)儲存和指令計算的苦差。每個從節(jié)點既扮演者數(shù)據(jù)節(jié)點的角色又沖當(dāng)與他們主節(jié)點通信的守護進程。守護進程隸屬于Job Tracker,數(shù)據(jù)節(jié)點在歸屬于名稱節(jié)點。
Client機器集合了Hadoop上所有的集群設(shè)置,但既不包括主節(jié)點也不包括從節(jié)點。取而代之的是客戶端機器的作用是把數(shù)據(jù)加載到集群中,遞交給Map Reduce數(shù)據(jù)處理工作的描述,并在工作結(jié)束后取回或者查看結(jié)果。在小的集群中(大約40個節(jié)點)可能會面對單物理設(shè)備處理多任務(wù),比如同時Job Tracker和名稱節(jié)點。作為大集群的中間件,一般情況下都是用獨立的服務(wù)器去處理單個任務(wù)。
在真正的產(chǎn)品集群中是沒有虛擬服務(wù)器和管理層的存在的,這樣就沒有了多余的性能損耗。Hadoop在Linux系統(tǒng)上運行的最好,直接操作底層硬件設(shè)施。這就說明Hadoop實際上是直接在虛擬機上工作。這樣在花費、易學(xué)性和速度上有著無與倫比的優(yōu)勢。
Hadoop集群
上面是一個典型Hadoop集群的構(gòu)造。一系列機架通過大量的機架轉(zhuǎn)換與機架式服務(wù)器(不是刀片服務(wù)器)連接起來,通常會用1GB或者2GB的寬帶來支撐連接。10GB的帶寬雖然不常見,但是卻能顯著的提高CPU核心和磁盤驅(qū)動器的密集性。上一層的機架轉(zhuǎn)換會以相同的帶寬同時連接著許多機架,形成集群。大量擁有自身磁盤儲存器、CPU及DRAM的服務(wù)器將成為從節(jié)點。同樣有些機器將成為主節(jié)點,這些擁有少量磁盤儲存器的機器卻有著更快的CPU及更大的DRAM。
下面我們來看一下應(yīng)用程序是怎樣運作的吧:
adoop的工作流程
在計算機行業(yè)競爭如此激烈的情況下,究竟什么是Hadoop的生存之道?它又切實的解決了什么問題?簡而言之,商業(yè)及政府都存在大量的數(shù)據(jù)需要被快速的分析和處理。把這些大塊的數(shù)據(jù)切開,然后分給大量的計算機,讓計算機并行的處理這些數(shù)據(jù) — 這就是Hadoop能做的。