1.1  本地运行器进行本地测试

写一个MapReduce驱动程序,执行job,实现tool接口,所以可以通过hadoop的命令行去设置为本地运行模式。实现tool的run函数,在run函数中创建job执行任务,输出结果。

1.1.1         本地任务执行器定义

package Temperature;

import javafx.scene.text.Text;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.mapred.FileInputFormat;
import org.apache.hadoop.mapred.FileOutputFormat;

import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapred.jobcontrol.Job;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;

public class MaxTemperatureDrive
extends Configured implements
Tool {

public int run(String[] var1) throws Exception
    {
        if (var1.length!=2)
        {
            return -1;
        }
        JobConf conf=new JobConf(MaxTemperatureJob.class);//hadoop会根据类名去找jar包
        conf.setJobName("Max temperature");
        FileInputFormat.addInputPath(conf,new Path(var1[0]));//输入文件:单个文件或者目录
        FileOutputFormat.setOutputPath(conf,new Path(var1[1]));//输出路径,hadoop新建,不能存在。避免误覆盖
        conf.setMapperClass(TemperatureMapper.class);
        conf.setReducerClass(MaxTempertureReduce.class);
        conf.setOutputKeyClass(Text.class);//reduce的输出类型,map一致时默认,不一致,map也需要指定
       
conf.setOutputValueClass(IntWritable.class);
        JobClient.runJob(conf);
        return 0;
    }
    public static void main(String[]
args) throws Exception {
        int exitCode=
ToolRunner.run(new MaxTemperatureDrive(),args);
        System.exit(exitCode);
    }
}

编译文件,编译生成jar文件,通过hadoop的命令行参数,设置本地模式,main函数的参数参入输入输出路径,run函数执行job任务输出结果。

指定用本地模式有两种方法-conf Hadoop-local.xml或者用
–jt local

方法1:指定配置文件、输入路径、输出路径

%mvn compile

%exprot HADOOP_CLASSPATH=target/classes/

%hadoop v2.MaxTempertureDrive –conf conf/hadoop-local.xml
input/ncdc/micro output

方法2指定文件系统、本地模式、输入路径、输出路径。将mapreduce.framework.name的指针设置为local,则使用本地作业运行器运行作业。

%hadoop v2.MaxTempertureDrive –fs file:/// -jt local input/ncdc/micro output

1.1.2        
idea直接调试运行MaxTemperatureDrive

采用hadoop命令运行程序时,没法单步调试。可以直接创建测试类在idea中调试运行。

(1)创建测试类

package Temperature;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;

import static org.junit.Assert.assertThat;

public class MaxTemperatureDriveTest
{
    @Test
    public void test() throws 
Exception
    {
        Configuration conf =new Configuration();
        conf.set("fs.defaultFS","file:///");//设置默认文件系统
        conf.set("mapreduce.framework.name","local");//设置本地运行器模式
        conf.setInt("mapreduce.task.io.sort.mb",1);
        //在工程目录D:\Project\Hadoop\下创建输入input/ncdc/micro和输出目录output
        Path input =new Path("input/ncdc/micro");//输入路径
        Path output=new Path("output");//输出路径
        //删除上一次的输出,避免重复
        FileSystem fs=FileSystem.getLocal(conf);
        fs.delete(output,true);
        MaxTemperatureDrive driver=new MaxTemperatureDrive();
        driver.setConf(conf);//设置driver配置
        //传入输入路径和输出路径,调用run函数运行测试
       int exitcode=
driver.run(new String[] {input.toString(),output.toString()});
       System.out.print(exitcode);
    }
}

(2)项目路径创建输入路径和输出路径,在输入路径中写入测试数据的txt文件

(3)调试运行程序

自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:

https://www.cnblogs.com/bclshuai/p/11380657.html

6.4hadoop idea本地运行器测试的更多相关文章

  1. webpack正式、测试环境接口地址本地运行及打包命令配置

    声明:本文由w3h5原创,转载请注明出处:<webpack正式.测试环境接口地址本地运行及打包命令配置> https://www.w3h5.com/post/521.html 为了方便开发 ...

  2. LR12.53—第6课:运行负载测试

    第6课:运行负载测试 当你运行一个负载测试,LoadRunner将生成系统上的负载.然后,您可以使用LoadRunner的监控器和图形负载下,观察系统的性能. 在这一课中,你将涵盖以下主题: 一目了然 ...

  3. APP本地服务安全测试

    一.安全测试基本分类: 1.系统安全 系统加固 安全加固:比如linux中关闭telnet端口,修改ssh端口 检测一些不必要的服务(需要卸载一个ping)--保证系统的最小集 app安全加固:加一层 ...

  4. PintJS – 轻量,并发的 GruntJS 运行器

    PintJS 是一个小型.异步的 GruntJS 运行器,试图解决大规模构建流程中的一些问题. 典型的Gruntfile 会包括 jsHint,jasmine,LESS,handlebars, ugl ...

  5. IDEA开发spark本地运行

    1.建立spakTesk项目,建立scala对象Test 2.Tesk对象的代码如下 package sparkTest /** * Created by jiahong on 15-8-2. */ ...

  6. 开发函数计算的正确姿势 —— 使用 Fun Local 本地运行与调试

    前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算 ...

  7. spark之scala程序开发(本地运行模式):单词出现次数统计

    准备工作: 将运行Scala-Eclipse的机器节点(CloudDeskTop)内存调整至4G,因为需要在该节点上跑本地(local)Spark程序,本地Spark程序会启动Worker进程耗用大量 ...

  8. Maven运行JUnit测试(http://www.360doc.com/content/13/0927/15/7304817_317455642.shtml)

    Maven单元测试 分类: maven 2012-05-09 15:17 1986人阅读 评论(1) 收藏 举报 maven测试junit单元测试javarandom   目录(?)[-] maven ...

  9. 本地运行项目成功 ,但在服务器运行程序就会报Failed to establish a new connection: [Errno -2] Name or service not known

    equests.exceptions.ConnectionError: HTTPSConnectionPool(host=): Max retries exceeded with url: /appa ...

随机推荐

  1. 微信小程序wx:key以及wx:key=" *this"详解:

    今天写微信小程序无意中看到控制台给出了这样一行提示: 求解百度才知道,给大家分享一下: 1.wx:for定义 官方文档:在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲 ...

  2. kong网关命令(一)

    上次在虚拟机里安装kong网关后,因为版本(1.4)太高,目前Kong Dashboard无法支持, 后续发现Git上有个开源工具Kong admin ui,下载源码并部署到NGINX. 但是发现使用 ...

  3. Python笔记-备忘

    一.向列表添加元素 x.append(y) #末尾添加一个元素 x.extend([y,z]) #末尾添加多个元素 x.insert(index,y) 二.向列表获取元素 x[index] 三.从列表 ...

  4. Zookeeper 安装及集群配置注意点

    Zookeeper在ubuntu下安装及集群搭建,关于集群搭建,网上很多文章 可以参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-z ...

  5. JavaScript知识点:分支结构(if、switch)+算法例题

    if-else分支 1.if条件应该是boolean类型的值或表达式 2.如果条件不是Boolean,会进行自动转换 以下几种情况会默认转换为 false: if(0).if(0.0) if(NaN) ...

  6. JS错误信息类型

    1.SyntaxError 语法错误 ①变量名不规范 // 变量名不规范 var 1 = 1; 未被捕获的语法错误,这个错误是js机制自动抛出来的 意外的数字 // 下面两个是同一种情况 var 1a ...

  7. spring data 入门

    提出问题 我是Sping Data,是程序员的春天,因为我提供很多接口给开发人员, 减少程序员重复的写CRUD和分页等方法,你们也可以叫我春D,或者春帝,因为我很酷 解决问题 在Spring Data ...

  8. 转:applicationContext.xml文件放置位置不同而导致的jUnit测试的时候路径的不同

    如果applicationContext.xml文件放置在src下面的的时候使用jUint测试的时候编写的路径应该是这样的: @Test public void saveTest() { Applic ...

  9. 12 Windows编程——子窗口和系统内置窗口类“BUTTON”

    创建子窗口类,使得子窗口有自己的处理过程. 子窗口类型WS_CHILD不能和WS_POPUP一起使用!为什么子窗口要有自己的处理过程?如果使用主窗口类来创建子窗口,那么子窗口和主窗口将公用窗口处理过程 ...

  10. 浅谈angularJs

    在家都知道,angular 可以实现双项数据绑定,其中它的占位符是{{}},他是是MVC数据分离, 首先要在<html>或<body>中建一个<body ng-app=& ...