我的第一个wordcount程序

什么是WordCount?WordCount如何实现编程? 上述代码中,word_count函数接受一个文本字符串作为参数,并返回一个字典,其中键是每个单词,值是对应的出现次数。在函数内部,首先将文本转换为小写,并将标点符号替换为空格,以便正确地分割单词。然后,使用split方法将文本分割成单词列表。接下来,通过遍历单词列表,统计每个单词的出现次数,并将结果存储在word_count字典中。WordCount是一种常见的文本处理任务,用于计算给定文本中单词的数量。我们可以根据需要进一步处理这个字典,例如按照出现次数进行排序或输出频率最高的单词。 阅读详情
环境:hadoop 版本2.6.0  jdk版本1.7.0 伪分布式环境下运行wordcount程序
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
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.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;
public class WordCount {

  public static class TokenizerMapper
       extends Mapper<Object, Text, Text, IntWritable>{

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

    public void map(Object key, Text value, Context context
                    ) throws IOException, InterruptedException {
      StringTokenizer itr = new StringTokenizer(value.toString());
      while (itr.hasMoreTokens()) {
        word.set(itr.nextToken());
        context.write(word, one);
      }
    }
  }

  public static class IntSumReducer
       extends Reducer<Text,IntWritable,Text,IntWritable> {
    private IntWritable result = new IntWritable();

    public void reduce(Text key, Iterable<IntWritable> values,
                       Context context
                       ) throws IOException, InterruptedException {
      int sum = 0;
      for (IntWritable val : values) {
        sum += val.get();
      }
      result.set(sum);
      context.write(key, result);
    }
  }

  public static void main(String[] args) throws Exception {
    Configuration conf = new Configuration();
    conf.set("mapred.job.tracker", "ip地址:9001");
    conf.set("fs.default.name", "hdfs://ip地址:9000");
    //conf.set("mapred.jar", "C:\\Users\\Administrator\\Desktop\\wordcount.jar");
    String[] otherArgs = {"/user/input","/user/output/1.txt"};
    if (otherArgs.length != 2) {
      System.err.println("Usage: wordcount <in> <out>");
      System.exit(2);
    }
    Job job = new Job(conf, "WordCount");
    job.setJarByClass(WordCount.class);
    job.setMapperClass(TokenizerMapper.class);
    job.setCombinerClass(IntSumReducer.class);
    job.setReducerClass(IntSumReducer.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);
    FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
    FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
    System.exit(job.waitForCompletion(true) ? 0 : 1);
  }
}

第一次运行并没有成功,出现下列问题

于是

调了一会儿 发现原来是hdfs路径的问题,于是改为程序中的路径,便能正确运行了,输入输出见下图:



第一个wordcount程序 hadoop集群中,系统自带了许多mapreduce程序例子,在{%HOME%}/hadoop-mapreduce/hadoop-mapreduce-examples.jar里面有许多小例子,可以在hadoop集群中直接运行命令. 当然运行前需要在HDFS上创建input目录和output目录, input目录需要一个输入文件,比如/s_tmp/input/tmp.txt 接下来需要创建ou... 阅读详情

相关推荐

hadoop第一个python wordcount程序

参考博客:https://www.cnblogs.com/kaituorensheng/p/3826114.htmlhttps://blog.csdn.net/wangato/article/details/70173682hadoop集群框架搭建完了,试了几次很稳定,但是这只是第一步,编程才是重要的,另外,虽然hadoop的教程大多数都是用java编写也很清晰,但是对我来说最大的问题就是:我不会...

qq_35710240的博客 1649

示例程序WordCount的执行

面对大数据,大数据的存储和处理,就好比一个人的左右手,显得尤为重要。Hadoop比较适合解决大数据问题,很大程度上依赖其大数据存储系统,即HDFS和大数据处理系统,即MapReduce。而对于MapReduce,单词计数是最简单也是最能体现 MapReduce 思想的程序之一,可以称为 MapReduce 版 “Hello World“,该程序的完整代码可以在 Hadoop 安装包的“src/examples“目录下找到。 单词计数主要完成功能是:统计一系列文本文件中每个单词出现的次数,如下图所示。 本实验

需要远程指导仿真实验、代码有问题的,请后台私信或者关注公众号 3529

Spark第一个程序开发 wordcount

这里介绍了程序运行在本地模式和Standalone模式两种方式package com.spark.appimport org.apache.spark.{SparkContext, SparkConf}/** * Created by Administrator on 2016/7/24 0024. */ object WordCount { def main(args: Array[S

大冰的小屋 2万+

Hadoop 第一个应用程序 WordCount

使用 Java 语言编写 MapReduce 非常方便,因为 Hadoop 的 API 提供了 Mapper 和 Reducer 的抽象类,只需要继承这两个抽象类,然后实现抽象类里面的方法就可以了。

SmartSi 467

MapReduce编写wordcount程序

新手上路,MapReduce编写wordcount程序,包含了一些遇到的问题的解决办法。

m0_63716485的博客 1438

大数据经典实验案例-WordCount原理详解和代码书写

大数据经典实验案例-WordCount原理详解和代码书写 本次实验基于hadoop框架和linux环境,所以,请保证您的电脑拥有hadoop环境(hdfs和mapreduce) 实验目的:掌握hadoop的一些基本命令操作和使用JavaAPI进行实验开发。 实验步骤: 启动hdfs 2.通过idea创建一个Java项目,并导入Hadoop相关的依赖包:创建项目通过普通的new一个Javaproject 即可,然后在src下新建一个mapreduce包:如下: 3.导入依赖包:file->rpoj

小吴同学的博客 2925

IDEA开发WordCount程序(Spark程序

在IDEA工具在本地开发WordCount单词计数程序的相关步骤。

qq_53325156的博客 3025

第一个MapReduce程序——WordCount

通常我们在学习一门语言的时候,写的第一个程序就是Hello World。而在学习Hadoop时,我们要写的第一个程序就是词频统计WordCount程序。一、MapReduce简介1.1 MapReduce编程模型MapReduce采用”分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。简单地说,MapReduce就是”

已转移博客园 3万+

Spark运行第一个Scala程序WordCount

1、前置条件安装 hadoop:https://blog.csdn.net/jxq0816/article/details/78736449 scala:https://www.runoob.com/scala/scala-install.html2、Idea安装Scala插件 3、代码 object ScalaWordCount { def main(args: Array[St...

2950

IDEA+Maven开发第一个Hadoop程序WordCount

IDEA+Maven开发第一个Hadoop程序WordCount   1. 新建一个maven项目选择JDK版本。   2.设置GroupId和ArtifactId       3.设置项目名称     4.来到setting的javaCompiler更改为自己对应的JDK版本。     5.复制集群中hadoop-2.7.2.gz文件到D盘,并且在bin目...

Mr.Cao 1119

WordCount第一个MapReduce程序

本文假设你已经安装并配置好了Hadoop。什么?如果你还不会的话,请看看这一篇文章《在Ubuntu Linux上安装Apache Hadoop》。我们将在Hadoop上运行我们的第一个MapReduce程序WordCount。该程序从txt文件中读取若干篇文章,计算每个单词出现的次数,最终以txt文件的形式输出计算结果。在计算结果中,我们可以看到每一行的开头是一个出现在文章中的单词,以及该单词在所

linchen2013的专栏 937

Spark学习之第一个程序 WordCount

WordCount程序 求下列文件中使用空格分割之后,单词出现的个数 input.txt java scala python hello world java pyfysf upuptop wintp top sfok sf sf sf java android sf pyfysf upuptop pyfysf upuptop java android spark hello worl...

趣学程序 705

idea开发spark环境搭建 以及第一个wordcount程序

开发环境为 windows10端 和 centOS6.5端 一:windows端环境设置 1.JAVA环境配置: 下载并安装javaJDK1.8.0 配置java环境变量: 检查Java环境配置是否成功 2.安装scala2.11.12(注意不要安装最新或最高版本,视你的操作系统的Idea版本,否则会出现版本冲突) 配置Scala环境变量: 检测...

FAtumai37的博客 472

第一个spark程序wordcount

一.spark的四种部署模式 1.本地模式(local) 不指定master,或者–master local local:只是用一个cores local[N]:使用N个cores local[*]:使用所有的cores 2.standalone 集群模式 spark框架自带的模式 –master standalone的master地址 eg: –master spark://...

babysoe的博客 1075

Hadoop第一个程序 wordcount

Hadoop第一个程序 wordcount package com.songguoliang.hadoop.chapter05; import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache

蝈蝈的博客 1368

Spark 运行第一个Scala程序WordCount

安装 首先去官网下载Spark。注意Spark和Hadoop之间版本对应关系,我自己装的Hadoop 2.7.5版本,按照下面方式下载即可。 下载完成后,解压安装包至路径/usr/local tar -zxf ./spark-2.3.0-bin-hadoop2.7.tgz -C /usr/local/ cd /usr/local sudo mv ./spark-2.3.0-bin-had...

charming的专栏 2万+
上一篇: hadoop有关conf和mapreduce包的存放位置
下一篇: Hadoop集群所有的DataNode都启动不了解决办法
华夏一粒尘
博客等级 码龄10年 0粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值