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

时间:2013-06-04 11:02:55

标签: mongodb hadoop

我正在尝试使用Hadoop在我的数据中应用Map Reduce,当我为正确的mongo.input.uri配置本地mongo集合时,示例in this link正常工作。

但是当我配置如下所示的远程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

最奇怪的部分是,如果我配置本地mongo db集合,示例工作正常 输出表和远程mongo db集合用于输出表,使用相同的语法格式。

对此有何建议?

1 个答案:

答案 0 :(得分:2)

分割非分片集合需要使用splitVector命令,它需要管理员凭据。

有一些解决方案:

  • 如果集合很小并且您可以在没有多个拆分的并行性的情况下进行处理,则可以通过将mongo.input.split.create_input_splits设置为false来关闭输入拆分并在一次拆分中立即处理整个集合。
  • 如果可以对集合进行分片,则分片上的块范围将用作分割边界。然后不再需要splitVector命令,所需的所有内容都是对块集合的读取权限。