工作人员无法连接到AWS EC2上的驱动程序

时间:2016-02-24 15:22:35

标签: amazon-ec2 apache-spark pyspark

我的Spark群集出了问题。我已经在3台不同的ec2机器上安装了一个集群,当尝试在那里提交时,一切正常。 我尝试做的是使用Eclipse从我的Windows 7机器提交。 当我在Eclipse上本地运行Pi.py示例时它工作正常。 我会向您展示我的代码,以便更容易理解:

from __future__ import print_function

import sys
from random import random
from operator import add
from pyspark.conf import SparkConf
from pyspark import SparkContext


if __name__ == "__main__":
"""
    Usage: pi [partitions]
"""
conf = SparkConf()
conf.setMaster("spark://52.50.19.132:7077") #"52.50.19.132" is the master's 
# public ip, as the private one didn't allow connection(don't know why...ssh?)
conf.setAppName("PythonPi")
conf.set("spark.executor.memory", "500m")
sc = SparkContext(conf=conf)
partitions = int(sys.argv[1]) if len(sys.argv) > 1 else 2
n = 100000 * partitions

def f(_):
    x = random() * 2 - 1
    y = random() * 2 - 1
    return 1 if x ** 2 + y ** 2 < 1 else 0

count = sc.parallelize(range(1, n + 1), partitions).map(f).reduce(add)
print("Pi is roughly %f" % (4.0 * count / n))

sc.stop()

当我从Eclipse运行它时,我可以连接到master,我可以从Spark UI看到应用程序正在运行。但我一直在

WARN TaskSchedulerImpl: Initial job has not accepted any resources;
check your cluster UI to ensure that workers are registered and have sufficient resources

所以在开始时我虽然是关闭端口的问题,但我打开了所有端口。但没有改变。 我认为这是ssh连接的问题,但我实际上是通过Putty连接到ec2机器,虽然我认为问题是另一种方式,我的意思是从ec2机器连接到Windows而不是机器。 我也通过

检查
netstat -an 

如果出现问题,我发现ec2 worker和我的Windows机器之间存在 SYN_SENT 。 我希望你能帮忙

0 个答案:

没有答案