`
qihuiyong6
  • 浏览: 40883 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hadoopMapReduce小例子

 
阅读更多
今天做了一个简单的mapreduce小程序,目的是熟悉一下怎么在真实的集群上跑自己的mr程序,之前写的都是在单机模拟运行的。功能很简单就是求一个key对应值里面最大的。

开发环境:

hadoop2.5

jdk1.6

eclipse3.7

1、创建一个java工程,加入如下jar包:

hadoop-common-2.5.2.jar

hadoop-mapreduce-client-common-2.5.2.jar

hadoop-mapreduce-client-core-2.5.2.jar

hadoop-mapreduce-client-jobclient-2.5.2.jar

2、主要类


MaxNumberDriver.java用于启动mapreduce程序的入口

[code="java"]package org.qhy.mapreduce.maxnumber;


import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;


public class MaxNumberDriver extends Configured implements Tool{

    @Override
    public int run(String[] arg0) throws Exception {
        if(arg0.length {


    @Override

    protected void map(LongWritable key, Text value, Mapper.Context context)

            throws IOException, InterruptedException {

        String lineVal = value.toString();

        String[] arrayVal = lineVal.split(",");

        String year= arrayVal[0],number=arrayVal[1];

        context.write(new Text(year), new IntWritable(Integer.parseInt(number)));

    }

}



MaxNumberReducer.java reducer实现类


package org.qhy.mapreduce.maxnumber;


import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;


import org.apache.commons.lang3.math.NumberUtils;

import org.apache.hadoop.io.IntWritable;

import org.apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.Reducer;


public class MaxNumberReducer extends Reducer {


//    @Override

//    protected void reduce(Text year, java.lang.Iterable numbers,

//            org.apache.hadoop.mapreduce.Reducer.Context context)

//            throws java.io.IOException, InterruptedException {

//        int maxValue = Integer.MIN_VALUE;

//        for(IntWritable value: numbers){

//                 maxValue = Math.max(maxValue,value.get());               

//        }       

//        context.write(year, new IntWritable(maxValue));

//    }

   

   

    /**

     * {@inheritDoc}使用第三方Apache Lang包

     * @see org.apache.hadoop.mapreduce.Reducer#reduce(KEYIN, java.lang.Iterable, org.apache.hadoop.mapreduce.Reducer.Context)

     */

    @Override

    protected void reduce(Text year, java.lang.Iterable numbers,

            org.apache.hadoop.mapreduce.Reducer.Context context)

            throws java.io.IOException, InterruptedException {

        Iterator itr = numbers.iterator();

        int length=0;

        List list = new ArrayList();

        while(itr.hasNext()){

            IntWritable iwVal = itr.next();

            list.add(iwVal.get());

            length++;

        }

       int[] array =  new int[length];

       for(int i=0;iexport->jar->选择导出路径(一路next)-> 记得选一下main函数类

4、运行

将jar放到系统上linux上

./hadoop jar ~/testData/MRMaxNumber.jar hdfs://hdp01nn:9000/maxnumber hdfs://hdp01nn:9000/testOut/maxnumber4







分享到:
评论

相关推荐

    net连接hadoopMapreduce驱动(MapRHiveODBC64)

    net连接hadoopMapreduce驱动(MapRHiveODBC64)net连接hadoopMapreduce驱动(MapRHiveODBC64)net连接hadoopMapreduce驱动(MapRHiveODBC64)net连接hadoopMapreduce驱动(MapRHiveODBC64)net连接hadoopMapreduce驱动...

    HadoopMapReduce教程.pdf

    HadoopMapReduce教程.pdf

    将OpenStack私有云部署到HadoopMapReduce环境中四种方案

    将OpenStack私有云部署到HadoopMapReduce环境中四种方案

    hadoopMapReduce实例解析.pdf

    其核心理念是“分而治之”,即将大任务分解为若干小任务,分配到集群的不同节点上并行处理,然后将结果合并,得到最终结果。在Hadoop中,MapReduce的工作流程主要涉及两个关键组件:JobTracker和TaskTracker。...

    Mapreduce_mapreduce项目_purplegw6_hadoopmapreduce_

    MapReduce是Google提出的一种分布式计算模型,被广泛应用于大数据处理领域,尤其是在Hadoop框架下。紫色GW6(purplegw6)可能是指一个特定的用户或团队名称,他们在Hadoop MapReduce上进行了实践项目。...

    基于HadoopMapReduce模型的应用研究

    一片论文 分享了大家学习 hadoop mapreduce模型

    .net连接hadoopMapreduce驱动(MapRHiveODBC64).rar

    标题中的".net连接hadoopMapreduce驱动(MapRHiveODBC64).rar"指的是一个用于.NET环境下的Hadoop MapReduce连接驱动程序,具体是MapRHive ODBC 64位驱动。这个驱动允许开发者在C#这样的.NET语言中,通过ODBC接口与...

    基于物品的协同推荐系统-HadoopMapReduce.zip

    MapReduce负责数据处理,通过将大规模任务拆分成可并行执行的小任务,分布在网络中的多台机器上;而HDFS则为这些任务提供高容错、高可用性的存储支持。 二、基于物品的协同推荐系统原理 协同过滤是一种广泛应用的...

    HadoopMapReduce-分区、排序、切片等.zip

    在大数据处理领域,Hadoop MapReduce 是一个关键的框架,用于处理和存储大规模数据集。本文将深入探讨MapReduce中的核心概念:分区(Partitioning)、排序(Sorting)和切片(Slicing),并结合Java源代码来理解这些...

    HadoopMapReduce:学习 Apache(大)数据库框架 - Hadoop、Pig、Hive、Hbase

    概要 目标是学习 Apache(大)数据库框架 - Hadoop、Pig、Hive、Hbase 描述 目前在 2 个数据集上有 3 个项目: 百万歌曲数据集 Most_Popular_Genres :使用非常简单的流派识别(Apache Hive 与 Apache Pig)确定...

    HadoopMapReduce原理及实例

    在这个例子中,我们需要从NCDC的历史天气数据中找出每年的最高气温。map阶段会读取每行数据,解析出年份和温度,生成(年份,温度)的键值对。reduce阶段接收到这些键值对,通过比较找到每个年份的最高温度。 3. ...

    HadoopMapReduce_WordCount:发布大数据仓库

    在提供的压缩包文件名称“HadoopMapReduce_WordCount-master”中,我们可以推测这是一个Hadoop MapReduce WordCount项目的源代码仓库。用户可能需要下载这个压缩包,解压后编译和运行代码,以实际体验和理解...

    MapReduce详解

    MapReduce详解。。

Global site tag (gtag.js) - Google Analytics