Hadoop和MongoDB的区别

Hadoop旨在存储和分析多个计算机集群中的大量数据。它是一组构建数据处理框架的软件程序。这个基于Java的框架可以快速,廉价地处理大量数据。

Hadoop的核心元素包括HDFS,MapReduce和Hadoop生态系统。Hadoop生态系统由许多模块组成,这些模块有助于系统编码,集群管理,数据存储和分析操作。Hadoop MapReduce有助于分析大量有组织和非结构化的数据。Hadoop的并行处理使用MapReduce,而Hadoop是Apache软件基金会的商标。

数百万人使用MongoDB,一个开源的NoSQL文档数据库。这些用户包括初创公司和跨国公司。MongoDB功能被行业领先的公司和消费技术初创公司使用。

MongoDB是一个面向文档的C++数据库。它解决了基于 SQL 架构的数据库的性能、可用性和可伸缩性问题。这是一个像网络一样工作的数据库。与其他NoSQL数据库一样,MongoDB不使用表,行或列。它将其数据存储在BSON文档中,这些文档将相关信息捆绑在一个标题下。

阅读本文以了解有关Hadoop和MongoDB的更多信息,以及它们之间的区别。

什么是Hadoop?

Apache Hadoop是一个开源的Java平台。它管理数据密集型应用程序的处理和存储需求。Hadoop平台必须首先在计算机集群的节点之间分配大数据和分析作业。然后将这些任务分成可以同时完成的合理工作负载。

Hadoop可以处理结构化和非结构化数据,并在不牺牲可靠性的情况下从一台服务器扩展到数千台服务器。基于Hadoop的程序运行在具有大量数据收集的商品机器集群上。这些机器以更低的成本提供更多的处理能力。Hadoop使用称为Hadoop分布式文件系统(HDFS)的分布式文件系统来存储其数据。这就像将数据保存在PC的本地文件系统上一样。

在其基础,Hadoop由两个主要层组成,它们是 -

  • 处理和计算图层,也称为地图缩减图层。

  • 存储层也称为Hadoop分布式文件系统。

地图缩减图层

Google开发了用于创建分布式应用程序的MapReduce。它旨在对商用硬件的巨大集群(数千个节点)上的多 TB 数据集进行可靠和容错处理。Hadoop是一个Apache管理的开源平台,其中实现了MapReduce。这就像将数据保存在PC的本地文件系统上一样。

Hadoop 分布式文件系统

Hadoop分布式文件系统(HDFS)基于谷歌文件系统(GFS),它在商用硬件上运行。它就像其他分布式文件系统一样。但是,该系统与其他系统有很大不同。它具有容错能力,可在低成本硬件上运行。它为访问应用程序数据提供了高吞吐量,适用于大型数据集。

除了两个主要组件之外,Hadoop框架还包括以下两个模块。

  • 另一个资源协商器 (YARN) - 它管理群集的节点和资源。它安排工作。

  • Hadoop Common - 提供适用于所有模块的标准Java库,并且可以被任何模块使用。

什么是MongoDB?

MongoDB是一个面向文档的开源数据库,可以有效地存储和操作数据。任何人都可以使用它。MongoDB是一个NoSQL数据库,因为它的数据不是在表中结构化的。

MongoDB Inc.于2009年2月首次公开该数据库。服务器端公共许可证管理其使用。它提供对 C、C++ 和 C# 的官方驱动程序支持。支持的编程语言包括Net,Go,Java,Node.js,Perl,PHP,Python,Motor,Ruby,Scala,Swift和Mongoid。使用这些语言设计应用。Facebook,诺基亚,eBay,Adobe,Google和其他公司使用MongoDB存储大量数据。

MongoDB的组件

  • _id:_ MongoDB 文档必须有一个 id 字段。MongoDB的_id字段存储一个唯一的值。_id就像文档的主键。MongoDB将构造一个_id字段,如果你创建一个没有一个新文档。

  • 集合:这是MongoDB中的一组文档。在任何其他RDMS(如Oracle或MS SQL)中,表与集合相同。一个数据库可以有多个集合。

  • 游标:指向查询结果集的指针。客户端可以来回移动光标以获得结果。

  • 数据库:这是集合的容器,就像RDMS是表的容器一样。在文件系统上,每个数据库都有自己的一组文件。MongoDB服务器上可以有多个数据库。

  • 文档:文档基本上是MongoDB集合中的记录。反过来,文档将由字段名称和值组成。

  • 字段:文档中的名称/值对。文档中可能有零个或多个字段。在关系数据库中,字段就像一列。

Hadoop和MongoDB的区别

下表突出显示了Hadoop和MongoDB之间的主要区别 -

比较基础Hadoop蒙戈数据库
数据存储 它适用于结构化和非结构化数据。由于Hadoop的分布式文件系统,向集群添加更多节点会增加存储空间。 在MongoDB中,使用CSV或JSON格式。MongoDB使用一种称为分片的技术,通过将数据分布在不同的节点上来使其水平扩展。
目的 它的主要功能将被视为数据库。 它是专门为评估和处理大量数据而开发的。
使用的语言 Hadoop是用java编写的。 MongoDB是用C++编写的。
数据处理 Hadoop使用MapReduce来处理庞大的数据集。一次处理一条数据时,此算法运行良好。当需要连接变量时,MapReduce可能会减慢速度。 您可以使用MongoDB的聚合管道框架处理和更新数据。Atlas Search 的聚合管道和全文搜索有助于限制搜索。
内存管理 另一方面,Hadoop主要关注光盘存储。它在优化磁盘空间的使用方面更有效,但由于需要从驱动器读取,查询结果的传递将延迟。 MongoDB充分利用其内存,以便可以快速发送数据。它将索引和一些数据保存在内存中,以便可以预测延迟。
RDBMS 支持 它不是为了替代关系数据库管理系统(RDBMS),而是在数据归档方面为RDBMS提供额外的支持,同时也为其提供了各种各样的用例。 它的开发目的是取代或增强RDBMS,并为其提供广泛的潜在应用。

结论

与传统数据库相比,Hadoop和MongoDB具有许多优势,使其成为管理大量数据的绝佳选择。

MongoDB可以执行传统上与数据库相关的所有功能。由于其结构的灵活性,MongoDB使得存储数据变得简单,在可以使用数据之前不需要大量的先前转换。由于其查询语言,它可以快速有效地获取数据,甚至可以即时处理数据。

本文来自:https://www.10zhan.com

posted @ 2022-12-28 01:26  很酷的站长  阅读(127)  评论(0编辑  收藏  举报
70博客 AI工具 源码下载