mongodb - hadoop 与 mongodb 和 hadoop 与 mongodb
问题描述
我试图了解 mongoDB 和 Hadoop 之间的主要区别。我知道 mongoDB 是一个数据库,而 Hadoop 是一个包含 HDFS 的生态系统。使用这两种技术处理数据的方式有一些相似之处,但也存在重大差异。
我很困惑为什么有人会在 Hadoop 集群上使用 mongoDB,主要是 mongoDB 比 Hadoop 提供了什么优势。两者都执行并行处理,都可以与 Spark 一起使用以进行进一步的数据分析,那么两者相比有什么附加值。
现在,如果要将两者结合起来,为什么要将数据存储在 mongoDB 和 HDFS 中?MongoDB 有 map/reduce,那么为什么要将数据发送到 hadoop 进行处理,而且两者都与 Spark 兼容。
解决方案
首先让我们看看我们在说什么
- Hadoop - 一个生态系统。两个主要组件是 HDFS 和 MapReduce。
- MongoDB - 文档类型 NoSQL 数据库。
让我们在两种类型的工作负载上比较它们
高延迟高吞吐量(批处理) - 处理如何处理和分析大量数据的问题。处理将以并行和分布式方式进行,以便以最有效的方式最终确定和检索结果。Hadoop 是处理此类问题的最佳方式,它以分布式和并行方式跨多个服务器管理和处理数据。
低延迟和低吞吐量(立即访问数据、实时结果、大量用户) - 在处理需要以尽可能快的方式显示立即结果或进行小型并行处理导致 NRT 结果向多个并发用户时NoSQL 数据库将是最好的选择。
堆栈中的一个简单示例是使用 Hadoop 来处理和分析大量数据,然后将最终结果存储在 MongoDB 中,以便您:
- 以最快的方式访问它们
- 现在重新处理它们,因为它们的规模较小
底线是您不应该将 Hadoop 和 MongoDB 视为竞争对手,因为每个人都有自己的最佳用例和数据处理方法,它们在您处理数据的工作中相互补充和完善。
希望这是有道理的。
推荐阅读
- zurb-foundation - 更新已有插件的元素
- reactjs - 样式化组件,定义为 defaultProps 的所需道具显示为缺失
- android - 如何在android中获取kml文件几何数据点击事件?
- lisp - 使用 Lisp:定义一个函数,该函数接受一个列表和一个数字,如果该数字出现在列表中,则返回 true
- javascript - 在 Vue3 (CLI) 上使用 indexedDB 的最佳方式是什么?
- ios - 取消选择表格视图时从数组中删除对象
- java - 使用 RentrantLock 实现生产者消费者时出现 IllegalMonitorStateException
- python - 仅对数据框 Pandas 中各列的负数求和
- http - 基准 CPU 使用率:同步与异步 HTTP 客户端
- sql - 在 bigquery 中的单个查询中获取最高计数