hadoop学习;Streaming,aggregate;combiner
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的更多相关文章
- Hadoop学习笔记—8.Combiner与自定义Combiner
一.Combiner的出现背景 1.1 回顾Map阶段五大步骤 在第四篇博文<初识MapReduce>中,我们认识了MapReduce的八大步凑,其中在Map阶段总共五个步骤,如下图所示: ...
- 【Hadoop】Hadoop MR 性能优化 Combiner机制
1.概念 2.参考资料 提高hadoop的mapreduce job效率笔记之二(尽量的用Combiner) :http://sishuo(k).com/forum/blogPost/list/582 ...
- [Hadoop] Hadoop学习历程 [持续更新中…]
1. Hadoop FS Shell Hadoop之所以可以实现分布式计算,主要的原因之一是因为其背后的分布式文件系统(HDFS).所以,对于Hadoop的文件操作需要有一套全新的shell指令来完成 ...
- Hadoop学习之旅三:MapReduce
MapReduce编程模型 在Google的一篇重要的论文MapReduce: Simplified Data Processing on Large Clusters中提到,Google公司有大量的 ...
- Hadoop学习笔记(2) 关于MapReduce
1. 查找历年最高的温度. MapReduce任务过程被分为两个处理阶段:map阶段和reduce阶段.每个阶段都以键/值对作为输入和输出,并由程序员选择它们的类型.程序员还需具体定义两个函数:map ...
- Hadoop学习笔记(7) ——高级编程
Hadoop学习笔记(7) ——高级编程 从前面的学习中,我们了解到了MapReduce整个过程需要经过以下几个步骤: 1.输入(input):将输入数据分成一个个split,并将split进一步拆成 ...
- Hadoop学习笔记(1) ——菜鸟入门
Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序. ...
- 阿里封神谈hadoop学习之路
阿里封神谈hadoop学习之路 封神 2016-04-14 16:03:51 浏览3283 评论3 发表于: 阿里云E-MapReduce >> 开源大数据周刊 hadoop 学生 s ...
- Hadoop学习笔记(1)(转)
Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序. ...
随机推荐
- Java读取本地文件(输入流)
package cn.buaa; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; imp ...
- sql server2014 企业版 百度云下载
sql server2014 企业版 百度云下载 链接: https://pan.baidu.com/s/1j7a6RWwpvSzG-sF7Dnexfw 提取码: 关注公众号[GitHubCN]回复获 ...
- 【LOJ】#2046. 「CQOI2016」路由表
题解 题面太长无法阅读系列-- 这里说的选择改变指的是在下面区间里碰上了一个更长的可匹配的地址,如果可匹配但是匹配长度没有当前的值大,那么不算改变 我们建一个可持久化的trie,查询的时候先在前\(a ...
- chrome浏览器视频插件
以前安装chrome浏览器flash插件是将libflashplayer.so拷贝到chrome浏览器的plugins目录下.但最近好像不行了. 于是换了另一插件:pepperflashplugin- ...
- 极简操作无需root隐藏S8导航栏和状态栏
距离三星Galaxy S8国行发布快一个礼拜了,相信论坛不少小同伴已经拿到手,许多人和我一样被那块全视曲面屏给诱惑剁手的,当拿到手把玩一段时间后却發现这么美的一块屏幕居然大部分应用上下都有一行碍眼的状 ...
- django视图函数中 应用装饰器
from django.shortcuts import render, redirect, HttpResponse from .forms import LoginForm, Registrati ...
- css盒子垂直居中
首先父盒子包住子盒子 <body> <div class="outbox"> <div class="box"></d ...
- 终端(terminal)、tty、shell、控制台(console)、bash之间的区别与联系
1.终端(terminal) 终端(termimal)= tty(Teletypewriter, 电传打印机),作用是提供一个命令的输入输出环境,在linux下使用组合键ctrl+alt+T打开的就是 ...
- Scala入门1(单例对象和伴生类)
一.Hello World程序的执行原理 参考http://blog.csdn.net/zhangjg_blog/article/details/22760957 object HelloWorld{ ...
- 2017-2018-1 20179202《Linux内核原理与分析》第七周作业
一 .Linux内核创建一个新进程的过程 1. 知识准备 操作系统内核三大功能是进程管理,内存管理,文件系统,最核心的是进程管理 linux 进程的状态和操作系统原理的描述进程状态有所不同,比如就绪状 ...