零基础学习Hadoop应该如何学习

Hadoop是一个由Apache基金会所开发的分布式系统基础构架。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。他的目的是从单一的服务器扩展到成千上万的机器,将集群部署在多台机器,每个机器提供本地计算和存储。Hadoop框架最核心的设计是HDFS和MspReduce。

关于Hadoop,首先我们需要了解Hadoop 1.0、Hadoop 2.0、MapReduce、HDFS、NameNode、DataNode、JobTracker、TaskTracker、Yarn、ResourceManager、NodeManager。并且还要自己学会如何搭建Hadoop,先让它跑起来。(建议先使用安装包命令行安装,不要使用管理工具安装。现在都用Hadoop 2.0)

HDFS目录操作命令;上传、下载文件命令;提交运行MapReduce示例程序;打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。知道Hadoop的系统日志在哪里。以上完成之后,就应该去了解他们各个的原理了。例如:MapReduce:如何分而治之;HDFS:数据到底在哪里,究竟什么才是副本;Yarn到底是什么,它能干什么;NameNode到底在干些什么;Resource Manager到底在干些什么;

其次,我们可以自己写一个(照抄也行)WordCount程序,打包并提交到Hadoop运行。你不会Java、Shell、Python都可以,有个东西叫Hadoop Streaming。如果你认真完成了以上几步,恭喜你,你的一只脚已经进来了。

再其次,一定要学习SQL,它会对你的工作有很大的帮助。就像是你写(或者抄)的WordCount一共有几行代码,但是你用SQL就非常简单了,例如:SELECT word,COUNT(1) FROM wordcount GROUP BY word;这便是SQL的魅力,编程需要几十行,甚至上百行代码,而SQL一行搞定;使用SQL处理分析Hadoop上的数据,方便、高效、易上手、更是趋势。不论是离线计算还是实时计算,越来越多的大数据处理框架都在积极提供SQL接口。另外就是SQL On Hadoop之Hive于大数据而言一定要学习的。

最后,学会Hive的基本命令:创建、删除表;加载数据到表;下载Hive表的数据;MapReduce的原理(还是那个经典的题目,一个10G大小的文件,给定1G大小的内存,如何使用Java程序统计出现次数最多的10个单词及次数);HDFS读写数据的流程;向HDFS中PUT数据;从HDFS中下载数据;自己会写简单的MapReduce程序,运行出现问题,知道在哪里查看日志;会写简单的Select、Where、group by等SQL语句;Hive SQL转换成MapReduce的大致流程;Hive中常见的语句:创建表、删除表、往表中加载数据、分区、将表中数据下载到本地;

从上面的学习,你已经了解到,HDFS是Hadoop提供的分布式存储框架,它可以用来存储海量数据,MapReduce是Hadoop提供的分布式计算框架,它可以用来统计和分析HDFS上的海量数据,而Hive则是SQL On Hadoop,Hive提供了SQL接口,开发人员只需要编写简单易上手的SQL语句,Hive负责把SQL翻译成MapReduce,提交运行。

其实不管学习什么大体的构建和方法是一样的,我们首先要把学习这个东西的基础打扎实,至于用什么方法就选择适合自己的进行学习,比如可以通过书籍,网络教学视频等。

零基础学习Hadoop应该如何学习



分享到:


相關文章: