如何入门hadoop

摘于 知乎

我也是做毕业设计才开始接触Hadoop,折腾了蛮久,看了各种各类的书,对于如何入手也有些感触。我不是Hadoop专家,也只是一个初学者,这里我也只是就自己的学习体会,站在初学者的角度谈一下如何入门。)
首先我觉得因为思考这样一个问题:Hadoop对于我们来讲,是一种工具,那么Hadoop帮助我们解决了什么问题?或者换个角度想,没有Hadoop,我们做同样一项工作会增加什么任务?(想清楚了这问题,心里就会形成Hadoop到底是什么,能做什么的概念。初学者在最初时候很容易框架当成负担,但实际上他应该是工具。明白了Hadoop这个神器的美妙后,你就可以开始心怀期待的去慢慢驾驭它了。)
初学Hadoop,最基础的也就是HDFS和Mapreduce了,HDFS是一个分布式存储文件系统,Mapreduce是一个分布式计算的框架,两者结合起来,就可以很容易做一些分布式处理任务了。作为入门,先只需要学习这两样就够了。
好了,那就开始讲一下怎么学习这两样。
1、首先你肯定要搭建好环境。(这些网上教程很多。)然后,找一篇讲Hdfs java API的文章HDFS API详解把其中的例子跑一下,感受一下就可以了。(只需要只要有哪些API,大概怎么用,以后要用,直接在里面找,或者查看API文档。)
2、然后就是Mapreduce了。说简单一点,这就是一个编程接口,这个框架帮我们抽象了很多分布式处理的细节,我们只需要简单的编写mapreduce任务就可以了。要想编写mapreduce程序,首先你应该弄清楚mapreduce的基本流程Hadoop -- MapReduce过程,然后要清楚,我们自己编程写mapreduce任务需要编写哪些东西(就是哪些部分是可以重写,应该重写的),这个可以参考刘鹏的《实战Hadoop》,里面细致的剖析了wordcount程序的运行过程,并说明了哪些函数是我们编程需要实现的。看懂了这些(最好要运行一些这些程序),你基本就可以写一些mapreduce程序,处理一些简单的任务了。(至于mapreduce高级运行,比如定制数据类型、patitioner、组合任务等等这些,你只要知道有这些就可以了,需要用的时候再仔细看。)

还有谷歌的那篇MapReduce_Simplified_Data_Processing_on_Large_Clusters可以多读几遍,可以解决你心中对于mapreduce框架的很多疑问。另外给个链接MapReduce的核心资料索引

我觉得知道了这些,基本就是入门了。然后再要深入学习,你就可以根据自己的需要去学了(这个时候你应该也知道该怎么学了)。至于hadoop衍生的那些HIVE、Pig等等,我觉得只需要知道有那些东西,知道那些能做什么就可以了。因为我们的目的只是把Hadoop作为工具。如果是其他目的,你可以看看mapreduce源码分析之类吧。我暂时没搞这些,不懂,就不多说了。

猜你喜欢

转载自chengjianxiaoxue.iteye.com/blog/2071767