版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Ch.5.Hadoop系統(tǒng)安裝運行
與程序開發(fā)南京大學(xué)計算機科學(xué)與技術(shù)系主講人:黃宜華2011年春季學(xué)期MapReduce海量數(shù)據(jù)并行處理鳴謝:本課程得到Google公司(北京)中國大學(xué)合作部精品課程計劃資助Ch.5.
Hadoop系統(tǒng)安裝運行與程序開發(fā)1.單機Hadoop系統(tǒng)安裝基本步驟2.集群Hadoop系統(tǒng)安裝基本步驟3.Hadoop集群遠程作業(yè)提交與執(zhí)行4.HadoopMapReduce程序開發(fā)5.實驗1:安裝單機Hadoop系統(tǒng)Hadoop系統(tǒng)運行的軟件環(huán)境Linux操作系統(tǒng)如RHELS6.0(RedHatEnterpriseLinuxServer6.0)直接安裝LinuxWindow下安裝Linux虛擬機SSH(SecureShell)主要用于遠程管理Hadoop節(jié)點以及Hadoop節(jié)點間的安全共享訪問Java如Java1.6.0Hadoop系統(tǒng)的安裝方式單機方式在一臺運行Linux或Windows下虛擬Linux的單機上安裝運行Hadoop系統(tǒng)單機偽分布方式在一臺運行Linux或Window下虛擬Linux的單機上,用偽分布方式,用不同的java進程模擬分布運行中的NameNode、DataNode、JobTracker、TaskTracker等各類節(jié)點集群分布模式在一個真實的集群環(huán)境下安裝運行Hadoop系統(tǒng),集群的每個節(jié)點可以運行Linux或Window下的虛擬Linux。單機和偽分布模式下編寫調(diào)試完成的程序不需修改即可在真實的分布式Hadoop集群下運行基本安裝步驟安裝JDK下載安裝Hadoop配置SSH配置Hadoop的環(huán)境格式化HDFS文件系統(tǒng)啟動Hadoop環(huán)境運行程序測試查看集群狀態(tài)
1.單機Hadoop系統(tǒng)安裝基本步驟單機和單機偽分布方式安裝過程1.單機操作系統(tǒng)安裝在單機上安裝Linux或Window下虛擬Linux,假設(shè)安裝后機器名為Siler。2.安裝SSH
如果安裝RHELS6.0,確保軟件安裝時把SSH選上;如果安裝Linux時沒有安裝SSH,則需要另行安裝SSH3.安裝Java
下載和安裝Java,將java安裝在root/usr/java目錄下單機Hadoop系統(tǒng)基本安裝步驟單機和單機偽分布方式安裝過程4.創(chuàng)建用戶為Hadoop創(chuàng)建一個專門的用戶組如hadoop-user,然后在該用戶組下創(chuàng)建不同的用戶。可在安裝系統(tǒng)的時候創(chuàng)建,也可以在安裝好之后用如下命令創(chuàng)建:[root@Siler~]#groupaddhadoop-user[root@Siler~]#useradd-ghadoop_user-d/home/hadoophadoop“hadoop”是所創(chuàng)建的用戶名,-d指明“hadoop”用戶的home目錄是/home/hadoop)[root@Siler~]#passwdhadoop[給用戶hadoop設(shè)置口令]單機Hadoop系統(tǒng)基本安裝步驟單機和單機偽分布方式安裝過程5.解壓安裝Hadoop到Hadoop官網(wǎng)下載hadoop-0.21.0.tar.gz建立安裝目錄
[hadoop@Siler~]mkdir~/hadoop_installs把hadoop-0.21.0.tar.gz放在這里,然后解壓:
[hadoop@Silerhadoop_installs]$tar–zxvfhadoop-0.21.0.tar.gz單機Hadoop系統(tǒng)基本安裝步驟單機和單機偽分布方式安裝過程6.配置環(huán)境變量進入到“hadoop”用戶下
[root@Siler~]#su–hadoop
[注意中間的”-”不要丟]
[hadoop@Siler~]$編輯~/.bash_profile文件(用vi或gedit)
vi~/.bash_profile設(shè)置如下環(huán)境變量:
PATH=$PATH:$HOME/binexportJAVA_HOME=/usr/java/java-1.6.0exportHADOOP_HOME=/home/hadoop/hadoop_installs/hadoop-0.21.0exportPATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/binexportCLASSPATH=$JAVA_HOME/lib:.單機Hadoop系統(tǒng)基本安裝步驟單機和單機偽分布方式安裝過程7.免密碼SSH訪問配置
在偽分布模式下(集群分布模式更需要這個設(shè)置過程),為了實現(xiàn)免密碼SSH登陸連接,需要進行相應(yīng)的配置。方式是創(chuàng)建一個認證文件,然后用publickey實現(xiàn)免密碼的登錄連接。過程如下:執(zhí)行命令產(chǎn)生認證文件
[hadoop@Siler~]$ssh-keygen-trsa-P""一直敲回車,然后將在/home/hadoop/.ssh目錄下生成id_rsa認證文件將該文件復(fù)制到名為authorized_keys的文件
[hadoop@Siler~]cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys然后測試一下看看能不能登錄:[hadoop@Siler~]sshlocalhost單機Hadoop系統(tǒng)基本安裝步驟單機和單機偽分布方式安裝過程什么是SSH?SSH(SecureShell),是建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議。傳統(tǒng)的網(wǎng)絡(luò)服務(wù)程序,如FTP、POP和Telnet本質(zhì)上都是不安全的;它們在網(wǎng)絡(luò)上用明文傳送數(shù)據(jù)、用戶帳號和用戶口令,很容易受到中間人(man-in-the-middle)攻擊方式的攻擊。而SSH是目前較為可靠的、專為遠程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。利用SSH協(xié)議可以有效防止遠程管理過程中的信息泄露問題。通過SSH可以對所有傳輸?shù)臄?shù)據(jù)進行加密,也能夠防止DNS欺騙和IP欺騙。SSH另一項優(yōu)點是其傳輸?shù)臄?shù)據(jù)是經(jīng)過壓縮的,所以可以加快傳輸?shù)乃俣取SH有很多功能,它既可以代替Telnet,又可以為FTP、POP、PPP提供一個安全的登陸會話“通道”。Hadoop使用SSH保證在遠程管理Hadoop節(jié)點和節(jié)點間用戶共享訪問時的安全性。單機Hadoop系統(tǒng)基本安裝步驟單機和單機偽分布方式安裝過程8.修改hadoop配置文件
Hadoop的配置文件存放在hadoop安裝目錄下的conf目錄中,主要有以下幾個配置文件要修改:conf/hadoop-env.sh:Hadoop環(huán)境變量設(shè)置conf/core-site.xml:主要完成NameNode的IP和端口設(shè)置conf/hdfs-site.xml:主要完成HDFS的數(shù)據(jù)塊副本等參數(shù)設(shè)置conf/mapred-site.xml:主要完成JobTrackerIP和端口設(shè)置conf/masters:完成master節(jié)點IP設(shè)置conf/slaves:完成Slaves節(jié)點IP設(shè)置單機Hadoop系統(tǒng)基本安裝步驟單機和單機偽分布方式安裝過程9.格式化NameNode執(zhí)行Hadoop的bin文件夾中的格式化命令:
[hadoop@Siler~]$hadoopnamenode-format
如果格式化成功,會返回一堆有關(guān)NameNode的啟動信息,其中會有一句“….hasbeensuccessfullyformatted.”單機Hadoop系統(tǒng)基本安裝步驟單機和單機偽分布方式安裝過程10.啟動HDFS和MapReduce執(zhí)行以下命令啟動HDFS和MapReduce[hadoop@Siler~]$start-all.sh用JPS命令檢查一下是否正常啟動:
[hadoop@Siler~]$jps顯示以下各進程信息則說明HDFS和MapReduce都已正常啟動:4706JobTracker4582SecondaryNameNode4278NameNode4413DataNode4853TaskTracker4889Jps11.停止HDFS和MapReduce執(zhí)行以下命令啟動HDFS和MapReduce[hadoop@Siler~]$stop-all.sh單機Hadoop系統(tǒng)基本安裝步驟單機和單機偽分布方式安裝過程12.運行測試在Linux文件系統(tǒng)下(如/root/test)創(chuàng)建兩個文本數(shù)據(jù)文件:
file1.txt:hellohadoophelloworld
file2.txt:
goodbyehadoop將文件復(fù)制到HDFS文件系統(tǒng)中:
[hadoop@Siler~]$dfs–copyFromLocal/root/testtest-intest-in是在HDFS中建立的一個數(shù)據(jù)數(shù)據(jù)目錄運行hadoop安裝包中自帶的WordCount程序進行測試:
[hadoop@Siler~]$hadoopjarhadoop-0.21.0-examples.jarwordcounttest-intest-out其中test-out只能由程序創(chuàng)建,不能事先存在單機Hadoop系統(tǒng)基本安裝步驟集群分布方式安裝過程1.操作系統(tǒng)安裝在每個節(jié)點上安裝Linux或Window下虛擬Linux,假設(shè)安裝后機器名為Master。2.安裝SSH
如果安裝RHELS6.0,確保軟件安裝時把SSH選上;如果安裝Linux時沒有安裝SSH,則需要另行安裝SSH3.安裝Java
下載和安裝Java,將java安裝在root/usr/java目錄下2.集群Hadoop系統(tǒng)基本安裝步驟集群分布方式安裝過程4.創(chuàng)建用戶為Hadoop創(chuàng)建一個專門的用戶組如hadoop-user,然后在該用戶組下創(chuàng)建不同的用戶。可在安裝系統(tǒng)的時候創(chuàng)建,也可以在安裝好之后用如下命令創(chuàng)建:[root@
Master
~]#groupaddhadoop-user[root@
Master
~]#useradd-ghadoop_user-d/home/hadoophadoop“hadoop”是所創(chuàng)建的用戶名,-d指明“hadoop”用戶的home目錄是/home/hadoop)[root@
Master
~]#passwdhadoop[給用戶hadoop設(shè)置口令]1).在真實集群分布模式下,要求每個節(jié)點使用相同的用戶名,比如,可以使用“hadoop”作為所有節(jié)點上統(tǒng)一的用戶名。2).并且要求在所有節(jié)點上安裝的hadoop系統(tǒng)具有完全一致的目錄結(jié)構(gòu)。集群Hadoop系統(tǒng)基本安裝步驟集群分布方式安裝過程5.在主節(jié)點上解壓安裝Hadoop到Hadoop官網(wǎng)下載hadoop-0.21.0.tar.gz建立安裝目錄
[hadoop@
Master~]mkdir~/hadoop_installs把hadoop-0.21.0.tar.gz放在這里,然后解壓:
[hadoop@
Masterhadoop_installs]$tar–zxvfhadoop-0.21.0.tar.gz注:這個過程僅需在主節(jié)點上完成,然后安裝好的Hadoop系統(tǒng)將被復(fù)制到所有從節(jié)點集群Hadoop系統(tǒng)基本安裝步驟集群分布方式安裝過程6.配置環(huán)境變量(每個節(jié)點都必須做)進入到“hadoop”用戶下
[root@Siler~]#su–hadoop
[注意中間的”-”不要丟]
[hadoop@Siler~]$編輯~/.bash_profile文件(用vi或gedit)
vi~/.bash_profile設(shè)置如下環(huán)境變量:
PATH=$PATH:$HOME/binexportJAVA_HOME=/usr/java/java-1.6.0exportHADOOP_HOME=/home/hadoop/hadoop_installs/hadoop-0.21.0exportPATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/binexportCLASSPATH=$JAVA_HOME/lib:.集群Hadoop系統(tǒng)基本安裝步驟集群分布方式安裝過程7.免密碼SSH訪問配置
在真實集群分布模式下更需要這個設(shè)置過程,為了實現(xiàn)節(jié)點間相互的免密碼SSH訪問,需要進行相應(yīng)的配置。方式是創(chuàng)建一個認證文件,然后用publickey實現(xiàn)免密碼的登錄連接。過程如下:執(zhí)行命令產(chǎn)生認證文件
[hadoop@
Master
~]$ssh-keygen-trsa-P""敲回車,然后將在/home/hadoop/.ssh目錄下生成id_rsa認證文件將該文件復(fù)制為名為authorized_keys的文件
[hadoop@
Master~]$cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys將authorized_keys文件復(fù)制到所有節(jié)點上
[hadoop@Master~]$scpauthorized_keys[從節(jié)點主機名或IP]:/home/hadoop/.ssh集群Hadoop系統(tǒng)基本安裝步驟集群分布方式安裝過程8.在主節(jié)點上修改hadoop配置文件
Hadoop的配置文件存放在hadoop安裝目錄下的conf目錄中,主要有以下幾個配置文件要修改:conf/hadoop-env.sh:Hadoop環(huán)境變量設(shè)置conf/core-site.xml:主要完成NameNode的IP和端口設(shè)置conf/hdfs-site.xml:主要完成HDFS的數(shù)據(jù)塊副本等參數(shù)設(shè)置conf/mapred-site.xml:主要完成JobTrackerIP和端口設(shè)置conf/masters:完成master節(jié)點IP設(shè)置conf/slaves:完成Slaves節(jié)點IP設(shè)置注:這個過程僅需在主節(jié)點上進行,然后將隨著主機上安裝好的Hadoop目錄一起復(fù)制到所有從節(jié)點集群Hadoop系統(tǒng)基本安裝步驟集群分布方式安裝過程8.在主節(jié)點上修改hadoop配置文件 conf/masters:修改為主節(jié)點的主機名 conf/slaves:列出所有從節(jié)點的主機名
在NameNode和DataNode節(jié)點上進行主機名和IP解析配置
修改每臺機器的/etc/hosts設(shè)置:若為NameNode,則需要在hosts文件中添加集群中所有節(jié)點的IP地址機器對應(yīng)的主機名若為DataNode,則只需要在文件中添加本機和NameNode的IP地址及對應(yīng)的主機名集群Hadoop系統(tǒng)基本安裝步驟集群分布方式安裝過程9.復(fù)制Hadoop系統(tǒng)將在主節(jié)點安裝好的Hadoop系統(tǒng)目錄復(fù)制到每一個從節(jié)點上:
[hadoop@
Master
~]$scp-r/home/hadoop/hadoop-installs[從節(jié)點主機名或IP]:/home/hadoop/
這樣可以避免對每一個從節(jié)點重復(fù)進行Hadoop系統(tǒng)安裝。集群Hadoop系統(tǒng)基本安裝步驟集群分布方式安裝過程10.格式化NameNode執(zhí)行Hadoop的bin文件夾中的格式化命令:
[hadoop@
Master~]$hadoopnamenode-format
如果格式化成功,會返回一堆有關(guān)NameNode的啟動信息,其中會有一句“….hasbeensuccessfullyformatted.”集群Hadoop系統(tǒng)基本安裝步驟集群分布方式安裝過程11.啟動HDFS和MapReduce執(zhí)行以下命令啟動HDFS和MapReduce[hadoop@
Master
~]$start-all.sh用JPS命令檢查一下是否正常啟動:
[hadoop@
Master
~]$jps顯示以下各進程信息則說明HDFS和MapReduce都已正常啟動:4706JobTracker4582SecondaryNameNode4278NameNode4413DataNode4853TaskTracker4889Jps12.停止HDFS和MapReduce執(zhí)行以下命令啟動HDFS和MapReduce[hadoop@
Master
~]$stop-all.sh集群Hadoop系統(tǒng)基本安裝步驟集群分布方式安裝過程13.運行測試在Linux文件系統(tǒng)下(如/root/test)創(chuàng)建兩個文本數(shù)據(jù)文件:
file1.txt:hellohadoophelloworld
file2.txt:goodbyehadoop將文件復(fù)制到HDFS文件系統(tǒng)中:
[hadoop@
Master~]$dfs–copyFromLocal/root/testtest-intest-in是在HDFS中建立的一個數(shù)據(jù)數(shù)據(jù)目錄運行hadoop安裝包中自帶的WorldCount程序進行測試:
[hadoop@
Master~]$hadoopjarhadoop-0.21.0-examples.jarwordcounttest-intest-out其中test-out只能由程序創(chuàng)建,不能事先存在集群Hadoop系統(tǒng)基本安裝步驟程序開發(fā)與提交作業(yè)基本過程3.Hadoop集群遠程作業(yè)提交與執(zhí)行集群分布方式下遠程提交作業(yè)1.本地完成程序編寫和調(diào)試
在自己本地安裝了單機或偽分布Hadoop系統(tǒng)的機器上,完成程序編寫和調(diào)試2.創(chuàng)建用戶賬戶
為了能訪問Hadoop集群提交作業(yè),需要為每個程序用戶創(chuàng)建一個賬戶,獲取用戶名、密碼等信息。Hadoop集群遠程作業(yè)提交與執(zhí)行集群分布方式下遠程提交作業(yè)3.將數(shù)據(jù)和程序傳送到Hadoop集群準備好數(shù)據(jù)和程序目錄例如:
me@local:~/workspace$ls-Rwordcount
wordcount:wordcount.jarwordcount/files:file01.txtfile02.txt用scp命令傳送至Hadoop平臺主機上:
me@local:~/workspace$scp-rwordcountusername@Master:workspace/wordcountusername@
Master‘spassword:[在此輸入您的密碼]Hadoop集群遠程作業(yè)提交與執(zhí)行集群分布方式下遠程提交作業(yè)4.用SSH命令遠程登錄到Hadoop集群
me@local:~/workspace$sshusername@Masterusername@Master'spassword:[在此輸入您的密碼]5.將數(shù)據(jù)復(fù)制到HDFS中進入到程序包所在目錄:username@Master:~$cdworkspace/wordcountusername@Master:~/workspace/wordcount$lsfileswordcount.jar
用hadoopdfs–put命令將數(shù)據(jù)從Linux文件系統(tǒng)中復(fù)制到HDFS:
username@Master:~/workspace/wordcount$hadoopdfs-putfilestest-inHadoop集群遠程作業(yè)提交與執(zhí)行集群分布方式下遠程提交作業(yè)6.用hadoopjar命令向Hadoop提交計算作業(yè)
username@Master:~/workspace/wordcount$hadoopjarwordcount.jartest-intest-out這里的test-in為被統(tǒng)計的文本文件的目錄,test-out為指定的輸出結(jié)果的目錄,注意test-out目錄事先不能存在,若存在需要先刪除。Hadoop集群遠程作業(yè)提交與執(zhí)行集群分布方式下遠程提交作業(yè)7.查看運行結(jié)果查看test-out目錄,統(tǒng)計結(jié)果被輸出到文件test-out/part-r-00000中username@Master:~/workspace/wordcount$hadoopdfs-lstest-outFound2itemsdrwxr-xr-x-hadoopusrsupergroup02010-05-2320:29/user/hadoopusr/test-out/_logs-rw-r--r--1hadoopusrsupergroup352010-05-2320:30/user/hadoopusr/test-out/part-r-00000
查看計算結(jié)果username@Master:~/workspace/wordcount$hadoopdfs-cattest-out/part-r-00000GoodBye 1Hadoop 2Hello 2World 1
也可以把文件從HDFS中復(fù)制到Linux文件系統(tǒng)中查看username@Master:~/workspace/wordcount$hadoopdfs-gettest-out/part-r-00000test-out.txtusername@Master:~/workspace/wordcount$vitest-out.txtGoodBye 1Hadoop 2Hello 2World 1Hadoop集群遠程作業(yè)提交與執(zhí)行集群分布方式下遠程提交作業(yè)8.用Hadoop的Web界面查看Hadoop集群和作業(yè)狀態(tài)在瀏覽器中打開http://NameNode節(jié)點IP:50070/.可看到集群的基本信息Hadoop集群遠程作業(yè)提交與執(zhí)行集群分布方式下遠程提交作業(yè)8.用Hadoop的Web界面查看Hadoop集群和作業(yè)狀態(tài)打開頁面中的NamenodeLogs鏈接,可以查看到大量的日志文件,每個都可以打開查看其內(nèi)容分布式Hadoop集群遠程作業(yè)提交與執(zhí)行集群分布方式下遠程提交作業(yè)8.用Hadoop的Web
界面查看Hadoop
集群和作業(yè)狀態(tài)點擊一個作業(yè)可以
查看作業(yè)的詳細信息分布式Hadoop集群遠程作業(yè)提交與執(zhí)行開發(fā)環(huán)境與工具
在程序員本地的單機Hadoop系統(tǒng)上進行程序設(shè)計與調(diào)試,然后上載到Hadoop集群上運行。Eclipse開發(fā)環(huán)境Eclipse是一個開源的軟件集成開發(fā)環(huán)境(IDE),可以提供對Java應(yīng)用的編程開發(fā)所需要的完整工具平臺。Eclipse官方網(wǎng)站:/可以下載Linux版本的EclipseIDEforJava開發(fā)包,并安裝在本地的Linux系統(tǒng)中4.Hadoop
MapReduce程序開發(fā)啟動Eclipse
Hadoop
MapReduce程序開發(fā)創(chuàng)建JavaProjectHadoop
MapReduce程序開發(fā)創(chuàng)建JavaProjectHadoop
MapReduce程序開發(fā)配置JavaProject加入外部jar文件加入hadoop-0.21.0-core.jar以及l(fā)ib下所有的jar以及l(fā)ib子目錄下所有的jarHadoop
MapReduce程序開發(fā)配置JavaProject加入外部jar文件加入hadoop-0.21.0-core.jar以及l(fā)ib下所有的jar以及l(fā)ib子目錄下所有的jarHadoop
MapReduce程序開發(fā)編寫程序代碼編寫程序類代碼生成名為example的package生成example.WordCount.java類Hadoop
MapReduce程序開發(fā)WordCount編程示例基本數(shù)據(jù)計算流程Hadoop
MapReduce程序開發(fā)WordCount編程示例編程實現(xiàn)程序員主要的編碼工作如下:實現(xiàn)Map類
實現(xiàn)Reduce類
實現(xiàn)main函數(shù)(運行Job)Hadoop
MapReduce程序開發(fā)WordCount編程示例實現(xiàn)Map類這個類實現(xiàn)
Mapper接口中的
map方法,輸入?yún)?shù)中的
value是文本文件中的一行,利用
StringTokenizer將這個字符串拆成單詞,然后通過context.write收集<key,value>對。代碼中
LongWritable,IntWritable,Text均是
Hadoop中實現(xiàn)的用于封裝
Java數(shù)據(jù)類型的類,這些類都能夠被串行化從而便于在分布式環(huán)境中進行數(shù)據(jù)交換,可以將它們分別視為
long,int,String的替代。Hadoop
MapReduce程序開發(fā)WordCount編程示例Map類代碼publicstaticclassTokenizerMapper //定義Map類實現(xiàn)字符串分解
extendsMapper<Object,Text,Text,IntWritable>{privatefinalstaticIntWritableone=newIntWritable(1);privateTextword=newText();//實現(xiàn)map()函數(shù)
publicvoidmap(Objectkey,Textvalue,Contextcontext)
throwsIOException,InterruptedException{//將字符串拆解成單詞StringTokenizeritr=newStringTokenizer(value.toString()); while(itr.hasMoreTokens()){word.set(itr.nextToken()); //將分解后的一個單詞寫入word類
context.write(word,one); //收集<key,value>}}}Hadoop
MapReduce程序開發(fā)詳細WordCount程序代碼Map類代碼publicstaticclassTokenizerMapper //定義Map類實現(xiàn)字符串分解
extendsMapper<Object,Text,Text,IntWritable>{privatefinalstaticIntWritableone=newIntWritable(1);privateTextword=newText();//實現(xiàn)map()函數(shù)
publicvoidmap(Objectkey,Textvalue,Contextcontext)
throwsIOException,InterruptedException{//將字符串拆解成單詞StringTokenizeritr=newStringTokenizer(value.toString()); while(itr.hasMoreTokens()){word.set(itr.nextToken()); //將分解后的一個單詞寫入word類
context.write(word,one); //收集<key,value>}}}Hadoop
MapReduce程序開發(fā)詳細WordCount程序代碼實現(xiàn)Reduce類這個類實現(xiàn)
Reducer接口中的
reduce方法,輸入?yún)?shù)中的(key,values)是由
Map任務(wù)輸出的中間結(jié)果,values是一個
Iterator,遍歷這個
Iterator,就可以得到屬于同一個
key的所有
value.此處,key是一個單詞,value是詞頻。只需要將所有的
value相加,就可以得到這個單詞的總的出現(xiàn)次數(shù)。Hadoop
MapReduce程序開發(fā)詳細WordCount程序代碼Reduce類代碼//定義Reduce類規(guī)約同一key的valuepublicstaticclassIntSumReducerextendsReducer<Text,IntWritable,Text,IntWritable>{privateIntWritableresult=newIntWritable();//實現(xiàn)reduce()函數(shù)publicvoidreduce(Textkey,Iterable<IntWritable>values,Contextcontext)throwsIOException,InterruptedException{intsum=0;
//遍歷迭代器values,得到同一key的所有valuefor(IntWritableval:values){sum+=val.get();}result.set(sum);
//產(chǎn)生輸出對<key,value>context.write(key,result); }}Hadoop
MapReduce程序開發(fā)詳細WordCount程序代碼實現(xiàn)main函數(shù)(運行Job)在
Hadoop中一次計算任務(wù)稱之為一個
job,
main函數(shù)主要負責(zé)新建一個Job對象并為之設(shè)定相應(yīng)的Mapper和Reducer類,以及輸入、輸出路徑等。Hadoop
MapReduce程序開發(fā)詳細WordCount程序代碼main函數(shù)代碼publicstaticvoidmain(String[]args)throwsException{//為任務(wù)設(shè)定配置文件
Configurationconf=newConfiguration(); //命令行參數(shù)
String[]otherArgs=newGenericOptionsParser(conf,args).getRemainingArgs(); if(otherArgs.length!=2){System.err.println("Usage:wordcount<in><out>");System.exit(2);} Jobjob=newJob(conf,“wordcount”); //新建一個用戶定義的Jobjob.setJarByClass(WordCount.class); //設(shè)置執(zhí)行任務(wù)的jar
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國的疆域與人口復(fù)習(xí)25張
- 人教版八年級音下冊樂期末必背復(fù)習(xí)知識點
- 滬科版初中九年級物理能源開發(fā)和利用
- 高中語文散文部分第2單元捉不住的鼬鼠-時間片論美課件新人教版選修中國現(xiàn)代詩歌散文欣賞
- 2011-2012年LOW-E玻璃市場預(yù)測及市場調(diào)查分析報告
- 2024至2030年中國孕婦裝數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國喇叭水仙花數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國臥式聚乙烯貯槽數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國分立式濾波器數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國兒童休閑運動服數(shù)據(jù)監(jiān)測研究報告
- 足療店工作人員合同
- 旅館業(yè)設(shè)施布局與室內(nèi)設(shè)計考核試卷
- 2024中國船舶報社公開招聘采編人員1人高頻難、易錯點500題模擬試題附帶答案詳解
- 室內(nèi)裝修投標方案(技術(shù)方案)
- 法務(wù)專員發(fā)言稿范文
- 服務(wù)營銷《(第6版)》 課件全套 郭國慶 第1-14章 服務(wù)與服務(wù)營銷 - 服務(wù)文化與顧客關(guān)系管理
- 高考地理一輪復(fù)習(xí):火爐城市的“熱島效應(yīng)”探究課件
- 2024-2030年天津市軌道交通行業(yè)市場發(fā)展分析及發(fā)展前景與投資研究報告
- 幼兒園工程建設(shè)施工竣工驗收與交付方案
- 2024八年級物理下冊 第八章 神奇的壓強8.1 認識壓強教案(新版)粵教滬版
- 2024年四川省南充市經(jīng)濟和信息化局下屬事業(yè)單位南充無線電監(jiān)測站考調(diào)1人高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
評論
0/150
提交評論