MapReduce的执行环境

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

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

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

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


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



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

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

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


(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

运行日志和结果如下


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

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


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


这种方式是在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路径  类的全限定名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值