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

Как получить общее количество записей, обработанных Spark Streaming?

Кто-нибудь знает, как Spark вычисляет количество записей (я думаю, это то же самое, что и количество событий в пакете), как показано здесь?

введите здесь описание изображения

Я пытаюсь выяснить, как я могу получить это значение удаленно (REST-API не существует для опции потоковой передачи в пользовательском интерфейсе).

В основном то, что я пытаюсь сделать, чтобы получить общее количество записей, обработанных моим приложением. Мне нужна эта информация для веб-портала.

Я попытался подсчитать Records для каждого этапа, но это дало мне совершенно другое число, как на картинке выше. Каждый этап содержит информацию о своих записях. Как показано здесь

введите здесь описание изображения

Я использую этот короткий скрипт на Python для подсчета «inputRecords» на каждом этапе. Это исходный код:

import json, requests, urllib
print "Get stages script started!"
#URL REST-API
url = 'http://10.16.31.211:4040/api/v1/applications/app-20161104125052-0052/stages/'
response = urllib.urlopen(url)
data = json.loads(response.read())

stages = []
print len(data)
inputCounter = 0
for item in data:
        stages.append(item["stageId"])
        inputCounter += item["inputRecords"]
print "Records processed: " + str(inputCounter)

Если я правильно понял: у каждого Batch есть один Job, а у каждого Job есть несколько Stages, у этих Stages есть несколько Tasks.

Поэтому для меня имело смысл подсчитывать ввод для каждого Stage.

04.11.2016

  • Что вы пробовали? Пожалуйста, опубликуйте несколько примеров данных и кода и сообщите нам, что у вас не работает. Также проверьте эту ссылку: stackoverflow.com/help/mcve. 04.11.2016
  • Возможно, вопрос должен заключаться в том, как получить общее количество записей, обработанных Spark Streaming. 04.11.2016

Ответы:


1

Spark предлагает конечную точку метрик для драйвера:

<driver-host>:<ui-port>/metrics/json

Приложение Spark Streaming будет сообщать обо всех метриках, доступных в пользовательском интерфейсе, и о некоторых других. Те, которые вы потенциально ищете, это:

<driver-id>.driver.<job-id>.StreamingMetrics.streaming.totalProcessedRecords: {
value: 48574640
},
<driver-id>.driver.<job-id>.StreamingMetrics.streaming.totalReceivedRecords: {
value: 48574640
}

Эту конечную точку можно настроить. Дополнительные сведения см. в метриках Spark.

04.11.2016
  • Благодарю вас! Это действительно работает, эта опция /metrics/json была скрыта от меня. 04.11.2016
  • @SeverinSimko не очень известная функция. Кстати, если вы считаете, что ответили на свой вопрос, не забудьте принять его. Также рассмотрите возможность изменения названия, чтобы будущие посетители также могли извлечь выгоду... и добро пожаловать в ТАК! 04.11.2016
  • Новые материалы

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

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

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

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

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

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

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