当我尝试使用SparkConf初始化SparkContext时,如下所示:
from pyspark import *
from pyspark.streaming import *
cfg = SparkConf().setMaster('yarn').setAppName('MyApp')
sc = SparkContext(conf=cfg)
print(sc.getConf().getAll())
rdd = sc.parallelize(list('abcdefg')).map(lambda x:(x,1))
print(rdd.collect())
输出显示它不与纱线一起运行:
[(u'spark.master', u'local[10]'), ...]
它使用$ SPARK_HOME / conf / spark-defaults.conf中的配置:
spark.master local[10]
我的电脑: Python2.7.2 Spark2.1.0
然后我在spark2.0.2中运行相同的代码,SparkConf()也可以运行
所以这真的是一个错误?
答案 0 :(得分:0)
要使用yarn,您应指定驱动程序是在主服务器还是其中一个工作节点上运行。
yarn-client将在主节点上执行驱动程序
SparkConf().setMaster('yarn-client')
yarn-cluster将在其中一个工作节点上执行驱动程序
SparkConf().setMaster('yarn-cluster')
Here是在yarn-client模式下运行的示例。