我对大数据还不熟悉。我正在尝试将mongodb集合摄取到hdfs中,并且可以选择使用mongodbjavaapi+hdfsjavaapi和spark mongodb连接器。
两种方法有何不同?我检查了spark mongodb连接器源代码,它也使用mongodb java api写入mongodb,但使用sparksession从mongodb读取。
由于mongodb和hdfs集群在我们的例子中是不同的,所以边缘节点是否充当mongodb和hdfs集群之间的暂存区域?如果是这样,如果mongodb集合太大,边缘节点会成为瓶颈吗?为了概括这个问题,当将外部数据源(rdbms、nosql等)摄取到hdfs中时,边缘节点总是临时区域吗?
第二季度跟进。有没有一种方法可以跳过边缘节点直接将hdfs数据节点连接到mongodb服务器?例如,从mongodb切分分区到hdfs分区。
感谢你的回答!
1条答案
按热度按时间2jcobegt1#
所以,高层次的答案
mongodb java api+hdfs java api,vs spark mongodb连接器
您需要了解的是,spark并不仅仅在边缘节点上暂存数据。它并行运行。假设mongo集合允许并行上传数据。
与直接的javaapi相比(甚至是一个集合转储),加上上传,那么是的,边缘节点或其他任何地方都是一个瓶颈(和单点故障)
一个可以说是更好的体系结构包括使用debezium将mongo事件作为单独的记录流式输出到kafka主题中,然后您可以在事件进入kafka时实时处理它们,有选择地清除它们,然后将它们发送到hadoop、图形数据库、搜索引擎等(这里不需要spark)