立即注册 登录
About云-梭伦科技 返回首页

pig2的个人空间 https://www.aboutyun.com/?61 [收藏] [复制] [分享] [RSS]

日志

零基础学习hadoop到上手工作线路指导(中级篇)

已有 1237 次阅读2014-5-2 14:18 |个人分类:云技术

原文地址:
此篇是在零基础学习hadoop到上手工作线路指导(初级篇)的基础,一个继续总结。
五一假期:在写点内容,也算是总结。上面我们会了基本的编程,我们需要对hadoop有一个更深的理解:
hadoop分为hadoop1.Xhadoop2.X,并且还有hadoop生态系统。这里只能慢慢介绍了。一口也吃不成胖子。




hadoop 1.x分为
mapreduce与hdfs

其中mapreduce是很多人都需要迈过去的槛,它比较难以理解,我们有时候即使写出了mapreduce程序,但是还是摸不着头脑。
我们不知道key代表什么意思,我们不知道为什么会处理这个value。什么是便宜另,map有key、value,输出了key、value,有时候还会合并,reduce处理完毕之后又输出了key、value。这让我们产生了困惑,分不清。

mapreduce是一种编程模型,那么它能干什么,对我有什么用。它的原理是什么,为什么我们编写了map函数,reduce函数就可以在多台机器上运行。
这些问题或许都给初学者带来了困扰。是的,这些问题同样也困扰了我,这里写出来分享给大家,避免走同样的弯路。

面对mapreduce,有一篇文章,这里总结的很好,包括:该如何入门,该如何理解mapreduce,该如何练习mapreduce,该如何运用mapreduce。这里面介绍的很全。
mapreduce学习指导及疑难解惑汇总,内容包括:
---------------------------------------------------------------------------------------------------
1.思想起源:

我们在学习mapreduce,首先我们从思想上来认识。其实任何的奇思妙想,抽象的,好的想法、都来源于我们生活,而我们也更容易理解我们身边所发生事情。所以下面一篇便是从生活的角度,来让我们理解,什么是mapreduce。
Hadoop简介(1):什么是Map/Reduce

2.设计思路

我们从思想上认识了mapreduce,那么mapreduce具体是什么,我们需要看得见,摸得着。我们该如何实现这个思想,我们该如何设计mapreduce。那么现在来说说它的设计思路。

设计思路如何表示:ok下面的帖子,是通过一张图来表达的。
Mapreduce 整个工作机制图

mapreduce是hadoop的核心,正因为mapreduce,所以才产生了分布式。所以我们可能通过一张图,了解的不够清楚和详细。我们还需要了解里面的原理:
MapReduce工作原理讲解

 
3.模型实现

通过上面我们可能有了自己的一些看法。但是我们可能还是认识不太清楚。那么咱们在来看看编程模型,来进一步的了解。

MapReduce 编程模型概述


mapreduce编程模型


4.产生问题

我们看了上面的文章,这时候会有一些名词、概念进入我们的脑海。
除了map,reduce,task,job,shuffe,partition,combiner这些把我们给弄糊涂了。
我们产生问题如下:
map的个数由谁来决定,如何计算?
reduce个数由谁来决定,如何计算?
简单来讲map由split来决定,reduce则是由partition来决定。
详细可以查看
如何确定 Hadoop map和reduce的个数--map和reduce数量之间的关系是什么?

---------------------------------------------------------------------------------------------------
shuffle是什么?
partition是什么?
combiner是什麽?
他们三者之间的关系是什么?

mapreduce是hadoop核心,而shuffle是mapreduce的核心,shuffle个人认为它是一个动态的过程,包含了Combiner,merge等的过程,那么这里因为讲到shuffle,很多人都讲的全面,Combiner,merge,sort几乎全都讲了,这样讲是没有错误的,但是容易给初学者造成一个假象,那就是这些过程必须都是包含的,其实这些是根据个人的需求来确定的。
彻底了解mapreduce核心Shuffle--解惑各种mapreduce问题

对于Combiner的疑惑可以查看
Mapper过程中Combiner的作用
解决了下面问题
为什么需要在Mapper端进行归约处理?
为什么可以在Mapper端进行归约处理?
既然在Mapper端可以进行归约处理,为什么在Reducer端还要处理?

上面三个问题,可以查看帖子
hadoop中,combine、partition、shuffle作用分别是什么?




同样关于上面的问题可以参考
关于Mapper、Reducer的个人总结




5.编程实现

mapreduce是一种编程模型,我们认识了解,下面就需要编程实现了。那么mapreduce都能做些什么?下面我们可以看看

MapReduce初级案例(1):使用MapReduce去重


MapReduce初级案例(2):使用MapReduce数据排序


MapReduce初级案例(3):使用MapReduce实现平均成绩


通过上面三个例子,也是我们验证前面所理解的内容。
同样可以参考下面内容

Hadoop mapper类的阅读

Hadoop reducer类的阅读

Mapreduce shuffle和排序

hadoop中mapreduce包及制作文档指导


Hadoop开发环境搭建及map-reduce开发实例讲解视频下载


如何进行Hadoop二次开发指导视频下载



6.mapreduce应用
上面是一些基本的知识,那么我们熟悉之后,其实有些地方,可以应用在其它方面。下面可以参考:

淘宝之HBase MapReduce实例分析


MapReduce在压力测试中的应用
---------------------------------------------------------------------------------------------------

这里在增加几篇:
深度了解mapreduce---MapReduce源码分析总结
此篇文章可以解决很多初学者的困惑,由浅入深讲的很不错。
新手指导:mapreduce不同类型的数据分到同一个分区是否会影响输出结果
由于在我们刚接触知识,会让我们造成误解,这里区分开了,分区与输出结果之间的关系。
新手指导:MapReduce中的分区方法Partitioner
这里讲解了分区是由谁来决定的,我们该如何分区
新手指导:mapreduce的key与value输入输出参数为什么会让你迷惑
对于新手这篇文章阐述了key,value为什么会让我们迷惑。
新手指导:让你真正了解mapreduce中map函数与reduce函数功能及key与value的含义
词牌你文章同样,从另外角度讲解了key,value,通过上面两篇或许你已经认识了key与value。
通过Wordcount实例解析map函数及reduce函数执行过程
很多新手在学习的过程中找不到标准,不知道mapreduce程序,每个过程,每行代码代表什么意思,这里给大家提供可以参考一下。

总结:如果已经把上面的文章都看过了,那么你对mapreduce如果说还不透彻,但是已经感觉对mapreduce会有自己的看法了。并且产生的各种问题,都有了自己的答案。


---------------------------------------------------------------------------------------------------
mapreduce熟悉了,还有一些问题困扰着初学者,虽然有了Java基础,但是我们需要搭建开发环境,该如何搭建开发环境:hadoop开发方式总结及操作指导
开发方式有两种,但是其实本质是一样的,第一种方式只能操作hdfs,对于操作mapreduce,可能会遇到权限问题。所以可以采用第二种方式。也就是下面这篇所介绍的开发方式
新手指导:Windows上使用Eclipse远程连接Hadoop进行程序开发


---------------------------------------------------------------------------------------------------
因为在操作mapredcue过程中伴随着操作hdfs,如何我们传统开发,我们编程是离不开数据库一样。

我们该如何学习hdfs:
什么是HDFS及HDFS架构设计

这里给我们一个初步的概念
HDFS体系结构简介及优缺点

初步了解之后,我们就需要了解它的组成,为了更好的使用它,我们就需要了解他的优点与缺点。

HDFS可以理解为数据库,因为我们既可以通过sql直接操作数据库,亦可以通过编程接口,通过编程语言来操作。那么HDFS则是可以通过shell来操作。
Hadoop框架之HDFS的shell操作
HDFS Shell基本操作HDFS命令行接口

,同样hsfs的编程接口可以通过下面来了解:
HDFS的Java访问接口
Java创建hdfs文件实例
Hadoop培训笔记之HDFS编程

为了节省空间,我们还可以对hdfs数据进行压缩:
HDFS支持数据压缩的几种方法探讨



上面可以说是我们已经有了一定的了解,但是有的同学,想系统的了解,这里给大家提供一些资料。

HDFS必读书籍:HDFS-Hadoop分布式文件系统深度实践


Hadoop技术内幕 深入解析HADOOP COMMON和HDFS架构设计与实现原理大全1-9章


深入浅出Hadoop实战开发(HDFS实战图片、MapReduce、HBase实战微博、Hive应用)
----------------------------------------------------------------------------------------------
我们在学习和使用的过程中,会遇到很多的错误,这里也给大家提供几篇帖子
hadoop常见错误汇总及解决办法一
Hadoop常见错误问题及解决方法总结二
hadoop常见错误总结三

-----------------------------------------------------------------------------------------------------------------
至此hadoop1.x已经完毕了

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条