Jestem trochę zaskoczony.Spark rdd.count() daje niespójne wyniki
Prosty rdd.count() daje różne wyniki po uruchomieniu wiele razy.
Oto kod biegnę:
val inputRdd = sc.newAPIHadoopRDD(inputConfig,
classOf[com.mongodb.hadoop.MongoInputFormat],
classOf[Long],
classOf[org.bson.BSONObject])
println(inputRdd.count())
To otwiera połączenie z serwerem MondoDb i po prostu zlicza obiekty. wydaje się dość proste do mnie
Według MongoDB istnieją 3,349,495 wpisy
Oto moje wyjście iskra, wszystko prowadził sam słoik:
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
Spark i MongoDB są prowadzone w tym samym klastrze .
Biegniemy:
Spark version 1.5.0-cdh5.6.1
Scala version 2.10.4
MongoDb version 2.6.12
Niestety nie możemy zaktualizować te
Czy Spark zakaz deterministyczny?
Czy jest ktoś, kto może mnie oświecić?
góry dzięki
EDIT/Dalsze informacje
Właśnie zauważyłem błąd w naszym mongod.log. Czy ten błąd może spowodować niespójne zachowanie?
[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
Czy sprawdzić liczbę wpisów w MongoDB kilka razy (równolegle z prowadzeniem zapłonową 'count () ')? – Yaron
Liczba pozycji w MongoDb nie została zmieniona podczas działania. Dziękuję za zreformowanie :) – PeterLudolf
a) Jaka jest topologia wdrożenia MongoDB? (zestaw replik lub klastra sharded?) Być może robot iskrowy zwraca inną odpowiedź na podstawie członków MongoDB, tzn. niektórzy członkowie nie replikowali jeszcze danych. b) MongoDB v2.6 osiągnął koniec swojego życia w październiku 2016 r., w miarę możliwości uaktualnij go. –