首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

hadoop学习路线(1)

hadoop学习路线(1)

记录hadoop学习到运用实战的整个攻略以及学习的知识点顺序


1.虚拟机

hadoop的环境是Linux,所以我们还需要安装Linux系统。hadoop,有单机安装,伪分布安装和分布安装。对单机模式大家可以不用去关心和学习,因为hadoop的单机模式就失去了它分布式的优势,也就没有意义了。在学习中建议搭建伪分布式,完全分布式是生产环境中使用,当大家把伪分布式学习后,必须对完全分布式有所了解,知道是如何工作的,也可以试着搭建hadoop的完成分布式。因为我们的习惯是使用windows,专门买几台机子机子来练习hadoop成本比较高。

虚拟机的存在就能帮助我们解决这样的问题。 只要内存支持,一台机子上可以多装几台虚拟机,也能实现完全分布式。


2.linux

hadoop的环境是linux,我们很多命令和操作都将在linux上进行,因此对linux的学习和命令熟悉必不可少。



3.java基础

hadoop的源码是用java写的,因此用java来对hadoop进行操作最好了。 hadoop需要具备javaSE的基础知识,对于javaEE(jsp/servlet/三大框架)没有要求。java在hadoop中的运用主要是写业务方面的代码,通常是mapreduce。-----也就是hadoop对数据的处理运算流程。


4.hadoop基础知识

主要是对hadoop的文件系统以及工作机制,什么是mapreduce进行了解。有利于我们之后实际运用过程中遇到问题的解决。


5.hadoop安装

应该对伪分布,完全分布的环境都进行一次亲自动手部署


6.hadoop运用

学习用java写hadoop的mapreduce,尝试完成一些业务实例。对mapreduce的运用达到熟练的水平。


7.hadoop原生管理工具

在hadoop运行过程中,对hadoop集群的监控已经业务实例运行状态的日志查看等是不可或缺的。我们先了解hadoop原生管理工具的使用。


8.hadoop进阶管理工具

hadoop作为开源项目,有很多优秀的公司和个人会对它进行优化开发。当然也会有很多优秀的管理工具。有些甚至能让hadoop的管理和开发变得更简单。



9.hadoop新架构

Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等。

http://blog.cloudera.com/blog/2013/01/apache-hadoop-in-2013-the-state-of-the-platform/

更多更新详见左侧边栏



10.hadoop的框架演化

大数据本质也是数据,但是又有了新的特征,包括数据来源广、数据格式多样化(结构化数据、非结构化数据、Excel文件、文本文件等)、数据量大(最少也是TB级别的、甚至可能是PB级别)、数据增长速度快等。

针对以上主要的4个特征我们需要考虑以下问题:
数据来源广,该如何采集汇总?,对应出现了Sqoop,Cammel,Datax等工具。
数据采集之后,该如何存储?,对应出现了GFS,HDFS,TFS等分布式文件存储系统。
由于数据增长速度快,数据存储就必须可以水平扩展。
数据存储之后,该如何通过运算快速转化成一致的格式,该如何快速运算出自己想要的结果?
对应的MapReduce这样的分布式运算框架解决了这个问题;但是写MapReduce需要Java代码量很大,所以出现了Hive,Pig等将SQL转化成MapReduce的解析引擎;
普通的MapReduce处理数据只能一批一批地处理,时间延迟太长,为了实现每输入一条数据就能得到结果,于是出现了Storm/JStorm这样的低时延的流式计算框架;
但是如果同时需要批处理和流处理,按照如上就得搭两个集群,Hadoop集群(包括HDFS+MapReduce+Yarn)和Storm集群,不易于管理,所以出现了Spark这样的一站式的计算框架,既可以进行批处理,又可以进行流处理(实质上是微批处理)。
而后Lambda架构,Kappa架构的出现,又提供了一种业务处理的通用架构。
为了提高工作效率,加快运速度,出现了一些辅助工具:
Ozzie,azkaban:定时任务调度的工具。
Hue,Zepplin:图形化任务执行管理,结果查看工具。
Scala语言:编写Spark程序的最佳语言,当然也可以选择用Python。
Python语言:编写一些脚本时会用到。
Allluxio,Kylin等:通过对存储的数据进行预处理,加快运算速度的工具。
返回列表