Ich habe eine sehr einfache Funken Job, der Millionen Film Bewertungen liest und die Bewertungen und die Anzahl der Male, die es bewertet. Der Job wird auf dem Funke-Cluster ausgeführt und läuft gut.Spark Anzahl der Kerne verwendet
Haben Sie einige Fragen zu dem Parameter, den ich verwende, um den Job auszuführen?
- Ich habe 2 Knoten läuft. Node-1 = 24 GB RAM & 8 VCPUs. Node-2 = 8 GB RAM & 2 VCPUs.
so total habe ich 32GB RAM und 10 VCPUs.
Befehl spark-submit.
spark-submit --master spark://hadoop-master:7077 --executor-memory 4g --num-executors 4 --executor-cores 4 /home/hduser/ratings-counter.py
Wenn ich den obigen Befehl ausführen, die Funkenkerne verwendet, ist es von Knoten 1 oder Knoten-2 oder tut es ordnet zufällig?
2.Wenn ich nicht die Anzahl der Executoren verwende, was ist der Standard-Executor, den Spark verwendet?
from pyspark import SparkConf, SparkContext
import collections
conf = SparkConf().setMaster("hadoop-master").setAppName("RatingsHistogram")
sc = SparkContext(conf = conf)
lines = sc.textFile("hdfs://hadoop-master:8020/user/hduser/gutenberg/ml-10M100K/ratings.dat")
ratings = lines.map(lambda x: x.split('::')[2])
result = ratings.countByValue()
sortedResults = collections.OrderedDict(sorted(result.items()))
for key, value in sortedResults.items():
print("%s %i" % (key, value))