2016-08-09 6 views
0

Мы пытаемся разработать приложение искровой Java-оболочки в линейке Linux Azure HDInsight. Мы смогли подать заявку через Ливи, и она работает нормально.Вход в Azure из приложения Spark Java

Проблема, с которой мы сталкиваемся, связана с протоколированием. Как мы можем использовать log4j здесь, потому что если мы используем RollingFileAppender, тогда мы должны поместить путь к выходному файлу .log. В нашем случае мы должны записать журнал в хранилище blob. Но мы считаем, что нормальная регистрация не сработает.

Мы нашли некоторый механизм регистрации, предоставленный компанией Azure через Azureinsights, но все они сделаны для веб-проекта, и я думаю, что он не работает из нашего приложения Java.

Можете ли вы, пожалуйста, помочь мне здесь, как мы можем реализовать регистрацию приложений из приложения искры java? Может быть, в будущем люди из организации могут подумать о том, чтобы использовать Splunk как инструменты для работы с журналами.

Ждем вас к помощи.

Thanks, Shamik.

ответ

1

Основываясь на моем понимании, я думаю, что вы хотите записывать журналы в хранилище blob или HDFS на основе Blob Storage.

Итак, для входа в контейнер хранилища blob, мое предложение состоит в том, что вы можете попробовать использовать стороннее приложение для log4j, например AzureLogAppender. Или другим способом входа в хранилище таблиц является использование этих добавок для log4j, таких как log4j-azure и azure-log4j.

Если вы хотите записывать журналы в HDFS на Azure, существует два способа, как показано ниже.

  1. Вы можете обратиться к article, чтобы написать пользовательское приложение для log4j.
  2. Использование Apache Flume appender for Log4j для отправки журналов в Flume, который записывает в HDFS, что вы можете обратиться к blog, чтобы узнать, как использовать Flume с Azure HDInsight.
+0

спасибо. Я проверил с AzureLogAppender, но я проверил, что журналы не генерируются. Попробуем другие варианты и опубликуйте результат. – Shamik

+0

Я думаю, что AzureLogAppender работает правильно, но проблема в том, что когда я отправляю работу Spark через Livy в кластере пряжи, приложение log4j не используется. Есть ли способ? Я проверил с помощью метода PropertyConfigurator.configure(), но специфический для приложения log4j не получает. – Shamik

+0

@Shamik. Есть два пути. 1. Загрузите файлы jar в хранилище кластера, связанное с кластером. Для этого вы можете использовать утилиту командной строки AzCopy. См. Https://azure.microsoft.com/en-us/documentation/articles/hdinsight-apache-spark-livy-rest-interface/#submit-a-batch-job-the-cluster. 2. в основном приложения Java и Scala упаковываются в файл .jar, который может быть отправлен через API LIvy. –