首页 > 大数据 > Hadoop > 大数据开发之Hadoop家族都有谁
Hadoop的整体架构
Hadoop 是一个用于大数据的架构解决方案。经过多年的开发演进,Hadoop 已成为一个庞大的系统, 大数据培训它的内部工作机制非常复杂,是一个结合了分布式理论与具体的工程开发的整体架构。
关于 Hadoop 最朴素的原理,就是要使用大量的普通计算机处理大规模数据的存储和分析,而不是建造一台超级计算机。
这里有两个问题需要解决:
Hadoop 系统的一个架构图。现在已经有了非常多的组件,但最核心的两部分依然是底层的文件系统 HDFS和用于计算的 MapReduce。来看下 Hadoop 系统中的一些重要组成部分。
1.HDFS(分布式文件系统)
HDFS 是 Hadoop Distributed File System 的缩写,是一个文件系统。它在 Hadoop 体系中帮助解决文件的底层存储问题,支持海量数据的磁盘存储,进行机器的线性扩充,只需要在集群中增加节点,存储能力就会同步增长。
HDFS 具备非常强大的容错性能,某些节点出现了故障不影响系统的使用,通常数据都有很多的副本。HDFS 屏蔽了存储的细节,在客户端提供了一套完整的文件管理命令,把底层的文件以一种结构化的目录形式展现给用户,可以像使用 Linux 文件操作命令一样使用 Hadoop 命令来访问对应的文件。【关注尚硅谷,轻松学IT】
2.MapReduce(分布式计算框架)
在 Hadoop 中的 MapReduce 框架就解决了分布式计算的问题,包括其中的运算逻辑与数据依赖。在 MapReduce 的应用上,提供了一套编程模型,重点就是实现 map 函数和 reduce 函数:
3.Hive(数仓系统)
在 HDFS 之上,Hive 是 Hadoop 体系的数据仓库工具,可以将结构化的数据文件映射成一个数据表,注意这里的重点是结构化的数据文件。在 HDFS 文件系统中可以存储结构化数据文件,也可以存储非结构化数据文件,而 Hive 是处理其中的结构化数据文件,它本身并不进行存储。
Hive 提供了一套Hive SQL实现 MapReduce 计算,可以使用与 SQL 十分类似的 Hive SQL 对这些结构化的数据进行统计分析,从某种意义上来说 Hive 是对 MapReduce 进行包装后产生的工具。
Hive 是一个非常常用的数仓工具,很多公司都会把它当作基础数仓来使用。不过 Hive 也有一些不好用的地方,比如不能进行单条数据更新。
4.HBase(分布式数据库)
在存储方面,Hadoop 架构中还有一个 Hbase 数据库。HBase 是一个分布式高并发的K-V 数据库系统,它的底层由 HDFS 来支撑,而 HBase 通过对存储内容的重新组织,克服了HDFS 对小文件处理困难的问题,实现了数据的实时操作。
互联网公司中,对于量级较大变动较多的数据通常适合使用 HBase 进行存取。
5.Yarn(资源调度和管理框架)
在最早的 Hadoop 1.0 中其实是没有 Yarn 的,资源调度等功能都包装在 MapReduce 的 JobTracker 中。而 JobTracker 负担了太多的功能,接受任务、资源调度甚至是监控TaskTracker 的运行情况。当时存在一个问题,在集群规模非常大的时候会出现不稳定的情况。在 2.0 中对其进行了拆分,产生了独立的 Yarn。拆分出 Yarn 之后,MapReduce 只负责计算,这也给后面其他计算框架替换 MapReduce 提供了方便,保障了 Hadoop 整个架构长盛不衰。
6.ZooKeeper(分布式协作服务)
ZooKeeper,直译是动物园管理员。这是因为很多项目都以动物的名字命名,而 ZooKeeper 最常用的场景是作为一个服务的注册管理中心。生产者把所提供的服务提交到 ZooKeeper 中,消费者则去 ZooKeeper 中寻找自己需要的服务,从中获取生产者的信息,然后再去调用生产者的服务。
Hadoop的优缺点
在 Hadoop 的框架中还远远不止这些东西。不过最主要的、平时工作中接触最多的部分已经都有涉及。再看看Hadoop 的一些优缺点。
Hadoop 的优点
Hadoop 的缺点
虽然处理大数据的框架并不只Hadoop一种。但Hadoop 是免费的开源的,且是当前应用最广泛的。它最强大的地方就在于能够利用最普通的机器解决了大规模数据存储和运算的问题。
原创作者:勾叔
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70010293/viewspace-2846678/ ,如需转载,请注明出处,否则将追究法律责任。