`

hadoop学习;Streaming,aggregate;combiner

阅读更多

文章来源:http://www.itnose.net/detail/6044147.html 更多文章:http://www.itnose.net/type/119.html

hadoop streaming允许我们使用任何可执行脚本来处理按行组织的数据流,数据取自UNIX的标准输入STDIN,并输出到STDOUT

通过设定mapper为‘RandomSample.py 10’,我们按十分之一的采样率,没有设定特殊的reducer,一般默认使用IdentityReducer(把输入直接转向输出)

通过HDFS的命令getMerge(输出合并)或其他文件操作,可以获得正确数目的输出文件

随机采样脚本用Python实现,但是只要基于STDIN和STDOUT的脚本语言都可以,当把一个文件当作php脚本时,<?php ...........?>这里的?>要省略

在Sreaming中,每个mapper都会看到完整的数据流,也正是由mapper负责将完整的数据流分割成记录,而在java模式中,是由框架将输入数据分割为记录,每次仅将一个记录传给map()。

Streaming模式更容易维护一个分片中跨记录的状态信息,我们利用这一点计算多个记录中的最大值。

聚类算法:可以让mapper计算一个分片(多个记录)的最大值,reducer接收这些值并输出一个全局最大值

我们使用聚合函数来计算统计,它通常分为三类:分配型,代数型和全集型。最大函数式是一个分配型的例子,其他分配型包括最小值,求和和计数,分配型函数具有分配律特征,你可以在逻辑上循环的将这些函数应用到更小块的数据上

默认情况下Streaming使用制表符分离记录的key和value,当没有制表符时,整个记录被视为key,而value为空白文本。mapper可以选择把每条记录翻译成一个键值对,还是一行文本

实践上讲reducer的输出直接写入到一个文件中,但技术上讲,在写之前还有个无操作的步骤,在这个步骤中,Streaming API将reducer的输出自动用制表符分开,并将键值对送到默认的TextOutPutFormat中,即在文件输出前,默认插入一个制表符

hadoop有个aggregate软件包,它让数据汇集更为简单

combiner,aggregate,hadoop,学习,streaming0

当我们使用的时候,可以直接封装,例如编写ValueHistogram.py对ValueHistogram进行封装

combiner,aggregate,hadoop,学习,streaming1

 

在mapper和reducer之间增加了combiner,它在数据的转换上必须同reducer等价,mapreduce可以使用combiner次数不限(0到N),如果我们去掉combiner,reducer输出应保持不变,而且当combiner被应用于中间数据任意子集时,仍需保持等价转换的特性

combiner,aggregate,hadoop,学习,streaming2

 

 

 

分享到:
评论

相关推荐

    hadoop-streaming-2.8.0_jar_2.8.0_hadoop_streaming_

    标题 "hadoop-streaming-2.8.0_jar_2.8.0_hadoop_streaming_" 暗示我们正在讨论的是 Hadoop Streaming 的一个版本,具体是2.8.0。Hadoop Streaming 是一个 Hadoop 组件,允许用户使用可执行的脚本(如 Python 或 ...

    Hadoop - Hadoop Streaming

    $ hadoop jar hadoop-streaming.jar -aggregate -mapper mymapper -reducer myreducer -input input -output output ``` #### Hadoop 字段选择类 字段选择类允许从输入记录中选择特定字段。这可以通过 `-selector`...

    Hadoop Streaming 编程

    Hadoop Streaming 还支持自定义 partitioner 和 combiner,以提高效率。Partitioner 决定哪些 key 应该被发送到哪个 reducer,combiner 则可以在本地节点上对数据进行预处理,减少网络传输的数据量。 除了基础的 ...

    Hadoop Streaming 官方中文文档

    ### Hadoop Streaming中文官方文档解析 #### Hadoop Streaming概述 Hadoop Streaming是Hadoop生态系统中的一个组件,它允许用户使用自定义的编程语言(如Python、Perl或Ruby)编写MapReduce程序,而不仅仅是Java。...

    Hadoop Streaming程序实例

    Hadoop Streaming是一个强大的工具,它允许用户使用任何可执行文件(如Python脚本、Perl或Bash shell命令)作为MapReduce任务的Mapper和Reducer。这个技术使得非Java开发者也能利用Hadoop的大数据处理能力。在本文中...

    使用hadoop-streaming运行Python编写的MapReduce程序.rar

    在大数据处理领域,Hadoop是不可...学习这些内容对于掌握大数据处理和Python在Hadoop中的应用非常有帮助,特别是在处理大量结构化和非结构化数据时。同时,这也是提升数据处理能力、理解和实践MapReduce模型的好途径。

    hadoop-0.21.0-streaming.jar

    hadoop-0.21.0-streaming.jar

    了解大数据-企业级Hadoop和流数据的分析Understanding Big Data - Analytics for Enterprise Class Hadoop and Streaming Data

    本书可帮助您快速掌握大数据,并向您展示IBM为将免费提供的开源大数据技术转变为大数据平台所做的独特工作。

    ( Hadoop Streaming编程实战(C++、PHP、Python).pdf )

    Hadoop Streaming是一个非常有用的工具,它能够使得任何用编程语言实现的程序能够在Hadoop MapReduce框架中运行。Hadoop Streaming利用标准输入和标准输出来实现程序与MapReduce框架之间的通信。这个特性使得已经...

    Hadoop学习资料

    以上总结的知识点均来自给定文件的内容,涵盖了Hadoop的学习资料、版本历史、生态圈、安装、HDFS、MapReduce、Zookeeper、HBase、Hive、Storm以及数据挖掘和推荐系统等多个方面,为学习和使用Hadoop提供了全面的理论...

    HadoopStreaming编程.doc

    【Hadoop Streaming编程详解】 Hadoop Streaming是一种编程接口,它允许开发者使用任意可执行文件或脚本(如Shell、Python、Perl等)作为MapReduce作业的Mapper和Reducer。这一技术极大地扩展了Hadoop的适用性,...

    Hadoop学习笔记

    Hadoop学习笔记,自己总结的一些Hadoop学习笔记,比较简单。

    数据架构师第006节实战.基于hadoop streaming的wordcount .mp4

    数据架构师第006节实战.基于hadoop streaming的wordcount .mp4

    hadoop streaming 介绍文档

    hadoop streaming官方介绍文档

    HadoopStreaming

    ### Hadoop Streaming 知识点详解 #### 一、Hadoop及Hadoop Streaming简介 **Hadoop** 是一个能够对大量数据进行分布式处理的软件框架,由Apache基金会维护。它支持大规模的数据集(TB级别及以上),并通过...

    Hadoop streaming详细介绍

    Hadoop Streaming 是 Hadoop 生态系统中的一个工具,它允许用户使用任意可执行程序(如脚本或命令行工具)作为 Map 和 Reduce 阶段的处理程序,而不必使用 Java 编写完整的 MapReduce 应用。这个特性极大地拓宽了 ...

    最新Hadoop学习笔记

    **Hadoop学习笔记详解** Hadoop是一个开源的分布式计算框架,由Apache基金会开发,主要用于处理和存储海量数据。它的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce,两者构成了大数据处理的基础...

    Hadoop 学习笔记.md

    Hadoop 学习笔记.md

Global site tag (gtag.js) - Google Analytics