Хобрук: Ваш путь к мастерству в программировании

Отправка метрик потоковой передачи Spark для открытия tsdb

Как я могу отправить метрики из моего задания потоковой передачи искры в открытую базу данных tsdb? Я пытаюсь использовать открытый tsdb в качестве источника данных в Grafana. Не могли бы вы помочь мне с некоторыми ссылками, с которых я могу начать.

Я вижу здесь open tsdb reporter, который выполняет аналогичную работу. Как я могу интегрировать метрики из задания потоковой передачи Spark, чтобы использовать это? Есть ли простые варианты сделать это.


Ответы:


1

Один из способов отправить метрики в opentsdb — использовать его REST API. Чтобы использовать его, просто преобразуйте метрики в строки JSON, а затем используйте клиентскую библиотеку Apache Http для отправки данных (она находится в java и поэтому может использоваться в scala). Пример кода можно найти в github.


Более элегантным решением будет использование библиотеки метрик Spark и добавление приемника в базу данных. Однако было проведено обсуждение добавления приемника OpenTSDB для библиотеки показателей Spark. , наконец, в сам Spark его не добавили. Код доступен на github, и его можно использовать. К сожалению, код совместим со Spark 1.4.1, однако в худшем случае все же можно будет получить некоторые указания на то, что необходимо добавить.

13.12.2017
  • Спасибо. Я нашел это раньше. Но не мог использовать то же самое. Я создал другой проект Scala только с этим классом opentsdbSink. Я попытался создать из него банку и включить ее в текущую работу потоковой передачи Java spark. Я продолжаю получать сообщения об ошибках, например класс Sink org.apache.spark.metrics.sink.OpenTsdbSink не может быть создан. java.lang.NoSuchMethodException: org.apache.spark.metrics.sink.OpenTsdbSink.‹init›(java.util.Properties, com.codahale.metrics.MetricRegistry, org.apache.spark.SecurityManager). Что бы вы мне посоветовали для начала? 15.12.2017
  • Есть ли какой-нибудь быстрый и простой способ получить эти метрики для открытия tsdb вместо использования этой библиотеки метрик? Вероятно, что-то с сообщениями HTTP? 15.12.2017
  • Также я не нахожу пакет org.apache.spark.metrics с различными приемниками в Spark 2.2, который я использую. Понятно ли по умолчанию, что эти старые пакеты доступны с 2.2, если не указано иное? Я не смог найти его в документации библиотеки Spark 2.2. 15.12.2017
  • Если я включаю этот пакет в тот же проект, я получаю сообщение об ошибке типа ERROR org.apache.spark.metrics.MetricsSystem: класс приемника org.apache.spark.metrics.sink.OpenTsdbSink не может быть создан. 15.12.2017
  • Есть ли способ использовать приемник CSVSink или MetricServlet для создания CSV или JSON, которые можно было бы переместить в opentsdb? Это очень медленно? 15.12.2017
  • @Passionate: Вы правильно настраиваете раковину? Вот инструкция для Kafka, но она должна работать и для snik opentsdb: github.com/ erikerlandson/spark-kafka-sink. Вы не можете инициализировать его в коде самостоятельно. 15.12.2017
  • Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

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

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..