Hadoop实战-初级部分 之 MapReduce

原创 2013年12月02日 09:57:30
私塾在线《深入浅出学  Hadoop-  初级  部分》   ——  系列精品教程
第一部分: 什么是 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

相关文章推荐

Hadoop实战-初级部分 之 MapReduce

第一部分: 什么是 MapReduce               Hadoop Map/Reduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并...
  • twlkyao
  • twlkyao
  • 2013年12月31日 16:07
  • 1362

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

第一部分:Word Count 程序讲解   •编写一个MapReduce 程序的步骤 –编写一个Mapper类 –编写一个Reducer类 –编写一个Driver类(即Job),来将...
  • twlkyao
  • twlkyao
  • 2013年12月31日 16:25
  • 1529

Hadoop实战-初级部分 之 Shell

第一部分:Hadoop Bin 后面根据项目的实际需要Hadoop Bin  包括: Hadoop  hadoop的Shell hadoop-config.sh 它的作用是对一些变量进行...
  • twlkyao
  • twlkyao
  • 2013年12月31日 16:33
  • 887

Hadoop实战-初级部分 之 Hadoop IO

私塾在线《深入浅出学  Hadoop-  初级  部分》   ——  系列精品教程 视频课程地址》》》 http://sishuok.com/product/481 整体课程概览 ...
  • jdnha
  • jdnha
  • 2014年01月08日 16:10
  • 552

Hadoop实战-初级部分 之 Hadoop IO

私塾在线《深入浅出学  Hadoop-  初级  部分》   ——  系列精品教程 视频课程地址》》》 http://sishuok.com/product/481 整体课程概览 ...

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

视频课程地址》》》 http://sishuok.com/product/481 整体课程概览 第一部分:开始云计算之旅 第二部分:初识Hadoop 第三部分:Hadoop 环境安...
  • twlkyao
  • twlkyao
  • 2013年12月14日 11:10
  • 791

Hadoop实战-初级部分 之 Hadoop集群的安装

第一部分:Word Count 程序讲解   •编写一个MapReduce 程序的步骤 –编写一个Mapper类 –编写一个Reducer类 –编写一个Driver类(...

Hadoop实战-初级部分 之 Hadoop Shell 基本操作介绍

第一部分:Hadoop Bin 后面根据项目的实际需要Hadoop Bin  包括: Hadoop  hadoop的Shell hadoop-config.sh 它的作用是对一些变量进行赋值...

Hadoop实战-初级部分 之 开启云计算之旅 第一部分:我们为什么要学习云计算技术

第一部分:我们为什么要学习云计算技术 •“这是一场革命,庞大的数据资源使得各个领域开始了量化进程,无论学术界、商界还是政府,所有领域都将开始这种进程。”    ———哈佛大学 ...

Hadoop实战-中高级部分 之 Hadoop MapReduce高级编程

Hadoop实战-中高级部分 之 Hadoop MapReduce高级编程   Hadoop RestFul Hadoop HDFS原理1 Hadoop HDFS原理2 Hadoop作业调优...
  • whkjlcw
  • whkjlcw
  • 2014年05月06日 19:33
  • 530
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hadoop实战-初级部分 之 MapReduce
举报原因:
原因补充:

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