MapReduce两种执行环境介绍:本地测试环境,服务器环境

来源:互联网 发布:帕尔哈提 知乎 编辑:程序博客网 时间:2024/06/07 06:37
1、MR执行环境有两种:本地测试环境,服务器环境
(1)本地测试环境(windows):
在windows的hadoop目录bin目录有一个winutils.exe
a、在windows下配置hadoop的环境变量
b、拷贝debug工具(winutils.ext)到HADOOP_HOME/bin
c、修改hadoop的源码 ,注意:确保项目的lib需要真实安装的jdk的lib
d、MR调用的代码需要改变:
a、src不能有服务器的hadoop配置文件
b、在调用是使用:
Configuration config = new  Configuration();
config.set("fs.defaultFS", "hdfs://node1:8020");
config.set("yarn.resourcemanager.hostname", "node2");
(2)服务器环境(linux):
首先需要在src下放置服务器上的hadoop配置文件
(2.1)在本地直接调用,执行过程在服务器上
a、把MR程序打包(jar),直接放到本地
b、修改hadoop的源码 ,注意:确保项目的lib需要真实安装的jdk的lib
c、增加一个属性:
config.set("mapred.jar", "C:\\Users\\Administrator\\Desktop\\wc.jar");
d、本地执行main方法,servlet调用MR。
(2.2)直接在服务器上,使用命令的方式调用,执行过程也在服务器上:前文已经介绍过了,参考:hadoop中mapreduce的jar包执行方式
a、把MR程序打包(jar),传送到服务器上

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


2.配置本地测试环境

将winutils.exe(网上可下载在hadoop-common-2.2.0-bin/里面可以找到)将其拷贝到从官网下载的hadoop-2.5.2.tar.gz解压后的bin目录下


(1).win下配置hadoop的配置文件

打开电脑的环境变量计算机->属性->高级->环境变量




(2).将修改的hadoop的源码拷贝到工程的src下,因为其环境变量的转义方式不同


(3)调用时添加

Configuration config = new Configuration();//以下2行代码是本机执行mapreduce的配置// hdfs的rpc通讯协议接口,放入namenode的主机ip;用于下载服务器上关于hadoop的配置文件config.set("fs.defaultFS", "hdfs://192.168.108.12:8020");//指定yarn的resourcemanager的主机名,;用于获取和写入hdfs的存储资源config.set("yarn.resourcemanager.hostname", "192.168.108.12");

(4)执行java类,调用main方法,执行成功


3.在本地直接调用,执行过程在服务器上

(1)将hadoop的配置文件放到src下,程序运行时会读取配置文件


(2)运行代码添加配置

Configuration config = new Configuration();//以下2行代码是本机执行mapreduce的配置// hdfs的rpc通讯协议接口,放入namenode的主机ip;用于下载服务器上关于hadoop的配置文件//config.set("fs.defaultFS", "hdfs://192.168.108.12:8020");//指定yarn的resourcemanager的主机名,;用于获取和写入hdfs的存储资源//config.set("yarn.resourcemanager.hostname", "192.168.108.12");config.set("mapred.jar", "C:\\Users\\Administrator\\Desktop\\wc.jar");

(3)运行

不出意外会出现权限问题

参考博客http://blog.csdn.net/xiaoshunzi111/article/details/52062640

采用给jvm添加环境变量解决问题




(4)现在运行不出现问题

0 0