Hadoop学习之路----生态系统及其版本衍化总结(第一讲)

来源:互联网 发布:极简生活 知乎 编辑:程序博客网 时间:2024/06/11 12:48

Hadoop学习之路----生态系统及其版本衍化总结(第一讲)

课程讲到了第七周,感概颇多,如果我当初自己学的时候能够听到这样的课程,会少走多少弯路,曾静一个的小问题耗费一个月时间的情况都有。所以请大家不要灰心,不管遇到什么困难,坚持坚持在坚持,理解理解在理解。
       论坛其实有很多不错的帖子,如果你认真思考Ta的问题,也许就是你知识的盲点或是你没思考过的问题。是一个很大提升自己的过程,毕竟听懂和讲给别人是完全不同的,大家定要积极...你对待Hadoop的态度就决定了你能学到什么程度(也许大家处于不同的城市,但是做IT我想大多漂泊外在,我们能奋斗和拼搏的时光也就3-5,珍惜时间,时间在北上广才是最宝贵的...大家轻喷肺腑之言)!

第一讲课程重点
1.Hadoop生态系统概述
2.Hadoop生态系统版本衍化
3.Hadoop该如何学习

1.Hadoop生态系统概述
主要认识Hadoop生态系统都包括那些子项目,每个项目都有什么特点,每个项目都能解决哪一类问题,能回答这三个问题就可以了(本将属于热身...重在理解Hadoop生态系统组成,现状,发展,将来)


HDFS:
HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。
MapReduce:
MapReduce是一种计算模型,用以进行大数据量的计算。Hadoop的MapReduce实现,和Common、HDFS一起,构成了Hadoop发展初期的三个组件。MapReduce将应用划分为Map和Reduce两个步骤,其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce这样的功能划分,非常适合在大量计算机组成的分布式并行环境里进行数据处理。
HBase
HBase是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。和传统关系数据库不同,HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。
Hive
Hive是Hadoop中的一个重要子项目,最早由Facebook设计,是建立在Hadoop基础上的数据仓库架构,它为数据仓库的管理提供了许多功能,包括:数据ETL(抽取、转换和加载)工具、数据存储管理和大型数据集的查询和分析能力。Hive提供的是一种结构化数据的机制,定义了类似于传统关系数据库中的类SQL语言:Hive QL,通过该查询语言,数据分析人员可以很方便地运行数据分析业务(将SQL转化为MapReduce任务在Hadoop上执行)。
Pig
Pig运行在Hadoop上,是对大型数据集进行分析和评估的平台。它简化了使用Hadoop进行数据分析的要求,提供了一个高层次的、面向领域的抽象语言:Pig Latin。通过Pig Latin,数据工程师可以将复杂且相互关联的数据分析任务编码为Pig操作上的数据流脚本,通过将该脚本转换为MapReduce任务链,在Hadoop上执行。和Hive一样,Pig降低了对大型数据集进行分析和评估的门槛。
Zookeeper
在分布式系统中如何就某个值(决议)达成一致,是一个十分重要的基础问题。ZooKeeper作为一个分布式的服务框架,解决了分布式计算中的一致性问题。在此基础上,ZooKeeper可用于处理分布式应用中经常遇到的一些数据管理问题,如统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。ZooKeeper常作为其他Hadoop相关项目的主要组件,发挥着越来越重要的作用。
Mahout
Mahout起源于2008年,最初是Apache Lucent的子项目,它在极短的时间内取得了长足的发展,现在是Apache的顶级项目。Mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。除了算法,Mahout还包含数据的输入/输出工具、与其他存储系统(如数据库、MongoDB 或Cassandra)集成等数据挖掘支持架构。
Flume
Flume是Cloudera开发维护的分布式、可靠、高可用的日志收集系统。它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力。总的来说,Flume是一个可扩展、适合复杂环境的海量日志收集系统。
Sqoop
Sqoop是SQL-to-Hadoop的缩写,是Hadoop的周边工具,它的主要作用是在结构化数据存储与Hadoop之间进行数据交换。Sqoop可以将一个关系型数据库(例如MySQL、Oracle、PostgreSQL等)中的数据导入Hadoop的HDFS、Hive中,也可以将HDFS、Hive中的数据导入关系型数据库中。Sqoop充分利用了Hadoop的优点,整个数据导入导出过程都是用MapReduce实现并行化,同时,该过程中的大部分步骤自动执行,非常方便。

很多概念和组件也许你还是很不理解,其实没有关系,随着课程的进度就会慢慢理解

2.Hadoop生态系统版本衍化

对于这个问题很好解决看董的blog就可以了下面给出了链接地址:

http://dongxicheng.org/mapreduce-nextgen/how-to-select-hadoop-versions/

3.Hadoop该如何学习

Hadoop该如何学习呢,我就发表一些自己的个人体会

Hadoop权威指南(必看)

Hadoop实战(没看过想必肯定不错)

老师的推荐阅读(必看反复看)

Hadoop权威指南,有些厚的书,其实不必上来就想着看完。书的结构都是有组织的你可以根据自己需求来阅读。

比如你想对集群的安装和部署学习一下,那么你可以先看第九章和第十章Setting Up a Hadoop Cluster和Administering Hadoop,你对集群配置有了了解以后再去网上找一些配置blog(不然折磨的体无完肤)。看着两张花一天时间肯定够了,一般同学都是上来搞配置一点理论都不看,这样是肯定不行的,因为刚刚接触一个事物对它不了解的地方太多了。所以安心在家里看完这两章会有一种豁然开朗的感觉。你甚至能看到有些blog中的错误和不合理的地方。

然后开始看第一章,Meet Hadoop不要着急练代码,先理解第一章的整体思路(我自己读书第一遍都是不会练代码的,一般第三遍或更多的时候才会开始练代码,因为我始终觉得代码只是思路的具体实现)。第一章完了看第二章吧....讲述了一个完整的MapReduce案例,需要耐心看,反复体会。一定要对MapReduce这种编程模型有大体的认识。现在我觉得可以去读第六章了How MapReduce Works和第七章MapReduce Types and Formats,都是重点,这三章看完对MapReduce理解就没有问题了。尤其是第六章读吧,我不知道读了多少遍...某些段落看10多遍都很正常一边看我是一边用笔画,毕竟我自己学习的时候还是没有视频的。很多东西很难理解。最后我认为可以看3,4,5章了。

第三章主要是HDFS,熟悉读写过程,HDFS机架感知,副本存放策略等等就可以了,

第四章其实一直觉得都是要会自己实现writable类,Hadoop支持的压缩类型,那些支持切分,了解为什么Hadoop为什么要有新的序列化机制

第五章就是讲的调试过程,开发过程的一般步骤

前面这七章需要反复看,理解了看后面的都好办了。(理解了这本书余下的自己就知道该如何学习了,写的比较乱,大家有好的心得,可以分享!)


原文地址:http://bbs.chinahadoop.cn/forum.php?mod=viewthread&tid=5611

0 0
原创粉丝点击