SparkSession spark = SparkSession.builder()
.config("spark.mongodb.input.uri", URI)
.config("spark.mongodb.output.uri", URI)
.getOrCreate();
经查,在URI里面直接写域名是不对的,把要用到的集群入口的全部机器的Host都写上就没有问题了。
通过域名来分配机器,假如在A机器里面执行了一个Query操作,后续取数据的时候又给它分配个B机器,B机器都没有执行这个操作,肯定就取不到数据了。
String URI = "mongodb://mongosDomainName:27017/test.myCollection";
把机器都放在那里,让Spark自己管理。
String URI = "mongodb://192.168.0.1,192.168.0.2,192.168.0.3:27017/test.myCollection";
网友评论