• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > 【hadoop】 3002-mapreduce程序统计单词个数示例,hadoopmapreduce

【hadoop】 3002-mapreduce程序统计单词个数示例,hadoopmapreduce

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含hadoop查看副本个数,hadoop小程序,hadoop程序,小程序示例,微信小程序示例等服务器相关知识,网友希望可以进行参考

【hadoop】 3002-mapreduce程序统计单词个数示例,hadoopmapreduce


一、新建文本文件wordcount.txt,并上传至hdfs服务器上 [hadoop@cloud01 HDFSdemo]$ hadoop fs -cat /wc/wordcount.txt
hello world
hello China
hello wenjie
hello USA
hello China
hello China
hello Japan
[hadoop@cloud01 HDFSdemo]$ hadoop fs -cat /wc/wordcount1.txt
hello USA

期望结果: <hello,8>,<world,1><China,3><wenjie,1>,<USA,2>,<Japan,1>
二、通过MR程序统计 1、在Eclipse下编写map程序、reduce程序、Main主程序
package mapreduce;

import java.io.IOException;

import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

/**
* Mapper
*
* @author shenfl
*
*/
public class WCMapper extends Mapper<LongWritable, Text, Text, LongWritable> {

     /**
     *  @param key : text offset
     *  @param value: each line text
     *  @context : hadoop context
     */
     protected void map(LongWritable key, Text value, Context context) throws IOException,
          InterruptedException {

          String[] values = StringUtils.split(value.toString(), " ");
         
          for(String v:values){
               context.write(new Text(v),new LongWritable(1));
          }
     }
}



package mapreduce;

import java.io.IOException;

import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

public class WCReducer extends Reducer<Text, LongWritable, Text, LongWritable> {

     @Override
     protected void reduce(Text key, Iterable<LongWritable> values, Context context) throws IOException,
               InterruptedException {

          long count = 0;
          for(LongWritable v:values){
               count += v.get();
          }
          context.write(key, new  LongWritable(count));
     }
}
2、Main主程序查看运行结果
package mapreduce;

import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
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.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;

/**
* <p>
* Test hadoop 2.4.1 version program
* </p>
*
* @author shenfl
*
*/
public class WordCount {

     private static final String HDFS_PATH = "hdfs://cloud01:9000";

     public static void main(String[] args) {

          Configuration conf = new Configuration();
          try {
               // conf.set("", "");
               Job job = Job.getInstance(conf);

               /**
               * Set the job's jar file by finding an example class location.
               *
               * @param cls
               *            the example class.
               */
               job.setJarByClass(WordCount.class);
               job.setJar("wc.jar");
              
               job.setInputFormatClass(TextInputFormat.class);
               job.setOutputFormatClass(TextOutputFormat.class);

               job.setMapperClass(WCMapper.class);
               job.setReducerClass(WCReducer.class);

               job.setMapOutputKeyClass(Text.class);
               job.setMapOutputValueClass(LongWritable.class);

               job.setOutputKeyClass(Text.class);
               job.setOutputKeyClass(LongWritable.class);

               Path inputPath = new Path(HDFS_PATH + "/wc");
               Path outputDir = new Path(HDFS_PATH + "/tmp");
               /**
               * Set the array of as the list of inputs for the
               * map-reduce job.
               * @param job The job to modify
               * @param inputPaths
               *            the of the input directories/files for
               *            the map-reduce job.
               */
            
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 【hadoop】 3002-mapreduce程序统计单词个数示例,hadoopmapreduce

相关文章

  • 机器学习数学基础- gradient descent算法(上),gradientdescent
  • Hbase shell操作(完整版记录),hbaseshell
  • MapReduce程序之实现单表关联,mapreduce单表关联
  • Hive之简单查询不启用MapReduce,hive启用mapreduce
  • Hadoop中查看一个文件位置信息,
  • Storm计算结果是如何存放的,Storm计算结果存放
  • 这会不会是顶好的实现万物互联的途径?--设备智能化改造,万物--
  • ElasticSearch的分布式安装
  • 剖析Docker文件系统:Aufs与Devicemapper,dockeraufs
  • OSTC 2015,ostc2015

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • 微软云和阿里云的区别,微软云和阿里
    • -bash:jps:command not found,-bashjps
    • MapReduce的两表join一般操作,mapreduce表join
    • myeclipse2013 建的web项目没有web.xml,myeclipse中web.xml
    • 从事Cloud行业需要掌握的基本技能清单,cloud基本技能
    • 一步一步跟我学hadoop(1)----hadoop概述和安装配置,hadoop----hadoop
    • Twitter 新一代流处理利器——Heron 论文笔记之Storm Limitations,
    • mysql数据导入hbase
    • 如何动态地给vSphere虚拟机模板注入信息,vsphere虚拟机
    • 搭建私有 Docker 仓库服务器,docker仓库

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有