Hadoop点滴-初识MapReduce(1)
- 分析气候数据,计算出每年全球最高气温(P25页)
- Map阶段:输入碎片数据,输出一系列“单键单值”键值对
- 内部处理,将一系列“单键单值”键值对转化成一系列“单键多值”键值对
- Reduce阶段,输入“单键多值”键值对,输出具体结果
- Mapper类是一个泛型类型,它有四个形参类型,分别制定map函数的输入键、输入值、输出键、输出值的类型。
- Hadoop本身提供了一套可优化网络序列化传输的基本类型,而不直接使用java内嵌的类型。这些类型都在org.apache.hadoop.io包中
- Reduce函数也有四个形式参数,用于指定输入和输出类型
- reduce函数的输入类型,必须匹配map函数的输出类型
- 在Hadoop上运行作业时,要把代码打包成JAR文件。Job不在乎JAR的名称,在乎JAR中主函数所在类的名称
- 构造job对象后,需要指定输入和输出数据的路径,调用FileInputFormat类的静态方法addInputPath()来定义输入数据的路径。这个路径可以是单个文件、一个目录、或复合特定模式的一些列文件。该函数可调用多次,实现多路径输入
- 调用FileOutputFormat类中的静态方法setOutputPath()来制定输出路径(只能有一个输出路径),且该路径是不应该存在的。
- 通过setOutputKeyClass()、setOutputValueClass()方法控制reduce函数的输出类型,必须和reduce类产出的向匹配
- map函数的输出类型默认情况下和reduce函数是相同的,不需要单独设置;如果不同,调用setMapOutputKeyClass、setMapOutputValueClss来设置map函数的输出类型
- FileInputFormat函数负责完成数据分块,并传递给map
- hadoop 的map key是如何来划分:
- 一般的hadoop任务,有三段传输要搞清楚,首先是hadoop整理给map的输入map(key1,value1),这段默认是各个文件的每一行作为输入,此时key1是此行在文件中的偏移量,value1则是行号;其次是map输出(key2,value2)这段是给reduce做为输入的,也就是reduce(key2,inter<value2>)的输入;第三部分是reduce输出(key3,value3)。
map的key一般不是考虑的因素,考虑更多是value的值,比如每个文件做输入,文件内容才是最重要;每行做输入,行内容才是重要。
- 一般的hadoop任务,有三段传输要搞清楚,首先是hadoop整理给map的输入map(key1,value1),这段默认是各个文件的每一行作为输入,此时key1是此行在文件中的偏移量,value1则是行号;其次是map输出(key2,value2)这段是给reduce做为输入的,也就是reduce(key2,inter<value2>)的输入;第三部分是reduce输出(key3,value3)。
- 运行job(Hadoop会启动一个JVM来运行这个类,所以可以通过FileInputFormat静态方法设置输出路径)
export HADOOP_CLASSPATH=hadoop-examples.jar
hadoop MaxTemperature(类名) input/ncdc/sample.txt(参数一,输入文件路径,本地文件系统) output(参数二,输出文件路径,本地文件系统)
Hadoop点滴-初识MapReduce(1)的更多相关文章
- Hadoop点滴-初识MapReduce(2)
术语: job(作业):客户端需要执行的一个工作单元,包括输入数据.MP程序.配置信息 Hadoop将job分成若干task(任务)来执行,其中包括两类任务:map任务.reduce任务.这些任务在集 ...
- Hadoop学习笔记—4.初识MapReduce
一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个编程模型,用以进行大数据量的计算.对于大数据量的计算,通常采用的处理手法就是并行计算.但对许多开发者来 ...
- Hadoop 中利用 mapreduce 读写 mysql 数据
Hadoop 中利用 mapreduce 读写 mysql 数据 有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...
- 从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构) (转)
转自:http://blog.csdn.net/v_july_v/article/details/6704077 从hadoop框架与MapReduce模式中谈海量数据处理 前言 几周前,当我最初听到 ...
- 每天收获一点点------Hadoop之初始MapReduce
一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个编程模型,用以进行大数据量的计算.对于大数据量的计算,通常采用的处理手法就是并行计算.但对许多开发者来 ...
- Hadoop权威指南:MapReduce应用开发
Hadoop权威指南:MapReduce应用开发 [TOC] 一般流程 编写map函数和reduce函数 编写驱动程序运行作业 用于配置的API Hadoop中的组件是通过Hadoop自己的配置API ...
- hadoop系列三:mapreduce的使用(一)
转载请在页首明显处注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/7224772.html 一:说明 此为大数据系列的一些博文,有空的话会陆续更新,包含大数据的 ...
- hadoop系列四:mapreduce的使用(二)
转载请在页首明显处注明作者与出处 一:说明 此为大数据系列的一些博文,有空的话会陆续更新,包含大数据的一些内容,如hadoop,spark,storm,机器学习等. 当前使用的hadoop版本为2.6 ...
- 【Big Data - Hadoop - MapReduce】初学Hadoop之图解MapReduce与WordCount示例分析
Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...
随机推荐
- Python 内存分配时的小秘密
Python 中的sys 模块极为基础而重要,它主要提供了一些给解释器使用(或由它维护)的变量,以及一些与解释器强交互的函数. 本文将会频繁地使用该模块的getsizeof() 方法,因此,我先简要介 ...
- Leetcode之回溯法专题-52. N皇后 II(N-Queens II)
Leetcode之回溯法专题-52. N皇后 II(N-Queens II) 与51题的代码80%一样,只不过52要求解的数量,51求具体解,点击进入51 class Solution { int a ...
- Docker资源管理
一台宿主机可以放多个容器,默认的情况下,Docker 没有对容器进行硬件资源的限制,当容器负载过高时会尽可能的占用宿主机资源,所以有时候我们需要对容器的资源使用设置一个上限,今天我们就来看看如何管理 ...
- CF - 1107 E Vasya and Binary String DP
题目传送门 题解: dp[ l ][ r ][ k ] 代表的是[l, r]这段区间内, 前面有k-1个连续的和s[l]相同且连续的字符传进来的最大值. solve( l, r, k) 代表的是处理 ...
- hdu 4825 Xor Sum(01字典树模版题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4825 题解:一到01字典树的模版题,01字典树就是就是将一些树用二进制放到一个树上这样可以方便对整体异 ...
- codeforces 816 D. Karen and Test(逆元+思维+组合数)
题目链接:http://codeforces.com/contest/816/problem/D 题解:显然一看到这题应该会想到是有什么规律的于是多写几项就会发现偶数列之间是有关系的. 满足a[i][ ...
- Codeforces 734C. Anton and Making Potions(二分)
Anton is playing a very interesting computer game, but now he is stuck at one of the levels. To pass ...
- codeforces 284 E. Coin Troubles(背包+思维)
题目链接:http://codeforces.com/contest/284/problem/E 题意:n种类型的硬币,硬币的面值可能相同,现在要在满足一些限制条件下求出,用这些硬币构成t面值的方案数 ...
- poj1037 [CEOI 2002]A decorative fence 题解
---恢复内容开始--- 题意: t组数据,每组数据给出n个木棒,长度由1到n,除了两端的木棒外,每一根木棒,要么比它左右的两根都长,要么比它左右的两根都短.即要求构成的排列为波浪型.对符合要求的排列 ...
- 从一道看似简单的面试题重新理解JS执行机制与定时器
壹 ❀ 引 最近在看前端进阶的系列专栏,碰巧看到了几篇关于JS事件执行机制的面试文章,因为我在之前一篇 JS执行机制详解,定时器时间间隔的真正含义 博文中也有记录JS执行机制,所以正好用于作为测试自 ...