什么是 Apache Hadoop
Apache Hadoop是一个开源软件框架,由当时就职于雅虎的Douglas Cutting开发,该框架使用简单的编程模型提供对大型数据集的高度可靠的分布式处理。
开源社区最初受到了Google发布的3篇论文的启发、后面社区按照论文做了java版本的开源实现才最后产生了Hadoop。具体来讲就是谷歌三驾马车GFS、MapReduce、BigTable分别对应的开源实现Hadoop HDFS、Hadoop MapReduce、Apache HBase
Apache Hadoop框架包括如下组件:
- Hadoop Common:支持其他 Hadoop 模块的常用实用程序和库。也称为 Hadoop Core。
- Hadoop HDFS:分布式文件系统,用于在商用硬件上存储应用程序数据。HDFS 旨在为Hadoop提供容错能力并提供高聚合数据带宽和高吞吐量数据访问。默认情况下,数据块在加载或写入时跨多个节点复制。复制程度可配置:默认复制为三个。HDFS 架构采用 NameNode来管理文件系统命名空间和文件访问权限,采用多个DataNode来管理数据存储。通过支持高可用性,当活动节点发生故障时,可以使用从节点。
- Hadoop YARN:开源 Apache Hadoop YARN 是一个用于作业调度和集群资源管理的框架。YARN 代表"Yet Another Resource Negotiator"(又一个资源谈判专家)。它支持更多工作负载,例如交互式 SQL、高级建模和实时流。
- Hadoop MapReduce:一种基于YARN的分布式计算框架,支持并行处理大量数据;MapReduce提供了多种优化技术来加快作业速度。
- Hadoop Ozone:专为大数据应用程序设计的可扩展、冗余和分布式对象库。
Apache Hadoop生态
经过十余年的发展,Hadoop得到了显著的发展形成了一个功能完善且稳定的生态,早已经不仅仅是最初的HDFS、MapReduce、YARN三大组件了。在这个生态中目前MapReduce作为计算框架已经比较少有人使用,YARN面临着Kubernetes一定程度的竞争、HDFS依然是主流的分布式数据存储技术。在传统的Hadoop的基础上后续出现了Hive、HBase、Spark等更简单易用且功能强大的新技术,而且类似的技术依然在蓬勃的发展。
如下是不完全的Hadoop生态地图:
这些组件在整个定位上大致分为5类:
采 :从各个数据源那里采集一条条源数据,并往分析系统的传输通道中发送。比如移动用户的点击事件、用户的使用日志等 传 :接收采集过来的源数据,一般以流式传输的方式将这些源数据传入数据分析系统,典型的技术为:Kakfa、Flume、Pulsar等 存 :将传入的海量数据进行可靠的分布式存储,典型的技术为:HDFS、AWS S3等 管 :协调、调度整个分布式数据分析群,负责让集群中的机器高效的进行并行计算,典型的技术为YARN、Kubernates等 算 :将传入的数据流或者保存的数据进行计算分析,典型的技术为:MapReduce、Flink、Spark、Hive等 用:将计算分析后的数据进行展示和输出,典型的技术为一些BI看板或者直接输出数据到数据库等