Eclipse下搭建Hadoop开发环境,并运行第一个实例
有同學(xué)無法正常運(yùn)行程序,這里將Eclipse下Hadoop環(huán)境配置進(jìn)行一下說明:
? ? 1.新建Map/Reduce工程
? ? 2.設(shè)置Hadoop Locaiton,第一次使用的話,點(diǎn)擊大象,新建配置。
? ??
? ? 3.設(shè)置內(nèi)容(配置需要和Hadoop的配置文件相同):
? ? Location name和Host填寫localhost,Map/Reduce Master的端口號必須和Mapred-site.xml中的HDFS配置端口號一致(Hadoop2.2.0版本中沒有配置,建議按照Hadoop1.x配置),這里填寫9001,DFS Master填寫HDFS的端口號必須和core-site.xml中的HDFS配置端口一致,這里填寫9000,User name為Hadoop的所有者用戶名,即安裝Hadoop的Linux用戶,這里為Hduser。
? ? 5.配置好之后,開啟Hadoop,即可在Eclipse左側(cè)看到HDFS中的文件,至此,Eclipse下的環(huán)境已經(jīng)搭好。
開發(fā)實(shí)例:
? ? 1.新建工程 wordcount
? ??
? ? 2.點(diǎn)擊Configure Hadoop install directory 配置Hadoop 安裝位置,選擇Hadoop安裝根目錄,應(yīng)用。
? ? 3.Hadoop類庫這時已經(jīng)自動導(dǎo)入了。src——>new——>other可以在工程中建立Map類,Reduce類,以及MapReduceDriver類,向?qū)詣由?個類的框架,向里面填寫相關(guān)代碼,之后點(diǎn)擊MapReduceDriver類——>Run on hadoop來運(yùn)行Hadoop應(yīng)用。這個運(yùn)行是工具自動打包成jar文件愛你,并部署到Hadoop環(huán)境上去運(yùn)行的。
? ? 4.實(shí)例說明
? ? 4.1非標(biāo)準(zhǔn)步驟(在一個文件內(nèi)實(shí)現(xiàn)Map類,Redcue類,MapReduceDriver類)
? ? (1)這里沒有新建Map類,Reduce類,MapReduceDriver類,直接在工程wordcount里新建一個類文件,命名wordcount(不標(biāo)準(zhǔn),標(biāo)準(zhǔn)步驟后續(xù)補(bǔ)上)。然后將Hadoop 樣例程序wordcount.java內(nèi)容復(fù)制進(jìn)去,保存,然后選擇Run——>Run Configurarion...。
? ? (2)在Arguments標(biāo)簽頁,設(shè)置參數(shù):/home/jack/Desktop/in為我的待計(jì)算文件所在目錄(需要提前將文件拷貝進(jìn)去);/home/jack/Desktop/out是計(jì)算結(jié)果輸入目錄(程序運(yùn)行過程中自動創(chuàng)建);VM arguments是設(shè)置Map/Reduce子虛擬機(jī)使用的堆的大小。
? ? (3)查看out目錄結(jié)構(gòu)
? ? (4)查看計(jì)算結(jié)果
? ?4.2標(biāo)準(zhǔn)步驟(Map類,Reduce類,MapRedcueDriver分開建立,低耦合)
? ? (1)新建Map/Reduce工程wordcount。
? ? (2)新建Mapper.java,選擇File——>New——>Mapper,輸入包名及類名。
? ? (3)實(shí)現(xiàn)Mapper.java(在Hadoop2.2.0之中,Mapper框架的參數(shù)變?yōu)镸apper<LongWritable, Text, Text,Text>,建議改為Mapper<LongWritable, Text, Text,IntWritable>,否則會提示類型錯誤)。
? ??
? ? (4)新建Reduccer.java,選擇File——>New——>Reducer,輸入包名及類名。
? ? (5)實(shí)現(xiàn)Reducer.java(同樣在Hadoop2.2.0之中,Reducer框架的參數(shù)變?yōu)?/span>Reducer<Text,Text, Text,?Text>,reduce方法變?yōu)閞educe(Text _key, Iterable<Text> values, Context context),建議改為Reducer<Text,IntWritable, Text,?IntWritable>和reduce(Text _key, Iterable<IntWritable> values, Context context),否則會提示類型錯誤,如果Reducer中的第二個參數(shù)類型不該為IntWritable的話,最后的結(jié)果是沒有合并的)。
? ? (6)建立Map/Reduce Driver,選擇File——>New——>MapReduce Driver,輸入包名及類名。
? ? (7)實(shí)現(xiàn)MapReduce Driver.java。
? ? (8)檢查Map/Reduce程序是否已經(jīng)編譯完畢(編譯自動進(jìn)行),查看編譯的.class文件是否存在。
?? ?(9)測試Map/Reduce單詞統(tǒng)計(jì)應(yīng)用程序。右鍵wordcount.java(MapReduce Driver程序,里面含有main方法)——>Run as...——>Run Configurations...(設(shè)置輸入輸出目錄)——>選擇Java Application——>wordcount(根據(jù)自己的情況修改)——>Arguments設(shè)置Program arguments和VM arguments(VM arguments可以不設(shè)置),設(shè)置好之后,Run,即可在設(shè)置好的輸出目錄看到結(jié)果。
? ? (10)out目錄結(jié)構(gòu)
? ? (11)計(jì)算結(jié)果
總結(jié)
以上是生活随笔為你收集整理的Eclipse下搭建Hadoop开发环境,并运行第一个实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用C语言编写一个Linux下的简单she
- 下一篇: Mac上运行第一个Hadoop实例