本文的目的是讨论Hadoop 3.0的优缺点。随着Hadoop 3.0中引入了许多更改,它已成为更好的产品。
Hadoop 3的主要优缺点
Hadoop旨在存储和管理大量数据。Hadoop有许多优点,例如,它是免费和开源的,易于使用的,其性能等。但是,另一方面,它也有一些缺点。因此,让我们开始探索Hadoop的主要优点和缺点。
Hadoop易于使用,可扩展且具有成本效益。在这里,我们将讨论Hadoop的12大优势
Hadoop的优势
Hadoop存储各种数据。数据可以来自各种来源,并且可以是结构化或非结构化的形式。Hadoop可以从各种数据中获取价值。Hadoop可以接受文本文件,XML文件,图像,CSV文件等中的数据。
Hadoop是一种经济的解决方案,因为它使用集群来存储数据。而硬件是便宜的机器,因此将节点添加到框架的成本不是很高。在Hadoop 3.0中,只有50%的存储开销,而在Hadoop2.x中只有200%。由于冗余数据显着减少,因此需要较少的机器来存储数据。
Hadoop及其分布式处理和分布式存储体系结构可高速处理大量数据。Hadoop甚至在2008年击败超级计算机成为最快的计算机。它将输入数据文件划分为多个块,并将数据存储在多个节点上的block块中。它还将用户提交的任务分为多个子任务,这些子任务分配给包含所需数据的这些工作节点,并且这些子任务并行运行,从而提高了性能。
在Hadoop 3.0中,擦除编码提供了容错能力。例如,6个数据块通过使用擦除编码技术产生3个奇偶校验块,因此HDFS总共存储了这9个块。如果任何节点发生故障,可以使用这些奇偶校验块和其余数据块来恢复受影响的数据块。
在Hadoop 2.x中,HDFS架构具有一个活动的NameNode和一个Standby NameNode,因此,如果NameNode发生故障,则我们可以依靠备用NameNode。但是Hadoop 3.0支持多个备用NameNode,从而使系统具有更高的可用性,因此如果两个或多个NameNode崩溃,它可以继续运行。
在Hadoop中,用户提交的每个作业都被分为多个独立的子任务,并且这些子任务被分配给数据节点,从而将少量代码移动到数据中,而不是将大量数据移动到代码中,从而导致低网络流量。
吞吐量是指单位时间内完成的工作。Hadoop以分布式方式存储数据,从而可以轻松地使用分布式处理。给定的作业分为多个小作业,这些作业并行处理数据块,从而提供高吞吐量。
Hadoop是一种开源技术,即其源代码可免费获得。我们可以修改源代码以适合特定要求。
Hadoop按照水平可伸缩性原理工作,即我们需要将整个计算机添加到节点群集中,而不要像添加RAM,磁盘等那样更改计算机的配置,这被称为垂直可伸缩性。可以将节点动态添加到Hadoop集群,使其成为可扩展的框架。
Hadoop框架提供分布式编程模型,MapReduce的程序员只需按固定的模板编写分布式计算程序,而不需要关心他们如何实现分布式处理,它是在后台自动完成。
大数据的大多数新兴技术都与Hadoop兼容,例如Spark,Flink等。它们具有在Hadoop上作为后端工作的处理引擎,即我们将Hadoop用作它们的数据存储平台。
开发人员可以在Hadoop上使用多种语言(例如C,C ++,Perl,Python,Ruby和Groovy)进行编码。
Hadoop的缺点
Hadoop适用于处理相对较大的文件,但是涉及到处理大量小文件的时(小文件比Hadoop的块大小小得多的文件,默认情况下,该块大小可以为128MB或256MB),Hadoop效率不高。这些大量的小文件使Namenode过载,因为Namenode存储了系统的名称空间,并使Hadoop难以运行。
Hadoop用JAVA编写,Java是一种广泛使用的编程语言,因此它容易被网络犯罪分子利用,这使得Hadoop容易受到安全漏洞的攻击。
在Hadoop中,数据是从磁盘读取并写入磁盘的,这在我们处理兆兆字节和PB级数据时使读/写操作非常昂贵。Hadoop无法执行内存中计算,因此会增加处理开销。
Hadoop的核心是一个批处理引擎,该引擎在流处理方面效率不高。它不能以低延迟实时生成输出。它仅适用于我们在处理之前预先收集并存储在文件中的数据。
Hadoop本身无法进行迭代处理。机器学习 或迭代处理具有周期性的数据流,而Hadoop的数据是在多个阶段链中流动的,其中一个阶段的输出成为另一阶段的输入。
为了安全起见,Hadoop使用难以管理的Kerberos身份验证。它缺少存储和网络级别的加密,这是一个主要问题。
业界使用的每种软件都有其自身的缺点和好处。如果该软件对业务至关重要,则可以利用其优势并采取措施以最大程度地减少故障。我们可以看到Hadoop的优点大于缺点,这使其成为满足大数据需求的强大解决方案。