Я немного озадачен.Spark rdd.count() дает непоследовательные результаты
Простой rdd.count() дает разные результаты при запуске несколько раз.
Вот код я бегу:
val inputRdd = sc.newAPIHadoopRDD(inputConfig,
classOf[com.mongodb.hadoop.MongoInputFormat],
classOf[Long],
classOf[org.bson.BSONObject])
println(inputRdd.count())
Это открывает соединение с сервером MondoDb и просто подсчитывает объекты. Кажется довольно прямо вперед, мне
По MongoDb есть 3,349,495 записей
Вот моя искра выходной, все побежали ту же банку:
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
Спарк и MongoDb выполняющиеся на том же кластере ,
Мы бежим:
Spark version 1.5.0-cdh5.6.1
Scala version 2.10.4
MongoDb version 2.6.12
К сожалению, мы не можем обновить эти
искра недетерминирована?
Есть ли кто-нибудь, кто может просветить меня?
Заранее спасибо
EDIT/Другой информации
Я просто заметил ошибку в нашем mongod.log. Может ли эта ошибка вызывать непоследовательное поведение?
[rsBackgroundSync] replSet not trying to sync from hadoop04:27017, it is vetoed for 333 more seconds
[rsBackgroundSync] replSet syncing to: hadoop05:27017
[rsBackgroundSync] replSet not trying to sync from hadoop05:27017, it is vetoed for 600 more seconds
[rsBackgroundSync] replSet not trying to sync from hadoop04:27017, it is vetoed for 333 more seconds
[rsBackgroundSync] replSet not trying to sync from hadoop05:27017, it is vetoed for 600 more seconds
[rsBackgroundSync] replSet not trying to sync from hadoop04:27017, it is vetoed for 333 more seconds
[rsBackgroundSync] replSet error RS102 too stale to catch up, at least from hadoop05:27017
[rsBackgroundSync] replSet our last optime : Jul 2 10:19:44 57777920:111
[rsBackgroundSync] replSet oldest at hadoop05:27017 : Jul 5 15:17:58 577bb386:59
[rsBackgroundSync] replSet See http://dochub.mongodb.org/core/resyncingaverystalereplicasetmember
[rsBackgroundSync] replSet error RS102 too stale to catch up
Вы проверяли количество записей в MongoDB несколько раз (параллельно работает искровой 'счетчик () ')? – Yaron
Число записей в MongoDb не было изменено во время работы. И спасибо за реформацию :) – PeterLudolf
a) Какова ваша топология развертывания MongoDB? (набор реплик или осколок кластера?) Возможно, искровые рабочие возвращают разные ответы на основе членов MongoDB, то есть некоторые из членов еще не реплицировали данные. b) MongoDB v2.6 достиг своего конца октября 2016 года, пожалуйста, обновите, когда это возможно. –