Hadoop实战-初级部分 之 MapReduce

原创 2013年12月02日 09:57:30
第一部分: 什么是 MapReduce
              Hadoop Map/Reduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。
              MapReduce基础出发点是很易懂。它由称为map和reduce的两部分用户程序组成,然后利用框架在计算机集群上面根据需求运行多个程序实例来处理各个子任务,然后再对结果进行归并。
 
第二部分: MapReduce 架构设计

MapReduce 执行流程
 
 
作业提交流程
 
 
术语:
•job:用户的每一个计算请求,就称为一个作业。
•JobTracker:用户提交作业的服务器,同时,它还负责各个作业任务的分配,管理所有的任务服务器。
•TaskTracker:任劳任怨的工蜂,负责执行具体的任务。
•Task:每一个作业,都需要拆分开了,交由多个服务器来完成,拆分出来的执行单位,就称为任务。
第三部分:配置开发环境
•Tool,ToolRunner介绍
•配置文件管理
•Eclipse 开发环境搭建
 
•用Tool来实现打印所有配置的所有属性
•介绍ToolRunner
•配置文件管理
–可以在运行Job时用 –conf 参数来指定要使用的配置文件,这样可以合理管理测试,生产环境所需的配置文件
–示例
•Hadoop-local.xml
•hadoop-localhost.xml
–Hadoop fs –conf  文件名查看相应的配置
•Eclipse 开发环境搭建
–在Resources文件夹中加入mapred-site.xml 即可
–导入Hadoop lib 下所有的Jar包
第四部分:应用例子:词频统计
             如果想统计下过去 50 年毕业生毕业论文出现最多的几个单词,看看大家都在研 究些什么,那收集好论文后,该怎么办呢?
方法一:我可以写一个小程序,把所有论文按顺序遍历一遍,统计每一个遇到的单 词的出现次数,最后就可以知道哪几个单词最热门了。
这种方法在数据集比较小时,是非常有效的,而且实现最简单,用来解决这个问题 很合适。
方法二:写一个多线程程序,并发遍历论文。
方法二肯定比方法一高效。但是写一个多线程程序要比方法一困难多了,我们必须 自己同步共享数据,比如要防止两个线程重复统计文件。
方法三:把作业交给多个计算机去完成。
我们可以使用方法一的程序,部署到 N 台机器上去,然后把论文集分成 N 份,一台 机器跑一个作业。这个方法跑得足够快,但是部署起来很麻烦,我们要人工把程序 copy 到别的机器,要人工把论文集分开,最痛苦的是还要把 N 个运行结果进行整合 (当然我们也可以再写一个程序)。
方法四:让 MapReduce 来帮帮我们吧!
 
      MapReduce 本质上就是方法三,但是如何拆分文件集,如何 copy 程序,如何整 合结果这些都是框架定义好的。我们只要定义好这个任务(用户程序),其它都交 给 MapReduce 。
map 函数和 reduce 函数
  map 函数和 reduce 函数是交给用户实现的,这两个函数定义了任务本身。
map 函数:接受一个键值对( key-value pair ),产生一组中间键值对。MapReduce 框架会将 map 函数产生的中间键值对里键相同的值传递给一个reduce 函数。
reduce 函数:接受一个键,以及相关的一组值,将这组值进行合并产生一组规模 更小的值(通常只有一个或零个值)。
 
私塾在线学习网原创内容,转载请注明出处【http://sishuok.com/forum/blogPost/list/0/5456.html

hadoop2.x—mapreduce实战和总结

在eclipse上编写程序,运行在hadoop上。网上很多的例子都是1.x的mr代码,而1.x的代码和2.x的代码是有些区别的。在hadoop官网上可以下载到hadoop的源码包,源码包里面有很多的源...
  • u012749168
  • u012749168
  • 2016年10月13日 19:09
  • 2340

Hadoop之——MapReduce实战(一)

MapReduce概述      MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题.      MR由两个阶段组成:Map和Reduce,用户只需要...
  • l1028386804
  • l1028386804
  • 2015年05月24日 22:41
  • 2291

hadoop基础----hadoop实战(三)-----hadoop运行MapReduce---对单词进行统计--经典的自带例子wordcount

ass
  • q383965374
  • q383965374
  • 2016年08月29日 16:04
  • 1968

Hadoop实战:MapReduce应用实例

参考:hadoop实战一.WordCount 任务:统计文件中单词的频率 代码: package mapreduce; import java.io.IOException; import java....
  • lilianforever
  • lilianforever
  • 2016年07月10日 16:52
  • 4597

Hadoop实战-初级部分 之 Hadoop MapReduce JAVA API

私塾在线《深入浅出学   Hadoop-   初级   部分》    ——   系列精品教程 视频课程地址》》》  http://sishuok.com/product/481 整体课程概...
  • hdsfnbdgs
  • hdsfnbdgs
  • 2013年12月02日 09:56
  • 261

hadoop实战-初级部分

对hadoop这个东西不是太了解,似乎是个处理海量数据的东西,没有时间研究,不过发现这样一篇介绍初级入门的帖子,保留下来,分享给大家。 http://sishuok.com/forum/blogPo...
  • song_shi_chao
  • song_shi_chao
  • 2012年10月09日 15:31
  • 491

Hadoop实战-初级部分 之 Hadoop IO

私塾在线《深入浅出学  Hadoop-  初级  部分》   ——  系列精品教程 视频课程地址》》》 http://sishuok.com/product/481 整体课程概览 ...
  • hdsfnbdgs
  • hdsfnbdgs
  • 2013年12月02日 09:59
  • 274

MongoDB中复杂的分组查询统计(MapReduce)

按日期、行为、用户统计行为表 由于行为表是分片表,不能使用group,只能采用MapReduce进行分组统计: db.runCommand({ mapreduce:"pmhuseraction", m...
  • fengyily
  • fengyily
  • 2012年06月13日 16:08
  • 5253

Hadoop实战-初级部分 之 Hadoop安装部署

本节课程概览 Hadoop 在windows 上伪分布式的安装过程  Hadoop 在linux  上单节点伪分布式的安装过程  集成Eclipse 开发...
  • SprintfWater
  • SprintfWater
  • 2013年10月01日 20:44
  • 713

【机器学习实战】第15章 大数据与MapReduce

第15章 大数据与MapReduce 大数据 概述 大数据: 收集到的数据已经远远超出了我们的处理能力。 大数据 场景 假如你为一家网络购物商店工作,很多用户访问该...
  • u010859707
  • u010859707
  • 2017年10月09日 10:54
  • 281
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hadoop实战-初级部分 之 MapReduce
举报原因:
原因补充:

(最多只允许输入30个字)