Публікації

Показано дописи з міткою "tips"

Apache Oozie - решаем ошибку java.lang.ClassNotFoundException

   При запуске задач с помощью Apache Oozie часто возникает ошибка: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.ipc.RpcControllerFactory   Суть в том, что по умолчанию у Вас не все библиотеки подключены в ShareLib. После настройки и запуска job-a может возникнуть ошибка "java.lang.ClassNotFoundException", которая и говорит нам, что Oozie попросту не видит данную реализацию в подключённых jar-никах в директории ShareLib.    Вам нужно указать Oozie где в HDFS лежат нужные jar файлы. Для этого создаём директорию в HDFS где будут лежать наши jar файлы: hadoop fs -mkdir /user/oozie/custom_share   Далее закачиваем jar в hdfs эту директорию: hadoop fs -put target/HBase-1.0-SNAPSHOT-jar-with-dependencies.jar hdfs:///user/oozie/custom_share/ Далее нужно в файле job.properties указать эту директорию в переменной  oozie.libpath oozie.libpath=/user/oozie/custom_share Полезные ссылки: Add a common HBase lib in hdfs on clus...

Apache Oozie - краткое описание

   Oozie - это система для планирования выполнения повторяющихся задач в экосистеме Hadoop. В этой системе можно сконфигурировать цыкл задач написаных на Java,  Apache Hive, Apache Pig и Apache Sqoop, Apache Spark, UNIX Shell  и т.д. Oozie задачи могут быть быть сконфигурированы для регулярного выполнения или для выполнения при возникновении некоторого события. Задачи, которые должны быть запущены периодично - это задачи типа  Oozie coordinator. Задачи, которые должны быть запущены последовательно - это задачи типа Oozie Workflow. Задачи, которые вмещают в себе и задачи типа  Oozie coordinator и типа   Oozie Workflow, называются задачами типа Oozie Bundle и предоставляют возможность мониторить и координировать жизненный цикл всех типов задач в виде одного целого. Oozie Coordinators    Oozie coordinator планирует задачу на основе время начала и частоты выполнения задачи и также когда все необходимые входящие данные доступны....

Пример работы 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/" Создадим в этой директории файл "li...

Исправляем ошибку "The app won't work without a running Livy Spark Server"

В Hue 3.8 появилясь возможность использовать интерактивный Web-based блокнот для анализа данных " Notebook Application for Spark & SQL ". Вдохновление ребята взяли с аналогичной разработки  IPython Notebook. Идея в том, чтобы избавить аналитиков от изнурительной работы над компиляцией Jar файлов и их запуска с консоли. Это очень удобно, когда нужно сделать быструю проверку данных, проверку теории и т.д.. Проблема в том, что по умолчанию для запуска этого блокнота должен быть настроен Livy Spark Server. Об этом нам говорит следующее сообщение: "The app won't work without a running Livy Spark Server" В настройках hue.ini устанавливаем следующее: [desktop] app_blacklist= [notebook] show_notebooks=true [beeswax] use_new_editor=true Скачиваем и устанавливаем Livy server https://github.com/cloudera/livy  cd /usr/local/src git clone git@github.com:cloudera/livy.git cd livy-master export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera export PATH=$JAVA_HO...

PHP клиент для работы с HBase и Hive

При работе с кластером Hadoop, может возникнуть необходимость обратится к данным, которые хранятся в HBase и Hive в рамках Hadoop кластера. Для этого можно воспользоваться Apache Thrift фреймворком, который обеспечивает кросс-языковое решения обмена данными. Для доступа к HBase и Hive с PHP можно использовать php trhift клиент. Реализовывать самому этот клиент может быть долго и сложно. Поэтому лучше использовать готовые наработки. К примеру вот хорошая реализация  клиента на PHP. После скачивания файлов можно работать с данными. Попробуем реализовать пару простых методов доступа к данным: //thrift php $GLOBALS [ ‘THRIFT_ROOT’ ] = dirname ( __FILE__ ) . ‘/thrift/src’ ; require_once ( $GLOBALS [ ‘THRIFT_ROOT’ ] . ‘/Thrift.php’ ) ; require_once ( $GLOBALS [ ‘THRIFT_ROOT’ ] . ‘/transport/TSocket.php’ ) ; require_once ( $GLOBALS [ ‘THRIFT_ROOT’ ] . ‘/transport/TBufferedTransport.php’ ) ; require_once ( $GLOBALS [ ‘THRIFT_ROOT’ ] . ‘/protocol/TBinaryProtocol.php’ ...