Hadoop过时了吗?我是否应该投资时间来学习Hadoop生态系统?

854 阅读6分钟

Hadoop死了吗 - 特别是在IT领域,技术和软件架构的保质期并不长。随着新的技术见解的获得,对系统的要求和用例也在变化。就像 "大数据 "这个词一样年轻,它也在不断变化。商业界对开源项目的接受度越来越高,这导致了多样化的增加,从而导致了许多互利的竞争局面。
十多年来,Apache Hadoop一直被认为是一个万能的解决方案。一个大数据生态系统,其中Hadoop与许多其他扩展一起发挥作用。然而,近年来,越来越多的人声称,对数据处理的要求已经改变,并认为Hadoop是一个过时的概念。

几年前,主要目标是有效地处理不断增加的数据量,但今天需要对动态数据集进行反复的实时分析。数据管理系统必须不是自成一体的,而是必须在任何时候都保持可操作性和可监控性。
那么,Hadoop是死了,还是仍然不可缺少?

什么是Hadoop?

Hadoop是一个基于Linux的开源大数据框架,用于可扩展的分布式软件。它最初是基于谷歌的MapReduce算法,通过在计算机集群(即大量联网的计算机,使用多个组件共同工作)上进行并行化,实现了大型数据集的计算密集型处理。

Is Hadoop dead? This diagram shows the Hadoop ecosystem

Hadoop死了吗?Hadoop 生态系统

Hadoop生态系统由Hadoop Common组成,它是所有其他组件的接口。它将Hadoop连接到计算机的文件系统,并包含库。在Hadoop分布式文件系统
(HDFS)
中,
存储了非常大量的数据。这被组织成一个带有主节点和从节点的服务器集群。资源是通过YARN(Yet Another Resource Negotiator)组件控制的。这个资源管理器将各个任务分配到可用的资源,如CPU和内存。

什么是MapReduce算法?

谷歌的MapReduce编程模型,即使它目前被基于Directred-Acyclic-Graph(DAG)的引擎所取代,仍然是Hadoop框架的核心组成部分。因此,如果我们想了解Hadoop是如何工作的,我们首先需要了解MapReduce是什么。

Is Hadoop dead? This diagram shows the principle behind Google's MapReduce algorithm

Hadoop死了吗?Googles Map Reduce算法原理

通过Hadoop MapReduce框架为Map、Reduce和组合阶段提供可配置的类。Map意味着一组数据被转化为另一组数据,其中数据的各个元素被组合成图元(键/值对)。在减少阶段,形成的图元再被组合成更小的图元集。

Hadoop集群如何工作

如前所述,Hadoop将大量数据的存储和处理以一种平衡的方式分布在计算集群或相互连接的硬件上。
这些计算机连接到一个专门的服务器上,作为主部件 。主节点组织文件的存储和各个从属节点中的元数据。在一个集群内,数据被存储在多台称为节点的计算机上。文件被划分为数据块,并在各节点之间冗余分布。

Is Hadoop dead? This diagram shows the components of a Hadoop cluster

Hadoop死了吗?Hadoop集群的组成部分

NameNode和资源管理器在主节点上运行。这些收集Hadoop分布式文件系统(HDFS)中的数据,并通过应用MapReduce进行并行计算来存储数据。

客户端节点负责将数据加载到集群的Architecture中
。从属节点是一个负责收集数据的客户端
节点。

集群内的通信是如何进行的?

内部通信,也就是作业执行的过程,是通过所谓的 工作跟踪器任务跟踪器.
客户端向主站的JobTracker提交一个MapReduce作业,以处理一个特定的文件。然后JobTracker通过查询NameNode来确定存储该文件块的DataNodesNameNode管理HDFS文件系统的元数据,因此它跟踪所有被分成块的文件。数据节点存储和检索这些块。然后,根据从NameNode收到的信息,将任务分配给不同的TaskTrackers。在这个过程中,每个任务NameNodeDataNode的状态都被监控。
一个辅助的NameNodeNameNode定期进行通信,以获取HDFS元数据的快照。换句话说,是一个备份。这些信息可以在NameNode发生故障的情况下使用。

Is Hadoop dead? This scheme the internal communication of the components of a Hadoop cluster

Hadoop死了吗?Hadoop集群的组件的内部通信

原则上,单节点集群和多节点集群都可以用Hadoop实现。在单节点的情况下,集群只在一台机器上实现。然后,所有进程都在一个Java虚拟机实例上运行。
在多节点的情况下,已经讨论过的主从架构将在几台计算机上实现。

Hadoop过时了吗?

那么,Hadoop过时了吗?Apache Hadoop显然已经失去了其作为唯一大数据解决方案的地位。许多技术已经被加入,可以比大的解决方案Hadoop更好地解决较小的任务。今天,这种小规模的性质使得大数据管理解决方案可以根据具体的使用情况进行优化。然而,Hadoop Hadoop也没有死。该系统仍有其优势,在可预见的未来将继续成为特殊用例的首选。

Hadoop是如何发展的呢?

随着Hadoop Ozone项目的开展,现在已经开发出了Hadoop分布式文件系统(HDFS)的替代品。

它仍将被部署在一个集群上,但对应于大数据应用的对象存储。这比标准文件系统的可扩展性要高得多,目的是优化小文件的处理,这是以前Hadoop的一个弱点。对象存储通常被用作云中的一种数据存储方法。通过Ozone,它们现在可以被本地管理。
这个对象存储可以被既定的大数据解决方案(如Hive或Spark)访问,而无需修改。如果你想了解更多关于hadoop兼容框架的信息,请阅读我们关于HiveSpark的文章。

Ozone建立在一个名为Hadoop分布式数据存储 (HDDS)的块存储层上,并被设计为可扩展至数十亿个对象。这些块在内部使用唯一的命名空间组织在许多独立的卷中。
然而,这些本地对象存储的一个缺点是,它们还没有在核心中实现,但必须通过Kubernetes和YARN等容器化环境与传统文件系统分开。所以总是有两个真相。