我正在AWS EC2实例上工作,我安装了Spark 2.2.0,我有8 GB的RAM和2个内核。
我正在按照本教程使用pyspark shell进行一些演示:
https://sparkour.urizone.net/recipes/managing-clusters/
我开始了主人,我开始了一个奴隶工人,他们出现在网上ui。
但是,在shell中,当我尝试执行如下命令时:
>>> tf = spark.sparkContext.textFile('README.md')
>>> tf.count()
我明白了:
[阶段0:> (0 + 0)/ 2]
17/08/29 11:02:51 WARN TaskSchedulerImpl:初始工作没有接受任何资源;检查您的群集UI以确保这一点 工人已注册并拥有足够的资源
在我的spark-env.sh中,我设置了这样的变量:
SPARK_LOCAL_IP=127.0.0.1
SPARK_MASTER_HOST=127.0.0.1
SPARK_WORKER_INSTANCES=2
SPARK_WORKER_MEMORY=1000m
SPARK_WORKER_CORES=1
所以,我不知道为什么会出现问题。我认为,pyspark shell并没有正确到达工人奴隶。
答案 0 :(得分:-1)
在此设置中,我将使用以下设置启动spark:
spark-shell (or spark-submit) --master local[*] --driver-memory 4G ...
我的一条评论:
有了这么小的机器,我怀疑你无法在群集模式下运行。问题是火花驱动器和其他两个工人一样需要资源。在这种情况下,您有1个核心驱动程序+ 2个工作程序* 1个核心。您可以尝试将工作人员数量调整为1,这应该有效。