日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
兩種模式運(yùn)行Hadoop分布式并行程序

兩種模式運(yùn)行hadoop分布式并行程序

作者:劉定 2010-06-03 19:28:02

架構(gòu)
分布式
Hadoop Hadoop可能大家還不是很了解,這里就向大家簡單介紹一下Hadoop的概念以及Hadoop分布式并行程序方面的知識,歡迎大家一起來學(xué)習(xí),希望本文的介紹對你的學(xué)習(xí)有所幫助。

本節(jié)和大家一起學(xué)習(xí)一下Hadoop方面的知識,主要包括Hadoop的概念和兩種模式實(shí)現(xiàn)Hadoop分布式并行程序等,希望通過本節(jié)的介紹大家對Hadoop有新的認(rèn)識。

Hadoop初體驗(yàn)

Hadoop支持Linux及Windows操作系統(tǒng),但其官方網(wǎng)站聲明Hadoop的分布式操作在Windows上未做嚴(yán)格測試,建議只把Windows作為Hadoop的開發(fā)平臺。在Windows環(huán)境上的安裝步驟如下(Linux平臺類似,且更簡單一些):

(1)在Windows下,需要先安裝Cgywin,安裝Cgywin時(shí)注意一定要選擇安裝openssh(在Netcategory)。安裝完成之后,把Cgywin的安裝目錄如c:\cygwin\bin加到系統(tǒng)環(huán)境變量PATH中,這是因?yàn)檫\(yùn)行Hadoop要執(zhí)行一些linux環(huán)境下的腳本和命令。

(2)安裝Java1.5.x,并將JAVA_HOME環(huán)境變量設(shè)置為Java的安裝根目錄如C:\ProgramFiles\Java\jdk1.5.0_01。

(3)到Hadoop官方網(wǎng)站http://hadoop.apache.org下載HadoopCore,最新的穩(wěn)定版本是0.16.0.將下載后的安裝包解壓到一個(gè)目錄,本文假定解壓到c:\hadoop-0.16.0。

4)修改conf/hadoop-env.sh文件,在其中設(shè)置JAVA_HOME環(huán)境變量:exportJAVA_HOME="C:\ProgramFiles\Java\jdk1.5.0_01”(因?yàn)槁窂街蠵rogramFiles中間有空格,一定要用雙引號將路徑引起來)

至此,一切就緒,可以運(yùn)行Hadoop了。以下的運(yùn)行過程,需要啟動(dòng)cygwin,進(jìn)入模擬Linux環(huán)境。在下載的HadoopCore包中,帶有幾個(gè)示例程序并且已經(jīng)打包成了hadoop-0.16.0-examples.jar。其中有一個(gè)WordCount程序,功能是統(tǒng)計(jì)一批文本文件中各個(gè)單詞出現(xiàn)的次數(shù),我們先來看看怎么運(yùn)行這個(gè)程序。Hadoop共有三種運(yùn)行模式:單機(jī)(非分布式)模式,偽分布式運(yùn)行模式,分布式運(yùn)行模式,其中前兩種運(yùn)行模式體現(xiàn)不了Hadoop分布式計(jì)算的優(yōu)勢,并沒有什么實(shí)際意義,但對程序的測試及調(diào)試很有幫助,我們先從這兩種模式入手,了解基于Hadoop的分布式并行程序是如何編寫和運(yùn)行的。

單機(jī)(非分布式)模式

這種模式在一臺單機(jī)上運(yùn)行,沒有分布式文件系統(tǒng),而是直接讀寫本地操作系統(tǒng)的文件系統(tǒng)。

注意事項(xiàng):運(yùn)行bin/hadoopjarhadoop-0.16.0-examples.jarwordcounttest-intest-out時(shí),務(wù)必注意第一個(gè)參數(shù)是jar,不是-jar,當(dāng)你用-jar時(shí),不會告訴你是參數(shù)錯(cuò)了,報(bào)告出來的錯(cuò)誤信息是:Exceptioninthread"main"java.lang.NoClassDefFoundError:org/apache/hadoop/util/ProgramDriver,筆者當(dāng)時(shí)以為是classpath的設(shè)置問題,浪費(fèi)了不少時(shí)間。通過分析bin/hadoop腳本可知,-jar并不是bin/hadoop腳本定義的參數(shù),此腳本會把-jar作為Java的參數(shù),Java的-jar參數(shù)表示執(zhí)行一個(gè)Jar文件(這個(gè)Jar文件必須是一個(gè)可執(zhí)行的Jar,即在MANIFEST中定義了主類),此時(shí)外部定義的classpath是不起作用的,因而會拋出java.lang.NoClassDefFoundError異常。而jar是bin/hadoop腳本定義的參數(shù),會調(diào)用Hadoop自己的一個(gè)工具類RunJar,這個(gè)工具類也能夠執(zhí)行一個(gè)Jar文件,并且外部定義的classpath有效。

偽分布式運(yùn)行模式

這種模式也是在一臺單機(jī)上運(yùn)行,但用不同的Java進(jìn)程模仿分布式運(yùn)行中的各類結(jié)點(diǎn)(NameNode,DataNode,JobTracker,TaskTracker,SecondaryNameNode),請注意分布式運(yùn)行中的這幾個(gè)結(jié)點(diǎn)的區(qū)別:從分布式存儲的角度來說,集群中的結(jié)點(diǎn)由一個(gè)NameNode和若干個(gè)DataNode組成,另有一個(gè)SecondaryNameNode作為NameNode的備份。從分布式應(yīng)用的角度來說,集群中的結(jié)點(diǎn)由一個(gè)JobTracker和若干個(gè)TaskTracker組成,JobTracker負(fù)責(zé)任務(wù)的調(diào)度,TaskTracker負(fù)責(zé)并行執(zhí)行任務(wù)。TaskTracker必須運(yùn)行在DataNode上,這樣便于數(shù)據(jù)的本地計(jì)算。JobTracker和NameNode則無須在同一臺機(jī)器上。


文章標(biāo)題:兩種模式運(yùn)行Hadoop分布式并行程序
標(biāo)題URL:http://m.5511xx.com/article/cdciosj.html