Apache 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工作,它读取百万电影收视率,并告诉收视率和它的收视率的倍数。 作业在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-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))
    
    通常,它为每个工作者实例初始化一个执行器,并使用所有工作者的资源