Пример работы c supervisor в кластере Hadoop(Cloudera) на примере сервиса Livy Spark Server

В дистрибутиве от Cloudera напрямую работать с supervisor не получится. Дело в том, что саму службу они скрыли и она не доступна по стандартной команде "service supervisord" а файли настроек не находятся на своем привычном месте "/etc/supervisor/supervisord.conf".

Так что же делать, если у Вас возникла например необходимость настроить стабильную работу  REST API для работы c Spark-ом на основе Livy Spark Server ?

Проблема усложняется тем, что на данный момент дистрибутив Cloudera официально не поддерживает эту службу и потому нужно самому собрать и запустить Livy сервер из исходников.
После установки самого Livy сервера возникает необходимость  повысить отказоустойчивость путём мониторинга и автоматического перезапуска службы в случае падения.

Настройки supervisor-a в случае собранного кластера на основе дистрибутива от Cloudera находится по этому адресу: "/var/run/cloudera-scm-agent/supervisor/include/"
Создадим в этой директории файл "livy_spark_server.conf" для автозапуска livy spark ceрвера со следующим содержимым:
[program:livy_spark_server]
command=/usr/local/src/livy-master/startup-livy-master.sh
user=hue
group=hue
autorestart=true
stdout_logfile=/var/log/livy-server.out
stderr_logfile=/var/log/livy-server.log
killasgroup=true

В строке "command" указан путь к shell-скрипту запуска самого Livy Spark сервера. Код этого cкрипта взят из приведённой выше статьи по установке и запуску сервера:
#!/bin/bash
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera && \\
export PATH=$JAVA_HOME/bin:$PATH && \\
export SPARK_HOME=/opt/cloudera/parcels/CDH/lib/spark && \\
export HADOOP_CONF_DIR=/etc/hadoop/conf && \\
env \
  LIVY_SERVER_JAVA_OPTS='-Dlivy.server.session.factory=yarn' \
 SPARK_CONF_DIR=/opt/cloudera/parcels/CDH/lib/spark/conf \
 /usr/local/src/livy-master/bin/livy-server

Применить изменения в настройках можно следующей командой: "sudo service cloudera-scm-agent restart"

Логи supervisor-a находятся по адресу: /var/log/cloudera-scm-agent/supervisord.log


Полезные ссылки:

Коментарі

Популярні дописи з цього блогу

Минимальные требование для кластера Hadoop(with Spark)

Apache Spark - основные команды

Apache Spark Resource Management и модель приложений от YARN