Есть ли какие-то другие настройки, которые нужно сделать вместе с Livy server (livy.conf)?

Я установил докер для пряжи hadoop, и я пытаюсь настроить живой сервер apache для выполнения вызовов API для отправки заданий.

В журналах ниже показано, что livy-сервер запускается на определенное время и останавливается автоматически.

19/08/17 07:09:35 INFO utils.LineBufferedStream: Welcome to
19/08/17 07:09:35 INFO utils.LineBufferedStream:       ____              __
19/08/17 07:09:35 INFO utils.LineBufferedStream:      / __/__  ___ _____/ /__
19/08/17 07:09:35 INFO utils.LineBufferedStream:     _\ \/ _ \/ _ `/ __/  '_/
19/08/17 07:09:35 INFO utils.LineBufferedStream:    /___/ .__/\_,_/_/ /_/\_\   version 2.2.1
19/08/17 07:09:35 INFO utils.LineBufferedStream:       /_/
19/08/17 07:09:35 INFO utils.LineBufferedStream:
19/08/17 07:09:35 INFO utils.LineBufferedStream: Using Scala version 2.11.8, OpenJDK 64-Bit Server VM, 1.8.0_222
19/08/17 07:09:35 INFO utils.LineBufferedStream: Branch
19/08/17 07:09:35 INFO utils.LineBufferedStream: Compiled by user felixcheung on 2017-11-24T23:19:45Z
19/08/17 07:09:35 INFO utils.LineBufferedStream: Revision
19/08/17 07:09:35 INFO utils.LineBufferedStream: Url
19/08/17 07:09:35 INFO utils.LineBufferedStream: Type --help for more information.
19/08/17 07:09:35 INFO recovery.StateStore$: Using BlackholeStateStore for recovery.
19/08/17 07:09:35 INFO sessions.BatchSessionManager: Recovered 0 batch sessions. Next session id: 0
19/08/17 07:09:35 INFO sessions.InteractiveSessionManager: Recovered 0 interactive sessions. Next session id: 0
19/08/17 07:09:35 INFO sessions.InteractiveSessionManager: Heartbeat watchdog thread started.
19/08/17 07:09:35 INFO util.log: Logging initialized @1944ms
19/08/17 07:09:36 INFO server.Server: jetty-9.3.24.v20180605, build timestamp: 2018-06-05T17:11:56Z, git hash: xxx0x0x0xx00xxxx0x0x0x0x0x0x0x0xxxx
19/08/17 07:09:36 INFO handler.ContextHandler: Started o.e.j.s.ServletContextHandler@3543df7d{/,file:///livy/apache-livy-0.6.0-incubating-bin/bin/src/main/org/apache/livy/server,AVAILABLE}
19/08/17 07:09:36 INFO server.AbstractNCSARequestLog: Opened /livy/apache-livy-0.6.0-incubating-bin/logs/2019_08_17.request.log
19/08/17 07:09:36 INFO server.AbstractConnector: Started ServerConnector@686449f9{HTTP/1.1,[http/1.1]}{x.x.x.x:8080}
19/08/17 07:09:36 INFO server.Server: Started @2304ms
19/08/17 07:09:36 INFO server.WebServer: Starting server on http://x.x.x.x:8080
19/08/17 07:10:01 INFO server.LivyServer: Shutting down Livy server.
19/08/17 07:10:01 INFO handler.ContextHandler: Stopped o.e.j.s.ServletContextHandler@3543df7d{/,file:///livy/apache-livy-0.6.0-incubating-bin/bin/src/main/org/apache/livy/server,UNAVAILABLE}
19/08/17 07:10:01 INFO server.AbstractConnector: Stopped ServerConnector@686449f9{HTTP/1.1,[http/1.1]}{x.x.x.x:8080}

Я предоставил livy.conf, в котором указаны IP-адрес сервера и порт сервера, на котором будет работать livy. Поскольку я пытаюсь отправить искру пряжи, я тоже выполнил их настройку, я прикрепил файлы ниже

докер-сочинять


version: "2"

services:
 livy:
  image: namenode/hadoopspark:2.2.1
  command: /livy/apache-livy-0.6.0-incubating-bin/bin/livy-server start
  network_mode: "host"
  ports:
   - 8080:8080


#####################BASE DOCKERFILE#################

FROM ubuntu:14.04

ENV DAEMON_RUN=true
ENV SPARK_VERSION=2.2.1
ENV HADOOP_VERSION=2.7
ENV SPARK_HOME=/spark
ENV HADOOP_HOME=/hadoop

RUN apt-get update \
 && apt-get install -y software-properties-common openssh-server net-tools curl nano vim wget ca-certificates jq gnupg unzip

RUN add-apt-repository ppa:openjdk-r/ppa
RUN apt-get update
RUN apt-get install -y openjdk-8-jdk \
 supervisor

RUN ssh-keygen -q -N "" -t rsa -f /root/.ssh/id_rsa
RUN cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys

RUN wget https://www-eu.apache.org/dist/incubator/livy/0.6.0-incubating/apache-livy-0.6.0-incubating-bin.zip \
 && unzip apache-livy-0.6.0-incubating-bin.zip \
 && mkdir -p livy \
 && mv apache-livy-0.6.0-incubating-bin /livy

RUN wget https://archive.apache.org/dist/spark/spark-${SPARK_VERSION}/spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz \
 &&  tar -xzf spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz \
 &&  mv spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION} /spark

RUN wget https://archive.apache.org/dist/hadoop/core/hadoop-2.7.3/hadoop-2.7.3.tar.gz \
 && tar -xzvf hadoop-2.7.3.tar.gz \
 && mv hadoop-2.7.3 /hadoop

ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
ENV HADOOP_CONF_DIR=/hadoop/etc/hadoop

RUN echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/ \
export HADOOP_HOME=/hadoop \
export HADOOP_CONF_DIR=/hadoop/etc/hadoop \
export HADOOP_SSH_OPTS='"-p 22"' \
" >> /hadoop/etc/hadoop/hadoop-env.sh

ENV PATH=$SPARK_HOME/bin:$PATH
ENV PATH=$PATH:/hadoop/bin:/hadoop/sbin


################NAMENODE DOCKERFILE####################

FROM base/hadoopspark:2.2.1

COPY conf/* /tmp/

RUN cp /tmp/hdfs-site.xml $HADOOP_HOME/etc/hadoop/hdfs-site.xml && \
    cp /tmp/core-site.xml $HADOOP_HOME/etc/hadoop/core-site.xml && \
    cp /tmp/mapred-site.xml $HADOOP_HOME/etc/hadoop/mapred-site.xml && \
    cp /tmp/yarn-site.xml $HADOOP_HOME/etc/hadoop/yarn-site.xml && \
    cp /tmp/hdfs-site.xml $SPARK_HOME/conf/ && \
    cp /tmp/core-site.xml $SPARK_HOME/conf/ && \
    cp /tmp/mapred-site.xml $SPARK_HOME/conf/ && \
    cp /tmp/yarn-site.xml $SPARK_HOME/conf/ && \
    cp /tmp/spark-defaults.conf $SPARK_HOME/conf/ && \
    cp /tmp/livy.conf /livy/apache-livy-0.6.0-incubating-bin/conf

COPY Docker_WordCount_Spark-1.0.jar /opt/Docker_WordCount_Spark-1.0.jar
COPY sample.txt /opt/sample.txt

#RUN hdfs dfs -put /opt/Docker_WordCount_Spark-1.0.jar Docker_WordCount_Spark-1.0.jar
#RUN hdfs dfs -put /opt/sample.txt sample.txt

ENV LD_LIBRARY_PATH=/hadoop/lib/native:$LD_LIBRARY_PATH

RUN sudo service ssh restart
RUN sudo /hadoop/bin/hadoop namenode -format

EXPOSE 8998 8080

Нужна ли помощь еще какая-нибудь для запуска livy server. Спасибо!


person Karthik    schedule 17.08.2019    source источник


Ответы (2)


Docker требует, чтобы команды продолжали работать на переднем плане. В противном случае он считает, что приложение остановлено, и закрывает контейнер. Поскольку сценарий запуска livy-сервера выполняется в фоновых процессах, и никакие другие процессы переднего плана не запускаются позже, именно поэтому контейнер завершает работу по завершении сценария. Вы можете решить эту проблему многими способами, простое решение - добавить следующую команду в Dockerfile для запуска сервера печени (удалить команду из docker-compose.yml)

CMD /livy/apache-livy-0.6.0-incubating-bin/bin/livy-server start && /bin/bash

Образ докера livy server:

FROM base/hadoopspark:2.2.1

COPY conf/* /tmp/

ENV SPARK_HOME=/spark
ENV HADOOP_HOME=/hadoop

RUN cp /tmp/hdfs-site.xml $HADOOP_HOME/etc/hadoop/hdfs-site.xml && \
    cp /tmp/core-site.xml $HADOOP_HOME/etc/hadoop/core-site.xml && \
    cp /tmp/mapred-site.xml $HADOOP_HOME/etc/hadoop/mapred-site.xml && \
    cp /tmp/yarn-site.xml $HADOOP_HOME/etc/hadoop/yarn-site.xml && \
    cp /tmp/hdfs-site.xml $SPARK_HOME/conf/ && \
    cp /tmp/core-site.xml $SPARK_HOME/conf/ && \
    cp /tmp/mapred-site.xml $SPARK_HOME/conf/ && \
    cp /tmp/yarn-site.xml $SPARK_HOME/conf/ && \
    cp /tmp/spark-defaults.conf $SPARK_HOME/conf/ && \
    cp /tmp/livy.conf /livy/apache-livy-0.6.0-incubating-bin/conf

COPY Docker_WordCount_Spark-1.0.jar /opt/Docker_WordCount_Spark-1.0.jar
COPY sample.txt /opt/sample.txt

ENV LD_LIBRARY_PATH=/hadoop/lib/native:$LD_LIBRARY_PATH

RUN sudo service ssh restart
RUN sudo /hadoop/bin/hadoop namenode -format

ENV PATH=$SPARK_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

EXPOSE 8998 8080

CMD /livy/apache-livy-0.6.0-incubating-bin/bin/livy-server start && /bin/bash
person Ravikumar    schedule 19.08.2019
comment
Я пробовал. Он по-прежнему завершается с этим результатом - Журнал прикреплен: Creating namenode_livy_1 Attaching to namenode_livy_1 livy_1 | starting /usr/lib/jvm/java-8-openjdk-amd64/bin/java -cp /livy/apache-livy-0.6.0-incubating-bin/jars/*:/livy/apache-livy-0.6.0-incubating-bin/conf:/hadoop/etc/hadoop: org.apache.livy.server.LivyServer, logging to /livy/apache-livy-0.6.0-incubating-bin/logs/livy--server.out namenode_livy_1 exited with code 0 - person Karthik; 21.08.2019
comment
Пожалуйста, используйте опцию tty, я добавил docker-compose в другой ответ с форматом кода - person Ravikumar; 21.08.2019

Попробуйте добавить параметр tty для создания докера и запустить контейнер в режиме отсоединения.

version: "2"

services:
 livy:
  image: namenode/hadoopspark:2.2.1
  command: /livy/apache-livy-0.6.0-incubating-bin/bin/livy-server start
  network_mode: "host"
  ports:
   - 8080:8080
  tty:  true

Запустите контейнер докеров с помощью docker-compose up -d.

person Ravikumar    schedule 21.08.2019
comment
все же я сталкиваюсь с той же проблемой. Проблема, похоже, связана с самим сервером Livy, в котором я не уверен? Я пробовал как автономный режим, так и неотключенный, но контейнер выходит. Сервер Livy выключается сам по себе после запуска и запускается всего на секунду, что действительно подозрительно! - person Karthik; 21.08.2019
comment
Я предлагаю следить за журналами livy-server, чтобы вы могли видеть причину, по которой контейнер также находится в процессе переднего плана для отладки проблемы. CMD [/livy/apache-livy-0.6.0-incubating-bin/bin/livy-server start; хвост -f /livy/apache-livy-0.6.0-incubating-bin/logs/livy--server.out; / bin / bash] - person Ravikumar; 21.08.2019
comment
Да, когда я вошел в закрытый контейнер и хвостовые журналы - - person Karthik; 22.08.2019
comment
Поскольку я не смог прикрепить журнал к комментарию, вы можете просмотреть журнал, о котором уже идет речь. Они похожи то же самое происходит и сейчас - person Karthik; 22.08.2019
comment
Если у вас есть время. Не могли бы вы попробовать это в вашем городе? - person Karthik; 22.08.2019
comment
Я запускаю образ докера локально на своей машине, так как контейнер немедленно выходит из контейнера. Bcz нет процесса переднего плана для хранения контейнера. После добавления tty: true в docker compose можно подключить livy UI localhost: 8080, и контейнер будет работать до тех пор, пока я не остановлюсь или убил вручную. Пожалуйста, попробуйте запустить livy-сервер локально без контейнера докеров с тем же подходом для отладки этой проблемы. - person Ravikumar; 22.08.2019