Hadoop集群WordCount详解

这篇具有很好参考价值的文章主要介绍了Hadoop集群WordCount详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hadoop集群WordCount详解

  • MapReduce理论介绍
  • MapReduce处理过程
  • MapReduce代码

1.MapReduce 理论介绍

1.1 MapReduce编程模型

MapReduce采用”分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。简单地说,MapReduce就是”任务的分解与结果的汇总”。

在Hadoop中,用于执行MapReduce任务的机器角色有两个:一个是JobTracker;另一个是TaskTracker,JobTracker是用于调度工作的,TaskTracker是用于执行工作的。一个Hadoop集群中只有一台JobTracker。

在分布式计算中,MapReduce框架负责处理了并行编程中分布式存储、工作调度、负载均衡、容错均衡、容错处理以及网络通信等复杂问题,把处理过程高度抽象为两个函数:map和reduce,map负责把任务分解成多个任务,reduce负责把分解后多任务处理的结果汇总起来。

需要注意的是,用MapReduce来处理的数据集(或任务)必须具备这样的特点:待处理的数据集可以分解成许多小的数据集,而且每一个小数据集都可以完全并行地进行处理。

1.2 MapReduce处理过程

在Hadoop中,每个MapReduce任务都被初始化为一个Job,每个Job又可以分为两种阶段:map阶段和reduce阶段。这两个阶段分别用两个函数表示,即map函数和reduce函数。map函数接收一个

public static void main(String[] args) throws Exception {
  Configuration conf = new Configuration();
  String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
  if (otherArgs.length != 2) {
    System.err.println("Usage: wordcount <in> <out>");
    System.exit(2);
  }
  Job job = new Job(conf, "word count");
  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);
}

在MR程序中,首先创建一个Job,并进行配置,然后通过调用Job的waitForCompletion方法将Job提交到MapReduce集群。这个过程中,Job存在两种状态:Job.JobState.DEFINE和Job.JobState.RUNNING,创建一个Job后,该Job的状态为Job.JobState.DEFINE,Job内部通过JobClient基于org.apache.hadoop.mapred.JobSubmissionProtocol协议提交给JobTracker,然后该Job的状态变为Job.JobState.RUNNING。

运行WorkCount

1.准备工作

  • 1)创建本地示例文件

    首先在”/home/hadoop”目录下创建文件夹”file”。
      
    Hadoop集群WordCount详解

    接着创建两个文本文件file1.txt和file2.txt,使file1.txt 内容为”Hello World”,而file2.txt的内容为”Hello Hadoop”。

  • 2)在HDFS上创建输入文件夹

Hadoop集群WordCount详解

  • 3)上传本地file中文件到集群的input目录下

Hadoop集群WordCount详解

2 运行例子

  • 1)在集群上运行WordCount程序

    备注:以input作为输入目录,output目录作为输出目录。

    已经编译好的WordCount的Jar在”/usr/hadoop”下面,就是”hadoop-examples-1.0.0.jar”,所以在下面执行命令时记得把路径写全了,不然会提示找不到该Jar包。
      Hadoop集群WordCount详解

3 查看结果

  • 1)查看HDFS上output目录内容

Hadoop集群WordCount详解

  • 2)查看结果输出文件内容

Hadoop集群WordCount详解

3WordCount源码分析

Hadoop提供了如下内容的数据类型,这些数据类型都实现了WritableComparable接口,以便用这些类型定义的数据可以被序列化进行网络传输和文件存储,以及进行大小比较。

BooleanWritable:标准布尔型数值

ByteWritable:单字节数值

DoubleWritable:双字节数

FloatWritable:浮点数

IntWritable:整型数

LongWritable:长整型数

Text:使用UTF8格式存储的文本

NullWritable:当<key,value>中的key或value为空时使用

文章来源地址https://www.toymoban.com/news/detail-418571.html

到了这里,关于Hadoop集群WordCount详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据挖掘实验:使用 Hadoop 实现 WordCount 应用

    使用 Hadoop 实现WordCount 应用。 WordCount 是一个最简单的分布式应用实例,主要功能是统计输入目录中所有单词出现的总次数,如文本文件中有如下内容: Hello world 则统计结果应为: Hello 1 world 1 WordCount 可以使用多种方式实现,本次实验内容选择使用 Hadoop 实现 WordCount 程序,并

    2023年04月17日
    浏览(55)
  • Hadoop之——WordCount案例与执行本地jar包

    目录 一、WordCount代码 (一)WordCount简介 1.wordcount.txt (二)WordCount的java代码 1.WordCountMapper 2.WordCountReduce 3.WordCountDriver (三)IDEA运行结果 (四)Hadoop运行wordcount 1.在HDFS上新建一个文件目录 2.新建一个文件,并上传至该目录下 3.执行wordcount命令 4.查看运行结果 5.第二次提交报错原因 6.进

    2024年02月08日
    浏览(43)
  • Hadoop生态圈实战系列:第一篇 Hadoop 集群安装及使用详解

    作者:禅与计算机程序设计艺术 Apache Hadoop 是一款开源的、分布式文件系统和计算平台。它由 Apache 基金会开发,并于 2011 年成为 Apache 顶级项目之一。Hadoop 的主要特性包括: 分布式存储: Hadoop 允许将数据存储在多个服务器上,在同一个集群中,并提供高容错性和可靠性。

    2024年02月08日
    浏览(47)
  • Kali Linux 安装搭建 hadoop 平台 调用 wordcount 示例程序 详细教程

    目标: *安装虚拟机,在自己虚拟机上完成hadoop的伪分布式安装。(安装完成后要检查)* 安装SSH Server服务器:apt-get install openssh-server 更改默认的SSH密钥 cd /etc/ssh mkdir ssh_key_backup mv ssh_host_* ssh_key_backup 创建新密钥:dpkg-reconfigure openssh-server 允许 SSH Root 访问,修改SSH 配置文件

    2024年02月04日
    浏览(42)
  • hadoop 学习:mapreduce 入门案例一:WordCount 统计一个文本中单词的个数

    这个案例的需求很简单 现在这里有一个文本wordcount.txt,内容如下 现要求你使用 mapreduce 框架统计每个单词的出现个数  这样一个案例虽然简单但可以让新学习大数据的同学熟悉 mapreduce 框架 (1)创建一个 maven 工程,maven 工程框架可以选择quickstart (2)在properties中添加 had

    2024年02月11日
    浏览(43)
  • hadoop学习:mapreduce的wordcount时候,继承mapper没有对应的mapreduce的包

    踩坑描述:在学习 hadoop 的时候使用hadoop 下的 mapreduce,却发现没有 mapreduce。 第一反应就是去看看 maven 的路径对不对 settings——》搜索框搜索 maven  检查一下 Maven 路径对不对 OK 这里是对的 那么是不是依赖下载失败导致 mapreduce 没下下来 去本地仓库里去看看(上图最后一行就

    2024年02月11日
    浏览(43)
  • Java 操作 Hadoop 集群之 HDFS 的应用案例详解

    注意:本文内容基于 Hadoop 集群搭建完成基础上: Linux 系统 CentOS7 上搭建 Hadoop HDFS集群详细步骤 本文的内容是基于下面前提: Hadoop 集群搭建完成并能正常启动和访问 Idea 和 Maven 分别安装完成 需要有 JavaSE 基础和熟悉操作hadoop 的 hdfs dfs 命令 Maven 及 idea 中 Maven 相关配置 本地

    2024年04月16日
    浏览(43)
  • Linux多虚拟机集群化配置详解(Zookeeper集群、Kafka集群、Hadoop集群、HBase集群、Spark集群、Flink集群、Zabbix、Grafana部署)

    前面安装的软件,都是以单机模式运行的,学习大数据相关的软件部署,后续安装软件服务,大多数都是以集群化(多台服务器共同工作)模式运行的。所以,需要完成集群化环境的前置准备,包括创建多台虚拟机,配置主机名映射,SSH免密登录等等。 我们可以使用VMware提供

    2024年02月04日
    浏览(52)
  • 【大数据】HADOOP-Yarn集群界面UI指标项详解(建议收藏哦)

    集群监控信息指标详解 Apps Submitted:已提交的应用 Apps Completed:已完成的应用 Apps Running:正在运行的应用 Containers Running:正在运行的容器 Memory Total:集群总内存,大小等于所有的NodeManager管理的内存之和 Memory Used:已使用内存 VCores Total:集群 CPU 总核数, 等于所有的NodeMana

    2023年04月09日
    浏览(35)
  • Hadoop-HDFS详解与HA,完全分布式集群搭建(细到令人发指的教程)

    本篇篇幅较长,有许多集群搭建干货,和枯燥乏味但是面试可能问到的理论知识。 思来想去不知道怎样才能鼓励自己加油学习,想想要面对的生活还是假吧意思打开学习视频吧。 目录 一、引入 hdfs是什么 hdfs的由来 hdfs架构体系 hdfs的优缺点 优点 缺点 二、HDFS_block简介和注意

    2023年04月19日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包