上文介绍了大数据开发学习需要的基础知识,接下来继续介绍大数据技术学习的重点之一:Hadoop。
Hadoop技术体系
(1)简介:
Hadoop是Apache开源组织的一个分布式基础框架,提供了一个分布式文件系统 (HDFS)、分布式计算(MapReduce)及统一资源管理框架(YARN)的软件架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。
Hadoop框架核心的设计是:HDFS、MapReduce、YARN。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算,YARN为计算程序提供资源调度服务。
2006年项目成立的一开始,“Hadoop”只代表了两个组件——HDFS和MapReduce。如今,这个单词代表的是“核心”(即Core Hadoop项目)以及与之相关的一个不断成长的生态系统,包括数据存储、执行引擎、编程和数据访问框架等。和Linux类似,都是由一个核心和一个生态系统组成。
(2)名字的由来:
Hadoop的发音是[hdu:p]。
Hadoop这个名字是Hadoop项目创建者Doug Cutting 的儿子的一只玩具的名字。他的儿子一直称呼一只黄色的大象玩具为 Hadoop 。这刚好满足Cutting 的命名需求,简短,容易拼写和发音,毫无意义,不会在别处使用。于是 Hadoop 就诞生了。
(3)主要组件介绍:
1)HDFS(Hadoop Distribute File System):分布式文件系统,提供对应用程序数据的高吞吐量,高伸缩性,高容错性的访问。Hadoop体系中数据存储管理的基础。
2)MapReduce:是一个分布式计算模型,由Map和Reduce组成,用以进行大数据量的计算。MapReduce分为两个阶段:Map阶段,Reduce阶段,其中Map阶段为映射,Reduce阶段是规约。其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果;Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。这样适合在大量计算机组成的分布式并行环境里进行数据处理。
3)YARN(Yet Another Resource Negotiator):分布式资源管理器,职能是将资源调度和任务调度分开。最大的特点是执行调度与Hadoop上运行的任务类型无关。Yarn可在Hadoop上执行除MapReduce以外的工作,其核心是分布式调度程序。
如果你对大数据开发感兴趣,想系统学习大数据的话,可以加入大数据技术学习交流扣扣群:458数字345数字782,欢迎添加,私信管理员,了解课程介绍,获取学习资源
(4)其他模块简介(部分):
4)HBase:是一个基于HDFS之上的高可靠、高性能、面向列、可伸缩的分布式NoSQL数据库。
5)Hive:是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
6)Zookeeper:一个分布式的,开放源码的分布式应用程序协调服务。提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
7)FlumeNG:是一个分布式、高可靠的数据采集系统,能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。
8)Sqoop:是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
9)Pig:运行在Hadoop上,是对大型数据集进行分析和评估的平台。
(5)如何学习Hadoop?
1)学习Hadoop的基本要求:
a、掌握JavaSEb、会使用maven工具c、会使用IDE(eclipse、IDEA)d、会使用Linux系统
2)Hadoop介绍和环境搭建
a、hadoop介绍b、Hadoop独立模式的安装及测试c、Hadoop的集群结构d、Hadoop的伪分布模式e、Hadoop的完全分布式环境搭建...
3)HDFS底层工作原理、HDFS编程
4)MapReduce原理、MapReduce实践
5)YARN原理及实践
6)Zookeeper原理及实践
7)Hbase、Hive、FlumeNG、Sqoop原理及实践。