Аз стартирам искровия код в локалната си машина и клъстер.
Създавам SparkContext обект за локална машина със следния код:
val sc = new SparkContext("local[*]", "Trial")
Създавам обект SparkContext за клъстер със следния код:
val spark = SparkSession.builder.appName(args(0)+" "+args(1)).getOrCreate()
val sc = spark.sparkContext
и зададох броя на дяла като 4 за локална машина и клъстер със следния код
val dataset = sc.textFile("Dataset.txt", 4)
В моя клъстер създадох 5 работници. Единият от тях е възел за драйвери, останалите работят като работници.
Очаквам резултатите да бъдат същите. Въпреки това резултатите от две части, които са локални и клъстерни, са различни. Какви са причините за проблема?
Отговори:
0 за отговор № 1Създавам SparkContext обект за локална машина със следния код
и
Създавам обект SparkContext за клъстер със следния код:
То появява се може да сте дефинирали две различни среди за sc
и spark
както дефинирате local[*]
изрично за sc
докато приемате стойност по подразбиране за spark
(които могат да четат външни конфигурационни файлове или да вземат т.нар. главен URL адрес от spark-submit
).
тези може да бъде различно може засягате това, което използвате.
Очаквам резултатите да бъдат същите. Въпреки това резултатите от две части, които са локални и клъстерни, са различни. Какви са причините за проблема?
Dataset.txt
процес в местни срещу клъстер среди саразлична и следователно разликата в резултатите. Силно препоръчвам да използвате HDFS или друга споделена файлова система, за да избегнете такива "изненади" в бъдеще.