Nano Hash - криптовалюты, майнинг, программирование

Kafka анализирует данные __consumer_offset

Я могу использовать KafkaTool и kafka-console-consumer для просмотра данных из темы __consumer_offset, но я не могу понять, как анализировать данные в python, если я читаю их напрямую с помощью своего собственного пользовательского инструмента. Даже при использовании KafkaTool я не могу точно расшифровать ключ и значение, есть странные символы, которые, кажется, не следуют никакому шаблону. Я думаю, это связано с тем, как Scala упорядочивает данные в необработанные байты.

Вот формат ключа: [short: версия] [string: группа] [string: тема] [int32: раздел], который можно получить из https://github.com/apache/kafka/blob/trunk./core/src/main/scala/kafka/coordinator/group/GroupMetadataManager.scala — это предполагает версию 0, которая у меня есть.

Вот пример ключа в шестнадцатеричном формате: 00 01 00 16 63 6F 6E 73 6F 6C 65 2D 63 6F 6E 73 75 6D 65 72 2D 39 37 30 38 32 00 0D 73 74 61 67 69 6E 67 2D 73 70 65 6E 64 00 00 00 26

Теперь просматривая эти байты -

00 - версия 0

01 00 - начало заголовка, ноль... ладно, понятно, но другие сообщения начинаются с 02 00

16 63 6F 6E 73 6F 6C 65 2D 63 6F 6E 73 75 6D 65 72 2D 39 37 30 38 32 - Похоже, хорошие данные

00 0D - Null, возврат каретки… хорошо, но у других есть 00 0C

73 74 61 67 69 6E 67 2D 73 70 65 6E 64 - хорошие данные («постановка-затраты»)

00 00 00 26 - Я думаю, это конец строки плюс раздел, и в этом случае 00 00 обозначает конец строки??

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


  • Возможный дубликат Kafka 0.8.2.1 как читать из темы __consumer_offsets 21.07.2018
  • Понизить голосование и обмануть, когда вы даже не понимаете вопроса? Я хочу сделать именно то, что я сказал. Учитывая байты, мне нужны строковые данные. Я использую python, и строковые + числовые (короткие, целые и длинные) данные были маршалированы в scala. Общая картина такова, что мне нужен потребитель, который отслеживает других потребителей на предмет их отставания. Рад услышать мнение по этому поводу, но исходный вопрос все еще остается. Ваше здоровье 21.07.2018
  • Если вы умеете читать Scala, то этот форматтер полностью открыт. Я проголосовал против отсутствия исследований github.com/apache/kafka/blob/trunk/core/src/main/scala/kafka/ 21.07.2018
  • Не имеет значения, сериализованы ли данные в Scala. Вы можете получить объект bytes в python 21.07.2018
  • Так как вы кажетесь таким прилежным, я добавлю кровавые подробности, и, возможно, вы сможете взглянуть =) 21.07.2018
  • Лично я бы предложил использовать обычный консольный потребитель из этого ответа, а затем передать вывод в программу Python для чтения простого строкового текста. Тогда вам не нужны никакие библиотеки Python Kafka. 21.07.2018
  • Отлично. Давайте пока остановимся на заданном вопросе. 21.07.2018
  • Ну, для начала, 00 01 — это версия, так как это короткое целое, это два байта. 21.07.2018
  • Здесь я согласен с тем, что средство форматирования Scala не творит чудес. Вопрос здесь, похоже, заключается в том, чтобы попросить кого-то еще отладить перевод Scala на python. Решение с использованием потребителя консоли и конвейерного вывода на python не позволяет вам заново изобретать средство форматирования, но вы все равно можете использовать python. 22.07.2018
  • Вам удалось разобраться? 13.01.2021

Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..