首页 > 解决方案 > 将外部数据导入hdfs:边缘节点是瓶颈吗?

问题描述

我是大数据的新手。我正在尝试将 MongoDB 集合摄取到 hdfs 中,并且可以选择使用 mongoDB java API + HDFS java API 和 Spark MongoDB 连接器。

  1. 两种方法有何不同?我检查了 Spark MongoDB 连接器源代码,它还使用 mongoDB java API 写入 mongoDB,但使用 sparkSession 从 mongoDB 读取。

  2. 由于在我们的案例中 MongoDB 和 HDFS 集群不同,边缘节点是否充当 MongoDB 和 HDFS 集群之间的暂存区?如果是这样,如果 mongoDB 集合太大,边缘节点会成为瓶颈吗?概括这个问题,当将外部数据源(RDBM、NoSQL 等)引入 HDFS 时,边缘节点是否总是暂存区?

  3. 第二季度的后续行动。有没有办法将 HDFS 数据节点直接连接到 mongoDB 服务器,跳过边缘节点?例如,从 mongoDB 分片分区到 HDFS 分区。

感谢您的回答!

标签: mongodbapache-sparkhadoophdfsbigdata

解决方案


所以,高级别的答案

mongoDB java API + HDFS java API,vs Spark MongoDB 连接器

您需要了解的是,Spark 不仅仅在边缘节点上暂存数据。它并行运行。并行上传数据,假设 Mongo 集合允许这样做。

与您自己的直接 Java API(甚至是集合转储)相比,加上上传,是的,边缘节点或其他任何地方都是瓶颈(和单点故障)

可以说更好的架构涉及使用 Debezium 将 Mongo 事件作为单独的记录流式传输到 Kafka 主题中,然后您可以在事件进入 Kafka 时实时处理它们,可选择清理它们,然后将它们发送到 Hadoop,一个图形数据库、搜索引擎等(这里不需要 Spark)


推荐阅读