hadoop学习;datajoin;chain签名;combine()
hadoop有种简化机制来管理job和control的非线性作业之间的依赖。job对象时mapreduce的表现形式。job对象的实例化可通过传递一个jobconf对象到作业的构造函数中来实现。
x.addDeopendingJob(y)意味着x在y完毕之前不会启动。
鉴于job对象存储着配置和依赖信息。jobcontrol对象会负责监管作业的运行,通过addjob()。你能够为jobcontrol加入作业,当全部作业和依赖关系加入完毕后。调用jobcontrol的run()方法,生成一个线程提交作业并监视其运行,有allFinised()。getFailedJobs()方法
hadoop引入chainMapper和chainReducer来简化预处理和后处理
driver会先设置“全局”jobconf对象。包括作业名,输入路径和输出路径等,它一次性加入全部步骤,然后按顺序运行
ChainMapper.addMapper()方法的签名来具体了解怎样一步步的链接作业
byvalue用于推断是否是值传递。若为false则採用引用传递。初始mapper的输出内容保存在内存中,假设后期不再调用传入的值,能够这样,效率高,一般设为true
reduce函数接收输入数据,并对其值进行交叉乘积,reduce生成这些值的全部合并结果。
交叉乘积得到的每一个合并结果被送入函数combine()(不是combiner)生成一个输出记录。对于随意特定的合并,combine能够选择不输出。交叉乘积的本质确保了combine看到的记录都有同样的连接键
在解释怎样使用DatajoingMapperBase和DataJoinReduceBase之前,你须要了解在代码通篇所使用的一个抽象数据类TaggedMapOutput(用Text标签封装记录的数据类型)
在数据流的描写叙述中,mapper输出的包带有一个组键和一个被标签记录的值。datajoin软件包指定组键为text类型。而值为TaggerMapOutput类型,它详细实现了getTag()和setTag(Text Tag)方法
作为mapper的输出,TaggerMapOutput必须是Writable类型,因此我们的子类必须实现readFile()和write()方法
DataJoinMapper运行全部的封装。指定了三个能够填充的抽象方法
generateInputTag在map任务開始前调用。来为这个map任务所处理的全部记录指定一个全局标签,
假设横跨几个文件,能够用它们的前缀作为标签
完毕map任务初始化后,为每一个记录调用DataJoinMapperBase的map()方法。里面调用generateTaggedOutput()和generateGroupKey()方法
原则上。在同一文件里,不同的记录能够用不同的标签,在标准情况下,我们希望一个标签代表一个数据源,它早先由generateInputTag()计算好并存在this.InputTag中
hadoop学习;datajoin;chain签名;combine()的更多相关文章
- Hadoop学习总结之五:Hadoop的运行痕迹
Hadoop学习总结之五:Hadoop的运行痕迹 Hadoop 学习总结之一:HDFS简介 Hadoop学习总结之二:HDFS读写过程解析 Hadoop学习总结之三:Map-Reduce入门 Ha ...
- Hadoop学习笔记(7) ——高级编程
Hadoop学习笔记(7) ——高级编程 从前面的学习中,我们了解到了MapReduce整个过程需要经过以下几个步骤: 1.输入(input):将输入数据分成一个个split,并将split进一步拆成 ...
- Hadoop学习笔记(6) ——重新认识Hadoop
Hadoop学习笔记(6) ——重新认识Hadoop 之前,我们把hadoop从下载包部署到编写了helloworld,看到了结果.现是得开始稍微更深入地了解hadoop了. Hadoop包含了两大功 ...
- Hadoop学习笔记(两)设置单节点集群
本文描写叙述怎样设置一个单一节点的 Hadoop 安装.以便您能够高速运行简单的操作,使用 Hadoop MapReduce 和 Hadoop 分布式文件系统 (HDFS). 參考官方文档:Hadoo ...
- Hadoop学习笔记(8) ——实战 做个倒排索引
Hadoop学习笔记(8) ——实战 做个倒排索引 倒排索引是文档检索系统中最常用数据结构.根据单词反过来查在文档中出现的频率,而不是根据文档来,所以称倒排索引(Inverted Index).结构如 ...
- Hadoop学习之第一个MapReduce程序
期望 通过这个mapreduce程序了解mapreduce程序执行的流程,着重从程序解执行的打印信息中提炼出有用信息. 执行前 程序代码 程序代码基本上是<hadoop权威指南>上原封不动 ...
- Hadoop学习之旅二:HDFS
本文基于Hadoop1.X 概述 分布式文件系统主要用来解决如下几个问题: 读写大文件 加速运算 对于某些体积巨大的文件,比如其大小超过了计算机文件系统所能存放的最大限制或者是其大小甚至超过了计算机整 ...
- Hadoop学习笔记—22.Hadoop2.x环境搭建与配置
自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...
- Hadoop学习之旅三:MapReduce
MapReduce编程模型 在Google的一篇重要的论文MapReduce: Simplified Data Processing on Large Clusters中提到,Google公司有大量的 ...
- [Hadoop] Hadoop学习历程 [持续更新中…]
1. Hadoop FS Shell Hadoop之所以可以实现分布式计算,主要的原因之一是因为其背后的分布式文件系统(HDFS).所以,对于Hadoop的文件操作需要有一套全新的shell指令来完成 ...
随机推荐
- 【codeforces 235B】Let's Play Osu!
[题目链接]:http://codeforces.com/problemset/problem/235/B [题意] 让你玩一个游戏,游戏结果由一个长度为n的01字符组成; 这个结果的分数与连续的1的 ...
- SVN学习总结(1)——SVN简介及入门使用
SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversi ...
- [terry笔记]python FTP
如下是作业,用python做一个ftp,主要利用socket. server端在linux下运行,在client端可以执行shell命令(静态的) 在client端输入get xxx,即可下载. 在c ...
- asp.net-DirectoryEntry基本操作入门
第一个实例代码 DirectorySearcher命名空間 (System.DirectoryServices;) DirectorySearcher search = new DirectorySe ...
- angular-数据库
<div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng ...
- ssm框架下上传图片及其他信息
先引入这两个包: <dependency> <groupId>commons-fileupload</groupId> <artifactId>comm ...
- spring boot启动原理步骤分析
spring boot最重要的三个文件:1.启动类 2.pom.xml 3.application.yml配置文件 一.启动类->main方法 spring boot启动原理步骤分析 1.spr ...
- Android自己定义百度地图缩放图标
自己定义实现Android百度地图的缩放图标,须要自己定义一个缩放控件,实现效果例如以下: 这里的缩放效果,实现了点击button能够对地图的放大缩小,通过手势放大与缩小也控制缩放图标的可用状态.详细 ...
- cmd文件操作-添加
新建文件夹 mkdir 文件名 mkdir wenjianjia 新建文件 type NUL > 文件名.文件类型
- html单行、多行文本溢出隐藏
欢迎加入前端交流群来py:749539640 单行: div{/* 单行溢出隐藏 */ width: 150px; white-space: nowrap; overflow: hidden; tex ...