hadoop streaming同意我们使用不论什么可运行脚本来处理按行组织的数据流,数据取自UNIX的标准输入STDIN,并输出到STDOUT

我们能够用 linux命令管道查看文本有多少行,cat data.txt |wc -l 以下我们用streaming实现,先将文件放入hdfs,然后输出结果,streaming的包在contrib/streaming以下

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

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

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

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

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

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

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

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

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

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

当我们使用的时候,能够直接封装,比如编写ValueHistogram.py对ValueHistogram进行封装

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

hadoop学习;Streaming,aggregate;combiner的更多相关文章

  1. Hadoop学习笔记—8.Combiner与自定义Combiner

    一.Combiner的出现背景 1.1 回顾Map阶段五大步骤 在第四篇博文<初识MapReduce>中,我们认识了MapReduce的八大步凑,其中在Map阶段总共五个步骤,如下图所示: ...

  2. 【Hadoop】Hadoop MR 性能优化 Combiner机制

    1.概念 2.参考资料 提高hadoop的mapreduce job效率笔记之二(尽量的用Combiner) :http://sishuo(k).com/forum/blogPost/list/582 ...

  3. [Hadoop] Hadoop学习历程 [持续更新中…]

    1. Hadoop FS Shell Hadoop之所以可以实现分布式计算,主要的原因之一是因为其背后的分布式文件系统(HDFS).所以,对于Hadoop的文件操作需要有一套全新的shell指令来完成 ...

  4. Hadoop学习之旅三:MapReduce

    MapReduce编程模型 在Google的一篇重要的论文MapReduce: Simplified Data Processing on Large Clusters中提到,Google公司有大量的 ...

  5. Hadoop学习笔记(2) 关于MapReduce

    1. 查找历年最高的温度. MapReduce任务过程被分为两个处理阶段:map阶段和reduce阶段.每个阶段都以键/值对作为输入和输出,并由程序员选择它们的类型.程序员还需具体定义两个函数:map ...

  6. Hadoop学习笔记(7) ——高级编程

    Hadoop学习笔记(7) ——高级编程 从前面的学习中,我们了解到了MapReduce整个过程需要经过以下几个步骤: 1.输入(input):将输入数据分成一个个split,并将split进一步拆成 ...

  7. Hadoop学习笔记(1) ——菜鸟入门

    Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序. ...

  8. 阿里封神谈hadoop学习之路

    阿里封神谈hadoop学习之路   封神 2016-04-14 16:03:51 浏览3283 评论3 发表于: 阿里云E-MapReduce >> 开源大数据周刊 hadoop 学生 s ...

  9. Hadoop学习笔记(1)(转)

    Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序. ...

随机推荐

  1. jmter提交图片

    jmter提交图片 https://www.cnblogs.com/linglingyuese/p/4514808.html

  2. TCP包服务器接受程序

    //功能:客户端发送TCP包,此程序接受到,将字母转换为大写,在发送到客户端#include <stdio.h>#include <sys/socket.h>#include ...

  3. Hexo命令无法找到 -问题修复

    本人PC安装hexo按照官方npm方式下载: npm install -g hexo-cli 但是到了控制台,输入hexo总是无法找到该命令,提示:Command not Found!!!,无论git ...

  4. HBase 入门笔记-数据落地篇

    一.前言 关于数据落地方面,HBase官网也有相关介绍.本文主要介绍一下实际工作中涉及的数据存储方面的一些经验和技巧,主要涉及表rowkey设计.数据落地方案 二.表设计 相对于MySQL等关系型数据 ...

  5. CRLF LF CR

    The Carriage Return (CR) character (0x0D, \r) moves the cursor to the beginning of the line without ...

  6. C语言:奇偶归一猜想

    1.奇偶归一猜想——求多少步归一.(10分) 题目内容: 奇偶归一猜想——对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1. 如n = 11,得 ...

  7. LoadRunner如何获得参数化中每个关键字的搜索响应时间

    LoadRunner如何获得参数化中每个关键字的搜索响应时间 在测试搜索引擎时我们一般采用大量的搜索关键字,有时有必要了解在并发访问的情况下每个关键字的响应时间,一般如果不对脚本进行处理的话你可以获得 ...

  8. Tomcat基于MSM+Memcached实现Session共享

    简述 上一篇文章,分别演示了session sticky 和 session cluster来实现会话保持的问题,但是它们缺点都不少,实际中用的很少,所以这篇文章我们还是通过Tomcat来演示一下实际 ...

  9. 15:链表中倒数第K个节点

    /** * 面试题15:链表中倒数第K个节点 * 输入一个链表,输出该链表中倒数第k个结点. */ public class _15_linked_K { public static void mai ...

  10. 在PHP中gmtime()与time()区别

    localtime是把从1970-1-1零点零分到当前时间系统所偏移的秒数时间转换为本地时间,而gmtime函数转换后的时间没有经过时区变换,是UTC时间.2.说明:此函数获得的tm结构体的时间是日历 ...