MR执行环境有两种:本地测试环境,服务器环境

服务器环境的缺点在于不适合做调试 而本地测试环境非常适合做调试 可以在开发时选择本地测试环境 在正式运行时选择服务器环境

1. 本地测试环境(windows):

在windows下hadoop的安装目录的bin目录下放置winutils.exe文件(windows下的调试工具 兼容hadoop)

MapReduce的执行环境

(1)在windows下配置hadoop的环境变量

MapReduce的执行环境

MapReduce的执行环境

配置完环境变量后重启电脑是其生效

(2)拷贝debug工具(winutils.exe)到HADOOP_HOME/bin

(3)修改hadoop的源码,并将修改后的源码放到项目的src目录下 这样就会优先加载src下的类 而覆盖导入的jar包中的类 注意:确保项目的lib需要真实安装的jdk的lib

MapReduce的执行环境

(4)MR调用的代码需要改变:

a、src下不能有服务器的hadoop配置文件

b、在调用时使用:

Configuration config = new  Configuration();

config.set("fs.defaultFS", "hdfs://master:8020");

config.set("yarn.resourcemanager.hostname", "master");

(5)直接在windows下的Eclipse中Run As Java Application

运行日志和结果如下

MapReduce的执行环境

可以通过浏览器(master:8088)查看任务执行结果

也可以通过hdfs shell命令查看输出的内容

MapReduce的执行环境

MapReduce的执行环境

MapReduce的执行环境

与源数据进行对比可以发现统计的单词个数没有问题

MapReduce的执行环境

这种方式是在windows本地通过工具进行多线程模拟执行 因此不能通过web监控页面(master:8088或者slave3:8088)查看task的执行过程信息

2. 服务器环境:

首先需要在src下放置服务器上的hadoop配置文件

(1)在本地直接调用,执行过程在服务器上(真正企业运行环境)

a、把MR程序打包(jar),直接放到本地

b、修改hadoop的源码 ,注意:确保项目的lib需要真实安装的jdk的lib

c、增加一个属性:config.set("mapred.jar", "C:\\Users\\Administrator\\Desktop\\wc.jar");

这种方式就是在程序中设定windows下生成的jar包的位置 不需要人工手动提交 运行过程中会自动将本地的jar包提交到服务器下进行执行 这种方式可以通过web监控页面(master:8088或者slave3:8088)查看task的执行过程信息

(2)直接在服务器上,使用命令的方式调用,执行过程也在服务器上

a、把MR程序打包(jar),传送到服务器上

b、通过: hadoop jar jar路径  类的全限定名

相关文章:

  • 2021-08-08
  • 2021-09-23
  • 2021-08-18
  • 2022-12-23
  • 2022-12-23
  • 2022-01-23
猜你喜欢
  • 2021-11-19
  • 2021-04-25
  • 2021-12-06
  • 2021-08-04
  • 2021-11-10
  • 2021-11-30
  • 2021-07-25
相关资源
相似解决方案