`

Hadoop教程汇总连载之Hadoop基本流程和代码范例

阅读更多

基本流程:

Hadoop教程,Hadoop工作流

  

Hadoop教程,Hadoop工作流

 一个图片太大了,只好分割成为两部分。根据流程图来说一下具体的一个任务执行的情况。

1. 分布式环境中客户端创建任务并提交。

2. InputFormat做Map前的预处理,主要负责以下工作:

a) 验证输入的格式是否符合JobConfig的输入定义,这个在实现Map和构建Conf的时候就会知道,不定义可以是Writable的任意子类。

b) 将input的文件split为逻辑上的输入InputSplit,其实这就是在上面提到的在分布式文件系统中blocksize是有大小限制的,因此大文件会被划分为多个block。

c) 通过RecordReader来再次处理inputsplit为一组records,输出给Map。(inputsplit只是逻辑切分的第一步,但是如何根据文件中的信息来切分还需要RecordReader来实现,例如最简单的默认方式就是回车换行的切分)

3. RecordReader处理后的结果作为Map的输入,Map执行定义的Map逻辑,输出处理后的key,value对到临时中间文件。

4. Combiner可选择配置,主要作用是在每一个Map执行完分析以后,在本地优先作Reduce的工作,减少在Reduce过程中的数据传输量。

5. Partitioner可选择配置,主要作用是在多个Reduce的情况下,指定Map的结果由某一个Reduce处理,每一个Reduce都会有单独的输出文件。(后面的代码实例中有介绍使用场景)

6. Reduce执行具体的业务逻辑,并且将处理结果输出给OutputFormat。

7. OutputFormat的职责是,验证输出目录是否已经存在,同时验证输出结果类型是否如Config中配置,最后输出Reduce汇总后的结果。

代码范例:

业务场景描述:

可设定输入和输出路径(操作系统的路径非HDFS路径),根据访问日志分析某一个应用访问某一个API的总次数和总流量,统计后分别输出到两个文件中。

仅仅为了测试,因此没有去细分很多类,将所有的类都归并于一个类便于说明问题。

Hadoop教程,Hadoop工作流

图4 测试代码类图

LogAnalysiser就是主类,主要负责创建,提交任务,并且输出部分信息。内部的几个子类用途可以参看流程中提到的角色职责。具体的看看几个类和方法的代码片断:

LogAnalysiser::MapClass

public static class MapClass extends MapReduceBase

implements Mapper<longwritable, text,="" longwritable="" style="box-sizing: border-box;">

 {

public void map(LongWritable key, Text value, OutputCollector<text, longwritable="" style="box-sizing: border-box;"> output, Reporter reporter)

 throws IOException

&

分享到:
评论

相关推荐

    大数据Hadoop视频教程

    大数据Hadoop视频教程大数据Hadoop视频教程大数据Hadoop视频教程

    hadoop教程ppt.ppt

    hadoop教程ppt.ppt

    Hadoop集群程序设计与开发教材最终代码.zip

    《Hadoop集群程序设计与开发教材最终代码》这个压缩包文件是针对学习和理解Hadoop分布式计算框架的重要教学资源。Hadoop是Apache软件基金会开发的一个开源项目,它为大规模数据处理提供了一种分布式、容错性强的解决...

    Hadoop安装教程_单机/伪分布式配置_Hadoop2.7.1/Ubuntu 16.04

    本教程主要讲述了在 Ubuntu 16.04 环境下安装 Hadoop 2.7.1 的步骤,包括单机模式、伪分布式模式和分布式模式三种安装方式。以下是本教程的知识点总结: 1. 安装前的准备工作:创建 hadoop 用户,设置密码,增加...

    hadoop系列教程7

    Hadoop是一种开源的分布式存储和计算平台,它为存储和处理大数据提供了可扩展的解决方案。Hadoop能够高效地处理和分析大量的数据集,特别适合于海量数据的存储和分析。本文将详细介绍Hadoop集群的安装和配置,以及...

    hadoop分布式部署教程

    ### Hadoop分布式部署教程知识点详解 #### 一、Hadoop分布式集群配置背景及意义 Hadoop是一种能够处理海量数据的大规模分布式存储与处理框架。它通过Hadoop分布式文件系统(HDFS)和MapReduce计算框架提供了可靠的...

    hadoop 五本教程汇总

    通过这些教程,读者可以全面了解Hadoop的概念、架构、安装、配置和实际应用,逐步掌握处理大数据的能力。对于想从事大数据分析或Hadoop开发的人员来说,这些资源是宝贵的自学材料。同时,它们也可以帮助已经使用...

    hadoop详细视频教程

    01_hadoop_hdfs1分布式文件系统01 02_hadoop_hdfs1分布式文件系统02 03_hadoop_hdfs1分布式文件系统03 04_hadoop_hdfs1分布式文件系统04 05_hadoop_hdfs1分布式文件系统05 06_hadoop_hdfs1分布式文件系统06 07_...

    hadoop源代码存档

    【Hadoop源代码存档详解】 Hadoop是Apache软件基金会的一个开源项目,它是一个分布式文件系统,旨在提高数据处理和存储的效率。这个"hadopp源代码存档"包含了Hadoop项目的完整源代码,供开发者深入理解其内部机制,...

    新版Hadoop视频教程 段海涛老师Hadoop八天完全攻克Hadoop视频教程 Hadoop开发

    第一天 hadoop的基本概念 伪分布式hadoop集群安装 hdfs mapreduce 演示 01-hadoop职位需求状况.avi 02-hadoop课程安排.avi 03-hadoop应用场景.avi 04-hadoop对海量数据处理的解决思路.avi 05-hadoop版本选择和...

    hadoop权威指南代码(Hadoop: The Definitive Guide code)

    《Hadoop权威指南》是Hadoop领域的经典著作,其配套代码资源可以帮助读者深入理解Hadoop的内部机制和实际应用。这本书全面介绍了Hadoop生态系统,包括HDFS、MapReduce、YARN以及相关的工具和扩展。代码库`tomwhite-...

    hadoop基础教程

    很不错的hadoop基础教程,就是书有点老了,可以作为基础拿来看

    hadoop之wordcount例程代码

    在大数据处理领域,Hadoop是一个不可或缺的开源框架,它提供了分布式存储和计算的能力。WordCount是Hadoop入门学习中的一个经典示例,用于统计文本中各个单词出现的次数。这个程序简单直观,很好地展示了MapReduce的...

    Hadoop源代码分析

    通过阅读《Hadoop源代码分析》,开发者不仅可以理解Hadoop MapReduce的基本工作流程,还能深入了解其内部细节,从而更好地利用Hadoop解决大规模数据处理的挑战。无论是开发新功能、优化性能,还是排查问题,这份深入...

    hadoop教程.ppt

    hadoop教程.ppt

    Hadoop分析气象数据完整版源代码(含Hadoop的MapReduce代码和SSM框架)

    Hadoop分析气象数据完整版源代码(含Hadoop的MapReduce代码和SSM框架) 《分布式》布置了一道小作业,这是作业的所有代码,里面包含了Hadoop的MapReduce代码、和SSM框架显示数据的代码

    Hadoop安装使用教程0基础!!!易懂!!!

    Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程Hadoop安装使用教程...

    Hadoop入门教程

    本教程《Hadoop入门教程》旨在为初学者提供全面且深入的指导,帮助他们快速理解并掌握Hadoop的基本概念、架构及应用。教程由Hadoop技术论坛在2010年出版,为当时的开发者提供了宝贵的资源。 一、Hadoop简介 Hadoop...

Global site tag (gtag.js) - Google Analytics