虚拟化与云计算(一)之 Lab1 使用 Hadoop Mapreduce 进行数据处理
實(shí)驗(yàn)要求如下:
?
?
?
?
實(shí)驗(yàn)步驟與遇到的問題
?
1.開機(jī)(使用VMvare)
?
? 這一步主要吃的就是配置,推薦分配8G內(nèi)存,開機(jī)時(shí)間依配置決定。
?
2.登錄&SSH
?
? 開機(jī)后默認(rèn)界面:
?
?
?
?
? 按alt+F5切換登錄:
?
?
?
? 帳號(hào)root,默認(rèn)密碼hadoop,之后會(huì)自動(dòng)進(jìn)行修改密碼。
?
? ssh連接如下:
?
?
?
? ssh連接依照開機(jī)界面提示的IP,此處需要注意VMvare中此虛擬機(jī)網(wǎng)絡(luò)設(shè)置為nat模式即可聯(lián)網(wǎng),不行的話再去嘗試將當(dāng)前聯(lián)網(wǎng)的網(wǎng)絡(luò)共享網(wǎng)絡(luò)給該虛擬機(jī)的虛擬網(wǎng)卡(windows系統(tǒng))
?
?
?
?
?
3.下載實(shí)驗(yàn)內(nèi)容與解壓
?
進(jìn)行ssh連接后即可連通網(wǎng)絡(luò)了,使用
?
wget http://clouduv.cn/hw/cloudMR.tar.gz 命令下載作業(yè)文件
?
之后使用 tar -zxvf cloudMR.tar.gz 命令解壓
?
?
?
4.執(zhí)行start.sh
?
? 首先進(jìn)入解壓目錄 cd cloudMR
?
? 之后運(yùn)行命令? ./start.sh
?
? 再輸入學(xué)號(hào)
?
? ???
?
這里由于我已經(jīng)完成了實(shí)驗(yàn),可以看到文件已存在,實(shí)際上可以看到,上面已經(jīng)報(bào)錯(cuò)了,是系統(tǒng)原本的權(quán)限問題,以后就需要在root與hdfs用戶之間切換完成各種指令了。
?
使用 hadoop version 查看hadoop是否正常運(yùn)行
?
?
?
5.環(huán)境變量
?
?? 在進(jìn)行下面的步驟前,需要先設(shè)置好變量,不然無法編譯Java程序
?
?? 輸入命令 vi? ~/.bashrc
?
?? 打開文件后按I進(jìn)入編輯模式,編輯如下:
?
??
?
?
?
?? 也可以直接編輯 export hadoop_CLASSPATH=…..
?
?? 此處涉及到vi的諸多操作,需要學(xué)習(xí)的地方很多。
?
?? 而且此處注意文件夾名最后不要斷行,以防出錯(cuò)。
?
?? 修改完成后按Esc退出編輯模式,之后按 :進(jìn)入尾行,輸入wq保存退出:
?
??
?
?? 為使修改生效需要重啟,之后使用echo $hadoop_CLASSPATH查看是否生效:
?
?
?
? ?如上即表示成功生效!
?
?
?
6.在HDFS建立文件夾以及文件put操作
?
?? 上面的start.sh命令由于權(quán)限問題無法執(zhí)行,查看調(diào)用之后發(fā)現(xiàn)是建立文件夾以及put操作,所以此處就手動(dòng)建立完成。
?
首先使用命令 su hdfs 切換hdfs用戶:
?
?
?
?下面建立文件夾推薦在/user/root目錄下建立,這樣便于一會(huì)統(tǒng)一處理權(quán)限問題。
?
?使用hadoop建立test目錄,命令 hadoop fs –mkdir /user/root/test
?
?使用命令 hadoop fs –ls /user/root 查看已建立成功
?
?
?
?
?
?然后將需要用到的文件都轉(zhuǎn)移到test目錄下,此處我就用test代表原本的mp2目錄了。
?
首先修改test目錄的主人為root:
?
hadoop fs –chown –R root:root /user/root/test
?
?
?
使用hadoop fs –ls /user/root 查看是否修改成功
?
然后使用 su – 命令切換回root
?
?
?
之后新建目錄及put命令如下,就不一一寫了:
?
?
?
至此,準(zhǔn)備工作基本完成。
?
?
?
7.Java文件編譯及打包
?
?? 首先新建一個(gè)out目錄以保存編譯文件
?
?? 之后編譯文件到該目錄:
?
? ?javac –classpath $hadoop_CLASSPATH –d out TitleCount.java
?
?? 進(jìn)入out目錄有文件如下
?
??
?
? 打包成jar文件:
?
? 首先在out的上級(jí)目錄里建立manifest.mf文件,內(nèi)容:
?
??Main-class:TitileCount.class
?
? 這一點(diǎn)非常重要!指定主類!
?
? 然后打包命令: jar ?cvfM ?TitleCount.jar ?manifest.mf ?–C ?out/ ?.
?
?
?
? 注意最后的點(diǎn)以及大小寫,這個(gè)生成的jar才能用,僅僅cvf生成的會(huì)報(bào)錯(cuò)。
?
?
?
8.yarn&結(jié)果
?
? 在jar包所在目錄執(zhí)行如下命令
?
?
?
?
?
yarn? jar? TitleCount.jar TitleCount –D? stopwords=/user/root/test/misc/stopwords.txt? -D delimiters=/user/root/test/misc/delimiters.txt? /user/root/test/titles? result6
?
命令解析: 前面幾個(gè)就不說了
?
?TitleCount的setup函數(shù)需要的參數(shù)stopwords和delimiters, -D代表參數(shù),后面 參數(shù)名=參數(shù)文件地址 ,文件地址就是put的文件地址,這里是test,可以根據(jù)自己的實(shí)際情況替換,兩個(gè)參數(shù)都需要-D, 之后的目錄是需要的輸入titles的地址,最后是結(jié)果輸出地址,默認(rèn)在HDFS的/user/root目錄下
?
注意,每執(zhí)行一次yarn不過成功與否,所以下一次yarn不能用上一次的目錄名,否則會(huì)報(bào)錯(cuò),這也是為什么會(huì)出現(xiàn)6,,由于截圖原因,所以結(jié)果上result名僅供參考。
?
?
?
?
?
?
?
?
這樣上面沒有保錯(cuò)基本就可以等著出結(jié)果了,要有耐心,,需要跑很長時(shí)間,,
?
?
?
?
?
?
結(jié)果大概如此。
?
?
?
查看輸出文件:
?
?
?
輸出目錄根據(jù)自己的實(shí)際情況更改
?
?
?
Cat一下如下:
?
?
?
這樣應(yīng)該就是成功了,,
?
轉(zhuǎn)載于:https://www.cnblogs.com/tjulym/p/5396015.html
總結(jié)
以上是生活随笔為你收集整理的虚拟化与云计算(一)之 Lab1 使用 Hadoop Mapreduce 进行数据处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Replace-iOS
- 下一篇: Geek爱旅行 - 穿越时间的旅行