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被应用于中间数据随意子集时,仍需保持等价转换的特性

最新文章

  1. 关于 CSS 反射倒影的研究思考
  2. Junit使用教程 转
  3. 安装scapy遇到的问题
  4. ok6410内存初始化
  5. CSS 概览(CSS2.1)更新时间2014-0406
  6. 查看Sql语句执行速度
  7. MessageBox()功能
  8. VNC VIEWER的使用集锦
  9. Django实现用户注册登录
  10. webpack3配置字体图标和打包相关问题
  11. PHP中文关键词匹配
  12. canvas学习笔记,实用知识点总结(上)
  13. 一篇文章说清楚mysql索引
  14. [vue]webpack使用样式
  15. windows安装wget
  16. centos安装不上的问题
  17. C#生成流水号编码[a-z(不包括i和o) 按0-9 a-z的顺序)]
  18. jQuery的选择器的总结
  19. 20155328 2016-2017-2 《Java程序设计》第九周学习总结
  20. Error: Flash Download failed - &quot;Cortex-M0&quot;

热门文章

  1. centos7连接阿里云长时间连接不上
  2. Unix IPC之Posix消息队列(2)
  3. C#连接mariadb代码及方式
  4. Linux的bash快捷键
  5. ASP.NET:插件化机制
  6. 【Java】java.lang.NullPointerException的两个原因
  7. matplotlib 中文显示 的问题
  8. Springboot listener
  9. Spring技术内幕:设计理念和整体架构概述(转)
  10. ubuntu下安装和破解navicat的方法