小编Pet*_*olf的帖子

Spark rdd.count()会产生不一致的结果

我有点困惑.

一个简单的rdd.count()在多次运行时给出不同的结果.

这是我运行的代码:

val inputRdd = sc.newAPIHadoopRDD(inputConfig,
classOf[com.mongodb.hadoop.MongoInputFormat],
classOf[Long],
classOf[org.bson.BSONObject])

println(inputRdd.count())
Run Code Online (Sandbox Code Playgroud)

它打开与MondoDb服务器的连接,并简单地计算对象.似乎很直接给我

根据MongoDb,有3,349,495个条目

这是我的火花输出,都运行相同的jar:

spark1 :    3.257.048  
spark2 :    3.303.272  
spark3 :    3.303.272  
spark4 :    3.303.272  
spark5 :    3.303.271   
spark6 :    3.303.271  
spark7 :    3.303.272  
spark8 :    3.303.272  
spark9 :    3.306.300  
spark10:    3.303.272  
spark11:    3.303.271  
Run Code Online (Sandbox Code Playgroud)

Spark和MongoDb在同一个集群上运行.
我们正在运行:

Spark version 1.5.0-cdh5.6.1  
Scala version 2.10.4  
MongoDb version 2.6.12  
Run Code Online (Sandbox Code Playgroud)

不幸的是我们无法更新这些

Spark不确定吗?
有没有人可以开导我?

提前致谢

编辑/更多信息
我刚刚注意到我们的mongod.log中有错误.这个错误会导致不一致的行为吗?

[rsBackgroundSync] replSet not trying to sync from hadoop04:27017, it is vetoed for 333 more seconds
[rsBackgroundSync] replSet syncing …
Run Code Online (Sandbox Code Playgroud)

hadoop scala cluster-computing mongodb apache-spark

9
推荐指数
1
解决办法
467
查看次数

标签 统计

apache-spark ×1

cluster-computing ×1

hadoop ×1

mongodb ×1

scala ×1