我使用以下命令从目录中创建了一个HTTP服务器:
python -c 'import BaseHTTPServer as bhs, SimpleHTTPServer as shs; bhs.HTTPServer(("0.0.0.0", 8089), shs.SimpleHTTPRequestHandler).serve_forever()'我使用Spark-K8s操作符执行星火应用程序。作为主文件,我希望使用存储在目录中的jar文件(我从其中创建http服务器)。但是,我不知道应该将我的目录映射到哪个主机上,以便在部署过程中运行的Spark应用程序可以使用它。当我在当前主机上运行它时,会得到以下连接错误:
java.net.ConnectException: Connection refused基本上,我有HTTP服务器,它引用指定的主机和端口,我想使用K8s上的Spark运行这个jar文件。我如何定义这个主机?
目前,应用程序定义如下:
apiVersion: sparkoperator.k8s.io/v1alpha1
kind: SparkApplication
metadata:
name: spark-example
namespace: default
spec:
type: Scala
image: gcr.io/spark-operator/spark:v2.4.0
mainClass: org.apache.spark.examples.SparkExample
mainApplicationFile: https://0.0.0.0:8089/spark_k8s_airflow.jar
mode: cluster
deps: {}
driver:
coreLimit: 1000m
cores: 0.1
labels:
version: 2.4.0
memory: 1024m
serviceAccount: intended-mink-spark
executor:
cores: 1
instances: 1
labels:
version: 2.4.0
memory: 1024m
imagePullPolicy: Never发布于 2018-12-26 19:47:29
基本上,我有HTTP服务器,它引用指定的主机和端口,我想使用K8s上的Spark运行这个jar文件。我如何定义这个主机?
kubernetes的方法是通过Service来实现,默认情况下,它会创建表单service-name.service-namespace.svc.cluster.local的DNS条目,其中service-name和service-namespace不是字面上的单词,但其他的3个则是字面意思。但是,如果您只是想玩一玩,并且创建一个Service太费劲了,那么您可以使用正在运行SimpleHTTPServer的Pod的当前IP。
mainApplicationFile: https://0.0.0.0:8089/spark_k8s_airflow.jar
请注意,至少在编写上面的python示例时,您不能使用https:,因为SimpleHTTPServer只是HTTP。您可以说服其中一个内置包为https提供服务,但这样的输入量要大得多,而且可以说是不值得付出的努力。
https://stackoverflow.com/questions/53933439
复制相似问题