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) ...
随机推荐
- 宝塔安装Lsky Pro图床教程
欢迎访问我的个人博客皮皮猪:http://www.zhsh666.xyz Lsky Pro图床是一个支持本地.阿里云 OSS.腾讯云 COS.七牛云.又拍云等储存方式的基于PHP的开源图床. 项目主页 ...
- CENTOS服务器基础教程-U盘系统盘制作
什么都要用到一点点,会一点点,现在的USB3.0基本上服务器都已经支持.小编给大家介绍基础篇:如何使用U盘制作系统安装盘 工具/原料 U盘 UltraISO工具 方法/步骤 准备一个U ...
- Leetcode之二分法专题-275. H指数 II(H-Index II)
Leetcode之二分法专题-275. H指数 II(H-Index II) 给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列.编写一个方法,计算出研究者的 h 指数. ...
- Java - 集合之间的关系和区别
1.Java集合关系图: 2.List.Map.Set区别: ① List ArrayList LinkedList Vector Advantage Search Insert.Delete Syn ...
- POJ-3169 Layout (差分约束+SPFA)
POJ-3169 Layout:http://poj.org/problem?id=3169 参考:https://blog.csdn.net/islittlehappy/article/detail ...
- Codeforces 948D Perfect Security
Perfect Security 题意:给你一个A[i]数组, 再给你一个B[i]数组, 现在用选取 B[i] 数组中的一个 去和 A[i] 数组里的一个元素去进行异或操作, B[i]数组的元素只能用 ...
- codeforces 822 D. My pretty girl Noora(dp+素数筛)
题目链接:http://codeforces.com/contest/822/problem/D 题解:做这题首先要推倒一下f(x)假设第各个阶段分成d1,d2,d3...di组取任意一组来说,如果第 ...
- 牛客小白月赛6 A 鲲 数学
链接:https://www.nowcoder.com/acm/contest/136/A来源:牛客网 北冥有鱼,其名为鲲,鲲之大,不知其几千里也. ——<庄子·逍遥游> HtBest有一 ...
- hud 1633 Orchard Trees 点是否在三角形内模板 *
Orchard Trees Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- SpringCloud Feign 之 Fallback初体验
SpringCloud Feign 之 Fallback初体验 在微服务框架SpringCloud中,Feign是其中非常重要且常用的组件.Feign是声明式,模板化的HTTP客户端,可以帮助我们更方 ...