1. 术语:
    1. job(作业):客户端需要执行的一个工作单元,包括输入数据、MP程序、配置信息
    2. Hadoop将job分成若干task(任务)来执行,其中包括两类任务:map任务、reduce任务。这些任务在集群的节点上,并通过YARN进行调度
    3. Hadoop将MP输入数据划分成等长的小数据块,成为“输入分片(input split)。Hadoop为每个分片构建一个map任务
    4. 多余大多数作业来说,一个合理分片大小趋向于HDFS的一个块的大小,默认128MB。每个新建文件可以单独指定块大小
    5. Hadoop在数据分片所在的节点上运行map任务,即所谓的”数据本地化优化“。
    6. 仅仅在非常偶然的情况下(该情况基本不会发生),将map任务分配的计算节点与数据节点分开
    7. 分片大小与块大小相同:优势:确保可以存储在单个节点上的最大输入块的大小,如果分片跨越两个数据块,那么对于任何一个HDFS节点,基本上都不可能同时存储这两个数据块
    8. map任务将其输出写入本地磁盘,而非HDFS,因为map的输出是中间结果。
    9. reduce任务并不具备数据本地化优势,
    10. 单个reduce任务的输入通常来自于所有map的输出;
    11. reduce的输出通常存储在HDFS中以实现可靠存储。
    12. reduce输出的第一个副本存储在本地节点上,其他副本出于可靠性考虑存储在其他机架的节点中。因此,reduce输出写入HDFS确实需要占用网络带宽。
    13. reduce任务的数量并非由输入数据的大小决定,而是独立指定的。
    14. 可将map输出进行分区,对每个分区指定和一个reduce任务
    15. 存在物reduce的MP数据流????
    16. combiner函数
      1. 集群上的可用带宽限制 MapReduce作业的数量,因此尽量避免map和reduce任务之间的数据传输时有利的。
      2. Hadoop允许用户针对map任务的输出指定一个combiner
      3. combiner接口与reduce相同,代码也可与reduce完全相同,但不能以偏概全,例如,求平均值的reduce代码,不能用于combiner
      4. combiner的作用:将map的结果预先reduce。
    17. MapReduce框架保证了键的有序性
    18. 通过Hadoop Streaming ,可以使用非java语言,实现mapreduce计算架构;
    19. 通过Hadoop Streaming ,利用Hadoop的job管理功能,实现ruby、shell的mapreduce计算
    20. Hadoop Streaming 使用Unix标准流作为Hadoop和应用程序之间的接口,所以我们可以使用任何编程语言通过标准输入输出来写Mapreduce程序。
    21. Hadoop Streaming 语法
      1. hadoop jar $HADOOP_HOME/share/hadoop/tools/lib/hadoop-streaming-*.jar \
      2. -input input/ncdc/sample.txt \
      3. -output output \
      4. -mapper xxx.rb \
      5.   -reducer yyy.rb

      

Hadoop点滴-初识MapReduce(2)的更多相关文章

  1. Hadoop点滴-初识MapReduce(1)

    分析气候数据,计算出每年全球最高气温(P25页) Map阶段:输入碎片数据,输出一系列“单键单值”键值对 内部处理,将一系列“单键单值”键值对转化成一系列“单键多值”键值对 Reduce阶段,输入“单 ...

  2. Hadoop学习笔记—4.初识MapReduce

    一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个编程模型,用以进行大数据量的计算.对于大数据量的计算,通常采用的处理手法就是并行计算.但对许多开发者来 ...

  3. Hadoop 中利用 mapreduce 读写 mysql 数据

    Hadoop 中利用 mapreduce 读写 mysql 数据   有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...

  4. 从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构) (转)

    转自:http://blog.csdn.net/v_july_v/article/details/6704077 从hadoop框架与MapReduce模式中谈海量数据处理 前言 几周前,当我最初听到 ...

  5. 每天收获一点点------Hadoop之初始MapReduce

    一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个编程模型,用以进行大数据量的计算.对于大数据量的计算,通常采用的处理手法就是并行计算.但对许多开发者来 ...

  6. Hadoop权威指南:MapReduce应用开发

    Hadoop权威指南:MapReduce应用开发 [TOC] 一般流程 编写map函数和reduce函数 编写驱动程序运行作业 用于配置的API Hadoop中的组件是通过Hadoop自己的配置API ...

  7. hadoop系列三:mapreduce的使用(一)

    转载请在页首明显处注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/7224772.html 一:说明 此为大数据系列的一些博文,有空的话会陆续更新,包含大数据的 ...

  8. hadoop系列四:mapreduce的使用(二)

    转载请在页首明显处注明作者与出处 一:说明 此为大数据系列的一些博文,有空的话会陆续更新,包含大数据的一些内容,如hadoop,spark,storm,机器学习等. 当前使用的hadoop版本为2.6 ...

  9. 【Big Data - Hadoop - MapReduce】初学Hadoop之图解MapReduce与WordCount示例分析

    Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...

随机推荐

  1. .NET平台下,钉钉微应用开发之:工作消息通知

    首先看下官方文档,为我们提供了POST请求地址,和几个必传参数的列表以及参数示例,写的都挺详细的. 无奈提供的SDK请求示例是JAVA的,而我用的是.NET的,所以还是摸了一些坑出来,其实也就是不同平 ...

  2. npm基本命令

    1.npm是什么? npm(Node Package Manager)意思是 node 的包管理器,它是随着 NodeJs 安装时一起被安装的: 无论是在前端还是在前端开发中都会使用到 npm 包管理 ...

  3. 关于Socket、TCP/IP、HTTP、FTP及网络编程

    来源:陶邦仁 链接:http://blog.jobbole.com/99694/ 既然是网络传输,涉及几个系统之间的交互,那么首先要考虑的是如何准确的定位到网络上的一台或几台主机,再者如何进行可靠高效 ...

  4. iOS中的几个重要方法

    iOS开发中几个重要的方法: 加载类到内存,程序刚启动的时候调用,调用在main函数之前 1.+(void)load{ } 初始化类,类第一次使用的时候调用一次 2.+(void)initialize ...

  5. IT项目经理入门心法

  6. 小米 OJ 编程比赛 02 月常规赛 3 Logic Gatekeeper CDQ分治

    link:https://code.mi.com/problem/list/view?id=139 题意: 有一个1e6 * 1e6 大的格子,现在有两种操作:1,给一个子矩阵中的每个格子加上k.2, ...

  7. CodeForces 677D. Vanya and Treasure 枚举行列

    677D. Vanya and Treasure 题意: 给定一张n*m的图,图上每个点标有1~p的值,你初始在(1,1)点,你必须按照V:1,2,3...p的顺序走图上的点,问你如何走时间最少. 思 ...

  8. bzoj 4025 二分图 lct

    题目传送门 题解: 首先关于二分图的性质, 就是没有奇环边. 题目其实就是让你判断每个时段之内有没有奇环. 其次 lct 只能维护树,(反正对于我这种菜鸟选手只会维护树), 那么对于一棵树来说, 填上 ...

  9. JAVA - 一个for循环实现99乘法表

    public class Test03 {public static void main(String[] args) { int lie = 1; for (int hang = 1; hang&l ...

  10. javascript删除数组元素的7个方法

    在JavaScript中,除了Object之外,Array类型(数组)恐怕就是最常用的类型了.与其他语言的数组相比,JavaScript中的Array非常灵活.这种灵活性有利有弊,好处是其富有创造性, ...