《Hadoop权威指南》知识点整理5

MapReduce部分

MapReduce特性_计数器

  1. 计数器是收集作业统计信息的有效手段之一,用于质量控制或应用级统计

  2. 内置计数器分组:MapReduce任务计数器、文件系统计数器、FileInputFormat计数器、FileOutputFormat计数器、作业计数器

  3. 任务计数器:采集任务的相关信息,每个作业的所有任务的结果会被聚集起来。任务计数器由其关联任务维护,并定期发送给application master。
    MAP_INPUT_RECORDS(map输入记录数)、MAP_OUTPUT_BYTES(map输出字节数)、REDUCE_INPUT_GROUPS(reduce输入的组)、REDUCE_SHUFFLE_BYTES(reduce经过shuffle的字节数)

  4. 作业计数器:由am维护,无需在网络间传输数据,都是作业级别的统计量,其值不会随任务的运行而改变。
    TOTAL_LAUNCHED_MAPS(启用的map任务数)、
    NUM_UBER_SUBMAPS(uber任务中的map数)、
    NUM_FAILED_REDUCES(失败的reduce任务数)、
    DATA_LOCAL_MAPS(数据本地化的map任务数)

  5. 用户定义的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特性_排序

  1. 排序是MapReduce的核心技术

  2. 全排序:首先创建一系列排好序的文件;其次,串联这些文件;事后,生成一个全局排列的文件。主要的思路是使用一个partitioner来描述输出的全局排列。关键在于如何分配分区,理想情况下各分区所含的记录数应该大致相等,使作业的总体执行时间不会受制于个别reducer。

  3. 辅助排序:MapReduce框架在记录到达reducer之前按键对记录排序,但键所对应的的值并没有排序。若计算每年的最高气温,全部记录均按气温降序排序,则无需再遍历整个数据集即可获得查询结果。

MapReduce特性_连接

  1. MapReduce能够执行大型数据集间的连接(join)操作,从头写相关代码会非常棘手,可以考虑采用高级框架,即Pig、Hive、Cascading、Cruc或Spark,它们都将连接操作视为整个实现的核心部分。

  2. 连接操作:map端连接、reduce端连接

  3. map端连接:在两个大规模输入数据集之间的map端连接会在数据到达map函数之前就执行连接操作。各map的输入数据先分区并以特定方式排序,各个输入数据集被划分成相同数量的分区,并按相同的键排序,同一键的记录均会放在同一分区之中。

  4. reduce端连接:reduce端连接并不要求输入数据集符合特定结构,因此reduce端连接更常用,但两个数据集均需经过shuffle,所以效率偏低。基本思路为mapper为各个记录标记源,并且使用连接键作为map输出键,使键相同的记录放在同一个reducer中。使用如下计数:多输入、辅助排序。

MapReduce特性_边数据分布

  1. 边数据是作业所需的额外只读数据,来辅助处理主数据集。

  2. 利用JobConf来配置作业:Configuration类的setter方法能方便地配置作业的任一键值对,如果仅需向任务传递少量数据则非常有用。

  3. 分布式缓存:可在任务运行过程中及时文件和存档复制到任务节点以供使用。NodeManager为缓存的文件各维护一个计数器来统计文件的被使用情况。可以通过GenericOptionsParser间接使用分布式缓存。

《Hadoop权威指南》知识点整理5相关推荐

  1. 《Hadoop权威指南》知识点整理2

    <Hadoop权威指南>知识点整理2 MapReduce部分 MapReduce应用开发_配置 一个Configuration类的实例代表配置属性极其取值的一个集合,属性由String类型 ...

  2. 《Hadoop权威指南》知识点整理4

    <Hadoop权威指南>知识点整理4 MapReduce部分 MapReduce的类型与格式_MapReduce类型 reduce函数的输入类型必须与map函数的输出类型相同 partit ...

  3. 基于python的气象数据分析_基于python的《Hadoop权威指南》一书中气象数据下载和map reduce化数据处理及其......

    文档内容: 1:下载<hadoop权威指南>中的气象数据 2:对下载的气象数据归档整理并读取数据 3:对气象数据进行map reduce进行处理 关键词:<Hadoop权威指南> ...

  4. Hadoop权威指南:HDFS-目录,查询文件系统,删除文件

    目录 Hadoop权威指南:HDFS-目录,查询文件系统,删除文件 目录 查询文件系统 文件元数据:FileStatus 列出文件 文件模式 PathFilter对象 删除数据 Hadoop权威指南: ...

  5. Hadoop权威指南学习笔记三

    HDFS简单介绍 声明:本文是本人基于Hadoop权威指南学习的一些个人理解和笔记,仅供学习參考.有什么不到之处还望指出,一起学习一起进步. 转载请注明:http://blog.csdn.net/my ...

  6. 《Hadoop权威指南》第三章 Hadoop分布式文件系统

    <Hadoop权威指南>第三章 Hadoop分布式文件系统 目录 前言 HDFS的设计 HDFS的概念 命令行接口 Hadoop文件系统 Java接口 数据流 通过distcp并行复制 注 ...

  7. 《Hadoop权威指南》第二章 关于MapReduce

    <Hadoop权威指南>第二章 关于MapReduce 目录 使用Hadoop来数据分析 横向扩展 注:<Hadoop权威指南>重点学习摘要笔记 1. 使用Hadoop来数据分 ...

  8. Hadoop权威指南 _01前言感悟

    Hadoop权威指南 大数据的存储与分析-第4版-修订版-升级版 前言感悟: 或许有人会说前言,我看书一般都不看前言的,但是或许是对于技术书籍的敬畏,也或者是作者对Hadoop的诸多感受,让我也有种代 ...

  9. 《Hadoop权威指南》读书笔记1

    <Hadoop权威指南>读书笔记 Day1 第一章 1.MapReduce适合一次写入.多次读取数据的应用,关系型数据库则更适合持续更新的数据集. 2.MapReduce是一种线性的可伸缩 ...

  10. Hadoop权威指南(中文版,第2版)【分享】

    下载地址 Hadoop权威指南(中文版,第2版) http://download.csdn.net/download/u011000529/5726789 (友情提示:请点击右下的"联通下载 ...

最新文章

  1. 雷军做程序员时写的博客,太牛了!
  2. FarBox--另类有趣的网站服务【转】
  3. BDC创建物料主数据各个视图
  4. Effective C#(二)
  5. 工作总结10:解决vuex刷新数据消失
  6. 读书笔记8-浪潮之巅(part3)
  7. Android官方开发文档Training系列课程中文版:管理系统UI之变暗系统条
  8. 毕业后拉开距离的真正原因!
  9. 程序员热议996工作制度:我生来不是为了工作的,我还要有生活
  10. linux下golang protoc安装详细教程
  11. 在绩效评估中使用 360 反馈
  12. springboot 发送短信
  13. clickhouse开窗函数之同比环比
  14. 哲学生活中必背的哲学原理
  15. java操作xml的四种方式
  16. 已解决,selenium 接管浏览器问题
  17. 【精】微信小程序生成二维码海报分享 [原理+源码]
  18. LeetCode/LintCode 题解丨一周爆刷字符串:URL 编码
  19. Oracle Tigger触发器 实例
  20. IESuper(IE超人)IE修复工具下载

热门文章

  1. 中英文翻译、语料库等资料
  2. html5游戏网页代码大全,HTML网页代码大全
  3. 算法设计与分析第三章习题解答与学习指导(第2版)屈婉婷 刘田 张立昂 王捍贫编著 清华大学出版社
  4. 编译原理第三版课后习题
  5. 惠普nas服务器装系统,HP-Gen8轻松使用U盘引导安装黑群晖教程及工具程序
  6. 硕士学位论文(2022年) Latex模板 模板修改记录 总结
  7. vs2019社区版+qt5.14.2+Coin3D安装
  8. matlab教程分析,MATLAB数据分析教程
  9. DevExpress ChartControl 折线图简单使用
  10. 反激式开关电源电路测试记录(二)