我一直在尝试在minikube上部署spark和jupyter note。我使用了 Helm 图来部署两者
Jupyter笔记本-https://artifacthub.io/packages/helm/pyspark-notebook-helm/pyspark-notebook
Spark - https://bitnami.com/stack/spark/helm
同时能够使用
spark = SparkSession.builder.master("spark://my-release-spark-master-0.my-release-spark-headless.default.svc.cluster.local:7077").getOrCreate()
运行以下代码段时
nums= sc.parallelize([1,2,3,4])
squared = nums.map(lambda x: x*x).collect()
for num in squared:
print('%i ' % (num))
当它运行collect()方法时,执行会花费很长时间,并且永远不会完成
1条答案
按热度按时间44u64gxh1#
您可以在Kubernetes中运行Spark时检查先决条件,以确定它是否会提高其性能
一个运行中的Kubernetes集群,版本>= 1.22,使用kubectl配置了访问权限。如果你还没有一个工作的Kubernetes集群,你可以使用minikube在本地机器上设置一个测试集群。
我们建议使用最新版本的minikube并启用DNS插件。
请注意,默认的minikube配置不足以运行Spark应用程序。我们建议使用3个CPU和4g内存,以便能够使用单个执行器启动简单的Spark应用程序。
检查您的Spark环境的kubernetes-client library版本,以及它与您的Kubernetes集群版本的兼容性。
您必须具有相应的权限才能在群集中列出、创建、编辑和删除pods。您可以通过运行以下命令来验证是否可以列出这些资源
kubectl auth can-i <list|创造|编辑|delete> pods
必须允许驱动程序pod使用的服务帐户凭据创建pod、服务和配置Map。
必须在群集中配置Kubernetes DNS。