我和一个同事讨论了使用mongodb连接器进行hadoop的问题,他解释说这是非常低效的。他说mongodb连接器使用自己的map reduce,然后使用hadoop map reduce,这会在内部降低整个系统的速度。
如果是这样,那么将数据传输到hadoop集群的最有效方法是什么?如果mongodb连接器效率更低,它有什么用途?在我的场景中,我想从mongodb获取每日插入的数据(大约10mb),并将其全部放入hadoop中。我还要补充一点,每个mongodb节点和hadoop节点都共享同一个服务器。
2条答案
按热度按时间ioekq8ef1#
要将您的数据从mongodb传输到hadoop,您可以使用一些etl工具,比如talend或pentaho,这非常简单和实用!祝你好运!
flvlnr442#
用于hadoop的mongodb连接器直接从mongodb读取数据。可以将多个输入拆分配置为并行地从同一集合中读取数据。mapper和reducer作业由hadoop的map/reduce引擎运行,而不是mongodb的map/reduce。
如果您的数据估计是正确的(每天只有10mb?),那么这是一个很小的摄取量,如果您没有计算任何输入分割,那么作业可能会更快。
您应该警惕hadoop和mongodb在同一台服务器上争夺资源,因为争夺内存或磁盘会影响数据传输的效率。