hadoop错误-无法计算输入拆分:需要登录

ddrv8njm  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(287)

我正在试用hadoop在我的数据中应用map reduce,当我正确配置本地mongo集合时,这个链接中的示例可以正常工作 mongo.input.uri .
但是当我配置一个远程mongo集合时,如下所示,

<property>
    <name>mongo.input.uri</name>
    <value>mongodb://username:password@remote_mongodb_ip:27017/input_collection</value>
  </property>

我得到下面的错误

java.lang.IllegalArgumentException: Unable to calculate input splits: need to login

最奇怪的是,如果我使用上述相同的语法格式为input table配置local mongo db collection,为output table配置remote mongo db collection,那么这个示例就可以正常工作。
有什么建议吗?

gblwokeq

gblwokeq1#

拆分非分片集合需要splitvector命令,并且需要管理员凭据。
有几种解决方案:
如果集合很小,并且您可以在没有多个拆分的并行性的情况下进行处理,则可以通过将mongo.input.split.create\u input\u splits设置为false,关闭输入拆分并在单个拆分中一次性处理整个集合。
如果可以分割集合,则碎片上的块范围将用作分割边界。这样就不再需要splitvector命令,只需要对chunks集合有读取权限。

相关问题