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. 牛客红包OI赛 B 小可爱序列

    Description 链接:https://ac.nowcoder.com/acm/contest/224/B 来源:牛客网 "我愿意舍弃一切,以想念你,终此一生." " ...

  2. OSI & TCP/IP 参考模型

    OSI参考模型的结构 OSI划分七层结构的基本原则 网中各结点都具有相同的层次: 不同结点的同等层具有相同的功能: 同一结点内相邻层之间通过接口通信: 每一层可以使用下层提供的服务,并向其上层提供服务 ...

  3. Linux下堆漏洞的利用机制

    1.保护机制 )) malloc_printerr (check_action, "corrupted double-linked list", P); 这个就是所谓的堆指针的ch ...

  4. 域名解析A记录与CNAME有什么区别?

    A记录是直接将域名指向某个IP,如果您的主机IP不常变动就建议使用A记录.而别名解析是先将域名解析到主机别名再转跳到IP这样主机IP改变了不用重新解析.如果主机IP常变建议用别名解析 A记录正规些.独 ...

  5. 《精通Python设计模式》学习之建造者模式

    这种模式,就是将一个最终对象分级分层建造出来. 在软件发布过程中,不同的JAVA,PYTHON,NODE.JS,ZIP压缩包, 就可以使用不同的阶段来使用建造者模式的. from enum impor ...

  6. 【LOJ】#2205. 「HNOI2014」画框

    题解 我原来根本不会KM 更新每个节点增加的最小值的时候,要忽略那个方访问过的右节点!!! 然后就和最小乘积生成树一样了 代码 #include <iostream> #include & ...

  7. USACO 5.5 Hidden Password

    Hidden Password ACM South Eastern Europe -- 2003 Sometimes the programmers have very strange ways of ...

  8. autoit v3安装

  9. win7 fiddler报“Creation of the root certificate was not successful”的问题

    cd "C:\Program Files (x86)\Fiddler2" makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_Fiddl ...

  10. Windows 修改电脑属性(二)

    一.秀出自我风格的屏幕保护画面 1.气泡屏幕保护 打开电脑,按开始键,点击运行输入regedit按回车键进入注册表界面,找到如下路径:HKEY_CURRENT_USER/Software/Micros ...