将外部数据导入hdfs:边缘节点是瓶颈吗?

时间:2019-04-23 20:07:52

标签: mongodb apache-spark hadoop hdfs bigdata

我是大数据新手。我正在尝试将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分区。

感谢您的回答!

1 个答案:

答案 0 :(得分:1)

所以,高级答案

  

mongoDB Java API + HDFS Java API与Spark MongoDB连接器

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

与直接使用Java API(或什至是收集转储)相比,再加上上载,那么是的,边缘节点或其他任何地方都是瓶颈(和单点故障)

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