首页 > 技术文章 > MapReduce两种执行环境介绍:本地测试环境,服务器环境

erbing 2018-10-29 14:50 原文

本地测试环境(windows):
1、在windows下配置hadoop的环境变量
2、拷贝debug工具(winutils.exe)到hadoop目录中的bin目录,注意winutils.exe的版本要与hadoop版本对应,否则可能会报错。
3、修改hadoop的源码 ,注意:确保项目的lib需要真实安装的jdk的lib

4、MapReduce调用的代码需要改变:
  a、src不能有服务器的hadoop配置文件
  b、在调用是使用:
  Configuration config = new  Configuration();
  config.set("fs.defaultFS", "hdfs://node7:8020");//指定namenode的主机名和端口号,因为文件是放在hdfs上的需要从hdfs上读取。
  config.set("yarn.resourcemanager.hostname", "node7");//resourcemanager的主机名。

5、可以进行Debug调试。

 

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

1、在本地直接调用,执行过程在服务器上(真正企业运行环境)
  a、把MapReduce程序打包jar包,直接放到本地
  b、修改hadoop的源码 ,注意:确保项目的lib需要真实安装的jdk的lib
  c、增加一个属性:
    config.set("mapred.jar", "D:\\wc.jar");//第一个参数:jar包名加后缀,第二个参数jar存放的位置。
  d、本地执行main方法,servlet调用MapReduce。


2、直接在服务器上,使用命令的方式调用,执行过程也在服务器上
  a、直接new Configuration对象,不用再配置其它信息。会自动从服务器上加载。
  b、把mapreduce程序打包成jar包,传送到服务器上
  c、通过: hadoop jar jar路径  类的全限定名

 

注:修改hadoop的源码

  org\apache\hadoop\io\nativeio下NativeIO.java文件,复制包名和文件到项目中,修改access方法返回值为true。

  

 

推荐阅读