爱死你了 发表于 2017-12-16 13:10:36

Spark With Mongodb 实现方法及error code

  可以看到是19:37出现的错误,这个task启动时间为:
  17/07/17 19:14:23 INFO CoarseGrainedExecutorBackend: Got assigned task 433
  17/07/17 19:14:23 INFO Executor: Running task 433.0 in stage 0.0 (TID 433)
  可以确定的是,确实超过10分钟了,申请完cursor之后并没有开始执行,而是等到10分钟之后才开始进行操作,目前未发现原因。
  查看日志发现中间有一些文件访问被拒绝的错误,:ulimit -a 看只有1024,
  于是修改/etc/security/limits.conf:
  *       soft    nofile40960
  *       hard    nofile40960
  修改之后不设置connectionsPerHost也不会出现访问被拒绝的错误或者error code 6,但仍旧会出现error code -5
  在最新一次运行中,第452、1940、2005等分片出现错误,而且分片处于不同的executor上,也就是说此错误和计算节点无关。
  在stackoverflow上发现java driver的解决方案,java里可以使用 db.find().nocursorTimeout()来解决,但需要记得关闭cursor,不然mongos会一直占用额外内存。
  去github上查看mongo-spark-connector的源代码发现:
  MongoRDD的compute方法:
页: [1]
查看完整版本: Spark With Mongodb 实现方法及error code