虚拟化与云计算(一)之 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值