首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Kubernetes Spark Operator上部署时,应将Spark Master地址设置为什么?

在Kubernetes Spark Operator上部署时,应将Spark Master地址设置为什么?
EN

Stack Overflow用户
提问于 2020-09-17 03:29:16
回答 1查看 207关注 0票数 1

官方spark documentation只有关于将代码部署到spark集群的spark-submit方法的信息。它提到我们必须在kubernetes api服务器的地址前面加上k8s://。通过Spark Operator部署时,我们应该做些什么

例如,如果我有一个基本的pyspark应用程序,它像这样启动,我该如何设置master:

代码语言:javascript
复制
from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext
from pyspark.sql.types import *
from pyspark import SparkConf, SparkContext

sc = SparkContext("local", "Big data App")
spark = SQLContext(sc)
spark_conf = SparkConf().setMaster('local').setAppName('app_name')

这里我有local,如果我在非K8的集群上运行,我会提到带有spark://前缀或yarn的主地址。如果通过Spark Operator进行部署,我还必须使用k8s://前缀吗?如果不是,主参数应该使用什么?

EN

回答 1

Stack Overflow用户

发布于 2020-09-17 04:02:41

最好不要在代码中使用setMaster,而是在通过spark-submit运行代码时指定它,如下所示(请参阅documentation for details):

代码语言:javascript
复制
./bin/spark-submit \
    --master k8s://https://<k8s-apiserver-host>:<k8s-apiserver-port> \
    --deploy-mode cluster \
    your_script.py

我还没有使用Spark operator,但它应该会自动设置master,正如我在文档中所理解的那样。

您还需要转换以下代码:

代码语言:javascript
复制
sc = SparkContext("local", "Big data App")
spark = SQLContext(sc)
spark_conf = SparkConf().setMaster('local').setAppName('app_name')

到更现代的(参见doc):

代码语言:javascript
复制
from pyspark.sql import SparkSession

spark = SparkSession \
    .builder \
    .appName("Python Spark SQL basic example") \
    .config("spark.some.config.option", "some-value") \
    .getOrCreate()

因为SQLContext已被弃用。

附言:我建议你读完“学习火花”的第一章,第二版,也就是freely available from the Databricks site

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63926804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档