代码之家  ›  专栏  ›  技术社区  ›  Cassie

为应用程序JAR文件指定主机

  •  0
  • Cassie  · 技术社区  · 6 年前

    我使用以下命令从目录创建了一个HTTP服务器:

    python -c 'import BaseHTTPServer as bhs, SimpleHTTPServer as shs; bhs.HTTPServer(("0.0.0.0", 8089), shs.SimpleHTTPRequestHandler).serve_forever()'
    

    我使用spark-k8s运算符执行spark应用程序。作为主文件,我希望使用存储在目录中的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
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   mdaniel    6 年前

    基本上,我有一个HTTP服务器,它指的是指定的主机和端口,我想使用K8S之上的spark运行这个jar文件,我如何定义这个主机?

    Kubernetes的方法是通过 Service ,默认情况下会创建表单的DNS条目 service-name.service-namespace.svc.cluster.local 哪里 service-name service-namespace 不是那些字面上的词,而是另外三个字面上的词。但是,如果你只是想玩,并创建一个 服务 工作太多,那么您可以使用当前的IP,其中 SimpleHTTPServer 正在运行。

    mainApplicationFile: https://0.0.0.0:8089/spark_k8s_airflow.jar

    请注意,至少正如上面编写的Python示例一样,您不能使用 https: 自从 SimpleHttpServer 就是这样 超文本传输协议 . 您可以说服其中一个内置包为HTTPS提供服务,但它的输入量要大得多,而且可能不值得这样做。