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