Apache spark 所用芯的火花数
我有一个非常简单的spark工作,它读取百万电影收视率,并告诉收视率和它的收视率的倍数。 作业在spark群集上运行,运行正常 对于我用来运行作业的参数有几个问题吗Apache spark 所用芯的火花数,apache-spark,Apache Spark,我有一个非常简单的spark工作,它读取百万电影收视率,并告诉收视率和它的收视率的倍数。 作业在spark群集上运行,运行正常 对于我用来运行作业的参数有几个问题吗 我有两个节点运行。 节点1=24GB RAM和8个VCPU。 节点2=8GB RAM和2个VCPU 所以我总共有32GB的RAM和10个VCPU spark提交命令 spark-submit --master spark://hadoop-master:7077 --executor-memory 4g --num-executor
spark-submit --master spark://hadoop-master:7077 --executor-memory 4g --num-executors 4 --executor-cores 4 /home/hduser/ratings-counter.py
当我运行上面的命令时,它是来自节点1还是节点2,还是随机分配
2.如果我不使用执行人的数量,spark使用的默认执行人是什么
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))
它是来自节点1还是节点2,还是随机分配
这实际上取决于您初始化了多少工人。因为在spark submit cmd中,您总共指定了4个执行器,每个执行器将从spark Worker的总内存和内核中分配4gb内存和4个内核。查看每个执行器在哪个节点启动的一个简单方法是检查Spark的主UI(默认端口为8080),然后从那里选择您正在运行的应用程序。然后可以检查应用程序UI中的executors选项卡
如果我不使用执行者的数量,spark使用的默认执行者是什么
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))
通常,它为每个工作者实例初始化一个执行器,并使用所有工作者的资源