hadoop之hello world

2023-10-31

//初学hadoop ,这是第一个例子wordCount

import java.io.IOException ;

import java.util.StringTokenizer;


import org.apach.hadoop.conf.*;

import org.apach.hadoop.fs.*;

import org.apach.hadoop.io.*;

import org.apach.hadoop.mapreduce.*;

import org.apach.hadoop.mapreduce.lib.input.*;

import org.apach.hadoop.mapreduce.lib..output.*;

import org.apach.hadoop.util.Tool;

import org.apach.hadoop.util.ToolRunner;


/*

* author : guigu

* time : 2014-10-17

*/

public clss NewWordCount extends Configured implements Tool{

    

     public static class Map extends Mapper<LongWritable, Text,Text,IntWritable>{

        private final static IntWritable one = new IntWritable(1);

        private Text word = new Text();

       

        public void map (LongWritable key ,Text value, Context context) throws IOException , InterruptException{

         

           String line = value.toString();

           StringTokenizer  tokenizer = new StringTokenizer(line);

            while(tokenizer.hasMoreTokens()){

              word.set(tokenizer.nextToken());

              context.write(word, one);

           

           }

        }

    }

  public static class Reduce extends Reduce (Text , IntWritable,Text, IntWritable>{


       public void reduce (Text key, Interable<IntWritable> values, org.apache.hadoop.mapreduce.Reduce.Context context)

          throws IOException , InterruptedException{


             int sum = 0;

             for (IntWritable val :values) {

              sum += val.get();

             }

            context.write(key, new IntWritable(sum));

          }

  }


  public static void main(String[] args) throw Exception{


       int ret = ToolRunner.run(new New NewWordCount(), args);

        System.exit(ret);

  }


  public int run (String[] args) throws Exception {


      Job  job = new Job(getConf());

      job.setJarByClass(NewWordCount.class);

      job.setJobName("newwordcount");


      job.setOutputKeyClass(Text.class);

      job.setOutputValueClass(IntWritable.class);


    

      job.setMapperClass(Map.class);

      job.setReduceClass(Reduce.class);

     

      job.setInputFormatClass(TextInputFormat.class);

      job.setOutputFormatClass(TextOutputFormat.class);


       FileInputFormat.setInputPaths(job, new Path(args[0]);

       FileOutputFormat.setOutputPath(job, new Path(args[1]);


      boolean success = job.waitForCompletion(true);

      return success ? 0 : 1 ;

  

  }


}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hadoop之hello world 的相关文章

随机推荐

  • Linux清除原有ssh密钥方法

    Linux清除原有ssh密钥方法 1 问题现象 以前在mac的终端下面使用ssh user localhost输入密码就可以连接到远程的SSH服务器 今天连接的时候老是提示如下错误 KENFORFORLIN kenforstar sudo
  • pyecharts 折线图画成平滑曲线

    is smooth gt bool 是否平滑曲线显示 默认为 False 伪代码 from pyecharts import Line def draw picture column data line Line line add is s
  • w10打开网络计算机退出,Win10网络发现已关闭怎么办?

    如果已启用网络发现 则这台计算机可以发现网络上的其他计算机和设备 而且其他网络计算机也可以发现这台计算机 最近就有使用win10系统的用户发现网络提示 网络发现已关闭 网络计算机和设备不可见 请启用网络和共享中心中的网络发现 这篇文章就是P
  • root密码忘记了怎么办?(centos7)

    因为自己要记的密码过多 有时候会突然想不起或者忘记密码 比如你重要的Linux密码 别担心 这就教你如何用紧急救援模式重设root密码 开启此虚拟机 进入centos7系统 稍等片刻进入下图页面 默认选中得是第一个选项 如果不是可以用方向键
  • .net出现提交数据错误,提示Nancy.RequestExecutionException错误

    问题描述 提交数据报错 开发环境VS2017 更改了实体类 增加了字段 在webservice中清理重新生成后仍报错 解决方法 需重新引用实体类CFinal Application Entity和映射CFinal Application M
  • 安装交叉编译工具:arm-himix200-linux

    准备工作 下载交叉编译工具 arm himix200 linux 百度网盘 链接 https pan baidu com s 1XuRLd3J6S68X k6Sq1DmwA 提取码 dzas ubuntu版本 vmare安装的ubuntu1
  • 运维之DNS域名解析服务基础概念与Bind9安装

    0x00 前言简述 基础概念 基础术语 记录类型 0x01 DNS服务介绍 原理流程 实验目标 0x02 DNS服务之Bind9 Ubuntu 安装 CentOS 安装 Docker 容器 1 源码编译安装 2 APT仓库安装 Bind9
  • 游戏介绍网站-网页设计期末结课作业

    一个游戏介绍网站 附资源链接 资源下载链接 介绍 是一个用来介绍个人游戏的主页 适用于移动和PC端 是本人一个前端期末结课作业 软件架构 html css javascript jquery vue 安装教程 无需安装 直接打开即可 使用说
  • 【笔记】Go语言学习笔记

    一 概述 什么是程序 程序 为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合 Go语言 是区块链最主流的编程语言 同时也是当前最具发展潜力的语言 Go语言是Google公司创造的语言 也是Google主推的语言 Googl
  • Mitmproxy 新版配置上游(二级)代理

    Mitmproxy 最新新版配置上游代理 由于在 4 0版本之后flow live change upstream proxy server proxy 方法已经弃用 会引发 AttributeError NoneType object h
  • UGUI之Image、RawImage使用说明

    UGUI之Image RawImage使用说明 Image说明 基本属性 图片切割 九宫格 图集 RawImage可以做什么 用途一 小地图 用途二 帧动画 动图 小常识 Image说明 Image是UGUI中最常见的控件 用于图片的显示
  • golang安装步骤

    1 首先找到资源下载地址 https studygolang com dl 2 下载完毕后 下图是下载好的文件 新建一个文件夹install path 当作安装目录 此处的install file 是下载的资源文件 install path
  • 2021/2/26 单链表应用------一元多项式

    单链表应用 一元多项式 学习时间 2021 2 26 题目名称 单链表应用 一元多项式 问题描述 编写一个程序用单链表存储多项式 并实现两个一元多项式A与B相加的函数 A B刚开始是升序的 A与B之和按降序排列 例如 多项式A 1 2X 0
  • 随机高斯分布的100个2D点

    import numpy as np import matplotlib pyplot as plt 生成随机的10个点 分布在300x300的区域内 num nodes 1000 mean 150 150 高斯分布的均值 cov 500
  • 程序员必读书籍一览表

    书籍推荐 按角色划分 一 软件工程师 Clean Code 代码整洁之道 Implementation Patterns 实现模式 Code Complete 代码大全 Refactoring Improving the Design of
  • 内联函数使用注意事项

    class TableClass private int I j public int add return I j inline int dec return I j int GetNum inline int tableclass Ge
  • uinapp发送和处理二进制数据流

    uinapp发送和处理二进制数据流 将二进制数据流转为json param Object buffer export function buffer to json buffer return JSON parse base64 decod
  • github学习记录目录

    说明 很久没有更新过CSDN了 一方面是因为图片上传和排版过于麻烦 另一方面是因为没有另一方面 懒狗一只 其实是放在GitHub了 CSDN里的东西也不想搬过去 权当重新开始学习啦 平时的学习记录均会不定时的上传到GitHub上 希望走过路
  • 【数据集】——SBD数据集下载链接

    简介 SBD Dataset 是一个语义边界数据集 其包含来自 PASCAL VOC 2011 数据集中 11355 张图片的注释 这些图片均基于 Amazon Mechanical Turk 其中分割之间的冲突均为手动解决 此外 每张图像
  • hadoop之hello world

    初学hadoop 这是第一个例子wordCount import java io IOException import java util StringTokenizer import org apach hadoop conf impor