大数据实战之hadoop生态概况和官网文档解读

本小节 jacky 分享的是:

Hadoop 核心的组成模块,依赖于 Hadoop 的其他的生态系统。随着jacky后面逐步的分享,会对本小节 Hadoop 概况中的这些概念有更好的加深与了解。

(一)Hadoop 四大核心模块

在 Hadoop 官网就告诉了我们 Hadoop 有4大核心模块:

  • Hadoop Common

    • 一般 common 包的都是工具类,这个工具主要是支撑其他 hadoop 模块,它是一个辅助的模块;
  • Hadoop Distributed File System(HDFS):

    • Hadoop 分布式的文件系统,它提供了一个对数据存储的接口访问
  • Hadoop YARN

    • Hadoop YARN 是一个框架(framework),这个框架干什么:用于作业(job)和集群资源(cluster resource)的管理。
  • Hadoop MapReduce

    • MapReduce 是一个基于YARN 系统的并行的一个进程,大数据并行处理的一个进程。本质是 MapReduce 就是一个计算框架

如果我们狭义上说Hadoop ,那 Hadoop 就是只上面得核心模块;

如果我们广义上说 Hadoop,我们说得是 Hadoop 的生态系统, 有些领域项目会依赖于 Hadoop,

(二)Hadoop 发展的三个阶段

  • 1.X
  • 2.X
  • 3.X

jackyi 分享的是 Hadoop 的三代

(三)Hadoop 的生态环境

jacky 在分享 Hadoop 的时候,在 MapReduce 这个模块中代码会演示的比较多,MapReduce 这个框架计算写的也会比较多,但在真正用的时候,有可能一行代码都不写,为什么呢?因为就是这些生态系统的存在,比如说Hadoop生态系统中的 Hive, Hive 的原理就是把一堆MR的内容转化成了 SQL 的形式,大家学的大数据阶段了,就肯定熟练掌握 SQL 了,SQL是什么,SQL是结构化的查询语言,我们可以不用写 Api 了,这样不用写API , 我们很多人就都可以学习大数据了,不用再去学相关的编程,成本很低,这是 Hive 存在的意义。

HBase 来自于谷歌的一篇论文,HBase 就是一张大表(scalable),这张表里行无限,列也无限,而且是动态的,每个列的类型要准确,HBase 可以无限的增加,它跟你执行一行的速度是一样的,不会因为你执行行增加而降低速度,这一点关系型数据库是做不到的。但是HBase 能够查询数据的途径是有限的,需要使用 rowkey;

那既然有HIve ,有 HBase ,我们实际上使用可能不会写那么多代码,而是改成写 hive 类型的SQL 语句,那为什么还要学 MapRedue 框架?因为我们后面还有一个大数据最重要的生态:Spark,这个Spark 是做计算处理的,只不过Spark的效率相对于Hadoop来说要快;MapReduce 只能处理离线计算,是非常稳定的,但是MapReduce 它强依赖于IO,频繁的与磁盘进行交互,这里有一个常识:频繁与磁盘交互,效率都高不了。Spark 是基于内存迭代的,它速度很快,但是Spark 有可能会造成各种各样的问题,所以Spark的最大优势是给用户暴露了一个更加友好的编程接口。hadoop 就是 mapreduce 框架加几个关联接口,可spark 能给你暴露一堆接口,完全简化了程序构建的复杂度,因为上面mapreduce 你要基于原生代码模拟各种数据结构,成本比较高;

还有一个zookeeper ,也依赖于hadoop 项目,zookeeper 是一个分布式的协调系统,换句话说,它是给分布式应用程序提供的协调服务。

原文地址:https://www.cnblogs.com/shujufenxi/p/14413642.html