连接到远程Spark Cluster

时间:2018-04-17 17:37:42

标签: apache-spark pyspark cluster-computing apache-spark-standalone

我无法从jupyter笔记本远程连接到火花星团。它在当地工作正常。

方法1:

conf = pyspark.SparkConf().setAppName('Pi').setMaster('spark://my-cluster:7077')
sc = pyspark.SparkContext(conf=conf)

这会成功返回。当我然后尝试运行Pi示例

partitions = 3
n = 1000 * 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))

它只是在控制台中继续运行错误:

warn taskschedulerimpl: initial job has not accepted any resources; check your cluster ui to ensure that workers are registered and have sufficient resources

在集群ui中,作业被设置为“正在运行”并且工作人员仍然活着,但似乎实际上没有工作。

Worker Id   Address State   Cores   Memory
worker-20180417174137-192.168.1.13-43697    192.168.1.13:43697  ALIVE   4 (4 Used)  6.8 GB (1024.0 MB Used)
worker-20180417174137-192.168.1.14-38778    192.168.1.14:38778  ALIVE   4 (4 Used)  6.8 GB (1024.0 MB Used)
worker-20180417174137-192.168.1.15-35776    192.168.1.15:35776  ALIVE   4 (4 Used)  6.8 GB (1024.0 MB Used) 

因此,无论如何,资源应该足够存在于这项简单的工作中。那么这可能导致这个问题呢?

由于对this的评论中的评论有关完全相同问题的评论,我尝试连接到以纱线为主的群集。

conf.set('spark.hadoop.yarn.resourcemanager.address', 'my-cluster:8032')
conf.set('spark.hadoop.fs.default.name', 'hdfs://my-cluster:9000')
conf.set('spark.submit.deployMode', 'client')

这导致this问题,我相应地应用了答案。然后用

启动上下文
sc = pyspark.SparkContext(conf=conf)

根本不返回,无休止地阻止,直到手动取消。我在我的Ubuntu VM中尝试了这个,然后认为这可能是VM的网络问题,并且在主机Windows 7系统中也安装了火花,结果完全相同。那么如何成功连接到集群并启动应用程序?

0 个答案:

没有答案