《Hadoop权威指南》知识点整理5
《Hadoop权威指南》知识点整理5
MapReduce部分
MapReduce特性_计数器
计数器是收集作业统计信息的有效手段之一,用于质量控制或应用级统计
内置计数器分组:MapReduce任务计数器、文件系统计数器、FileInputFormat计数器、FileOutputFormat计数器、作业计数器
任务计数器:采集任务的相关信息,每个作业的所有任务的结果会被聚集起来。任务计数器由其关联任务维护,并定期发送给application master。
MAP_INPUT_RECORDS(map输入记录数)、MAP_OUTPUT_BYTES(map输出字节数)、REDUCE_INPUT_GROUPS(reduce输入的组)、REDUCE_SHUFFLE_BYTES(reduce经过shuffle的字节数)作业计数器:由am维护,无需在网络间传输数据,都是作业级别的统计量,其值不会随任务的运行而改变。
TOTAL_LAUNCHED_MAPS(启用的map任务数)、
NUM_UBER_SUBMAPS(uber任务中的map数)、
NUM_FAILED_REDUCES(失败的reduce任务数)、
DATA_LOCAL_MAPS(数据本地化的map任务数)用户定义的Java计数器:计数器的值可以在mapper或reducer中增加,计数器可以由一个Java枚举类型来定义(编译阶段指定),以便对有关的计数器分组。
动态计数器,不由枚举类型定义
public Counter getCounter(String groupName, String counterName)
获取计数器
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.mapreduce.*;
import org.apache.hadoop.utils.*;
public class MissingTemperatureFields extends Configured implements Tool {@overridepublic int run(String[] args) throws Exception {// 输入参数有误if( args.length != 1 ) {JobBuilder.printUsage(this, "<iob ID>");return -1;}String jobID = args[0];Cluster cluster = new Cluster(getConf());Job job = cluster.getJob(JobID.forName(jobID));if( job == null ) {System.err.printf("No job with ID %s found.\n", jobID);return -1;}if( job.isComplete() ){System.err.printf("Job %s is not complete.\n", jobID);return -1;}// 获得enum计数器Counters counters = job.getCounters();long missing = counters.findCounter( MaxTemperatureWithCounter.Temperature.MISSING ).getValue();long total = counters.findCounter(TaskCounter.MAP_INPUT_RECORDS).getValue();syso("Records with missing temperature fields: %.2f%%\n", 100.0*missing/total);return 0;}public static void main(String[] args) throws Exception {int exitCode = ToolRunner.run(new MissingTemperatureFields(), args);System.exit(exitCode);}
MapReduce特性_排序
排序是MapReduce的核心技术
全排序:首先创建一系列排好序的文件;其次,串联这些文件;事后,生成一个全局排列的文件。主要的思路是使用一个partitioner来描述输出的全局排列。关键在于如何分配分区,理想情况下各分区所含的记录数应该大致相等,使作业的总体执行时间不会受制于个别reducer。
辅助排序:MapReduce框架在记录到达reducer之前按键对记录排序,但键所对应的的值并没有排序。若计算每年的最高气温,全部记录均按气温降序排序,则无需再遍历整个数据集即可获得查询结果。
MapReduce特性_连接
MapReduce能够执行大型数据集间的连接(join)操作,从头写相关代码会非常棘手,可以考虑采用高级框架,即Pig、Hive、Cascading、Cruc或Spark,它们都将连接操作视为整个实现的核心部分。
连接操作:map端连接、reduce端连接
map端连接:在两个大规模输入数据集之间的map端连接会在数据到达map函数之前就执行连接操作。各map的输入数据先分区并以特定方式排序,各个输入数据集被划分成相同数量的分区,并按相同的键排序,同一键的记录均会放在同一分区之中。
reduce端连接:reduce端连接并不要求输入数据集符合特定结构,因此reduce端连接更常用,但两个数据集均需经过shuffle,所以效率偏低。基本思路为mapper为各个记录标记源,并且使用连接键作为map输出键,使键相同的记录放在同一个reducer中。使用如下计数:多输入、辅助排序。
MapReduce特性_边数据分布
边数据是作业所需的额外只读数据,来辅助处理主数据集。
利用JobConf来配置作业:Configuration类的setter方法能方便地配置作业的任一键值对,如果仅需向任务传递少量数据则非常有用。
分布式缓存:可在任务运行过程中及时文件和存档复制到任务节点以供使用。NodeManager为缓存的文件各维护一个计数器来统计文件的被使用情况。可以通过GenericOptionsParser间接使用分布式缓存。
《Hadoop权威指南》知识点整理5相关推荐
- 《Hadoop权威指南》知识点整理2
<Hadoop权威指南>知识点整理2 MapReduce部分 MapReduce应用开发_配置 一个Configuration类的实例代表配置属性极其取值的一个集合,属性由String类型 ...
- 《Hadoop权威指南》知识点整理4
<Hadoop权威指南>知识点整理4 MapReduce部分 MapReduce的类型与格式_MapReduce类型 reduce函数的输入类型必须与map函数的输出类型相同 partit ...
- 基于python的气象数据分析_基于python的《Hadoop权威指南》一书中气象数据下载和map reduce化数据处理及其......
文档内容: 1:下载<hadoop权威指南>中的气象数据 2:对下载的气象数据归档整理并读取数据 3:对气象数据进行map reduce进行处理 关键词:<Hadoop权威指南> ...
- Hadoop权威指南:HDFS-目录,查询文件系统,删除文件
目录 Hadoop权威指南:HDFS-目录,查询文件系统,删除文件 目录 查询文件系统 文件元数据:FileStatus 列出文件 文件模式 PathFilter对象 删除数据 Hadoop权威指南: ...
- Hadoop权威指南学习笔记三
HDFS简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考.有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my ...
- 《Hadoop权威指南》第三章 Hadoop分布式文件系统
<Hadoop权威指南>第三章 Hadoop分布式文件系统 目录 前言 HDFS的设计 HDFS的概念 命令行接口 Hadoop文件系统 Java接口 数据流 通过distcp并行复制 注 ...
- 《Hadoop权威指南》第二章 关于MapReduce
<Hadoop权威指南>第二章 关于MapReduce 目录 使用Hadoop来数据分析 横向扩展 注:<Hadoop权威指南>重点学习摘要笔记 1. 使用Hadoop来数据分 ...
- Hadoop权威指南 _01前言感悟
Hadoop权威指南 大数据的存储与分析-第4版-修订版-升级版 前言感悟: 或许有人会说前言,我看书一般都不看前言的,但是或许是对于技术书籍的敬畏,也或者是作者对Hadoop的诸多感受,让我也有种代 ...
- 《Hadoop权威指南》读书笔记1
<Hadoop权威指南>读书笔记 Day1 第一章 1.MapReduce适合一次写入.多次读取数据的应用,关系型数据库则更适合持续更新的数据集. 2.MapReduce是一种线性的可伸缩 ...
- Hadoop权威指南(中文版,第2版)【分享】
下载地址 Hadoop权威指南(中文版,第2版) http://download.csdn.net/download/u011000529/5726789 (友情提示:请点击右下的"联通下载 ...
最新文章
- 雷军做程序员时写的博客,太牛了!
- FarBox--另类有趣的网站服务【转】
- BDC创建物料主数据各个视图
- Effective C#(二)
- 工作总结10:解决vuex刷新数据消失
- 读书笔记8-浪潮之巅(part3)
- Android官方开发文档Training系列课程中文版:管理系统UI之变暗系统条
- 毕业后拉开距离的真正原因!
- 程序员热议996工作制度:我生来不是为了工作的,我还要有生活
- linux下golang protoc安装详细教程
- 在绩效评估中使用 360 反馈
- springboot 发送短信
- clickhouse开窗函数之同比环比
- 哲学生活中必背的哲学原理
- java操作xml的四种方式
- 已解决,selenium 接管浏览器问题
- 【精】微信小程序生成二维码海报分享 [原理+源码]
- LeetCode/LintCode 题解丨一周爆刷字符串:URL 编码
- Oracle Tigger触发器 实例
- IESuper(IE超人)IE修复工具下载
热门文章
- 中英文翻译、语料库等资料
- html5游戏网页代码大全,HTML网页代码大全
- 算法设计与分析第三章习题解答与学习指导(第2版)屈婉婷 刘田 张立昂 王捍贫编著 清华大学出版社
- 编译原理第三版课后习题
- 惠普nas服务器装系统,HP-Gen8轻松使用U盘引导安装黑群晖教程及工具程序
- 硕士学位论文(2022年) Latex模板 模板修改记录 总结
- vs2019社区版+qt5.14.2+Coin3D安装
- matlab教程分析,MATLAB数据分析教程
- DevExpress ChartControl 折线图简单使用
- 反激式开关电源电路测试记录(二)