указать хост для jar-файла приложения - PullRequest
0 голосов
/ 26 декабря 2018

Я создал 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-сервер, который ссылается на указанный хост и порт, и я хочу запустить этот jar-файл, используя Spark поверх K8s,Как я могу определить этот хост?

На данный момент определение приложения выглядит следующим образом:

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 Ответ

0 голосов
/ 26 декабря 2018

По сути, у меня есть HTTP-сервер, который ссылается на указанный хост и порт, и я хочу запустить этот файл JAR, используя Spark поверх K8s.Как я могу определить этот хост?

Способ kubernetes сделать это через Service, который по умолчанию создает запись DNS в форме service-name.service-namespace.svc.cluster.local, где service-name и service-namespaceэто не те буквальные слова, но остальные 3 буквально это.Однако, если вы просто хотите поиграть, и создание Service - это слишком много работы, то вы можете использовать текущий IP-адрес модуля, на котором работает SimpleHTTPServer.

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

Имейте в виду, что, по крайней мере, так как вы написали пример с Python выше, вы не можете использовать https:, поскольку SimpleHTTPServer это просто HTTP .Возможно, вы сможете убедить один из встроенных пакетов в обслуживании https, но это будет намного больше печатать и, возможно, не стоит усилий

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...