Быстрый способ просмотра и управления данными, хранящимися в кафке? #isoBlue #isoBus - PullRequest
1 голос
/ 10 июля 2020

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

У меня есть следующие данные, которые содержат сообщения CAN как двоичные, и я хочу просматривать их как шестнадцатеричные strings

case-8010-wheat-ault-072018/
├── cleaner-offset-checkpoint
├── debug-0
│   ├── 00000000000000000000.index
│   ├── 00000000000000000000.log
│   ├── 00000000000000000000.timeindex
│   ├── 00000000000000006972.index
│   ├── 00000000000000006972.log
│   ├── 00000000000000006972.snapshot
│   ├── 00000000000000006972.timeindex
│   ├── 00000000000000079766.snapshot
│   └── leader-epoch-checkpoint
├── gps-0
│   ├── 00000000000000000000.index
│   ├── 00000000000000000000.log
│   ├── 00000000000000000000.timeindex
│   ├── 00000000000000003235.index
│   ├── 00000000000000003235.log
│   ├── 00000000000000003235.snapshot
│   ├── 00000000000000003235.timeindex
│   ├── 00000000000000029657.snapshot
│   └── leader-epoch-checkpoint
├── imp-0
│   ├── 00000000000000000000.index
│   ├── 00000000000000000000.log
│   ├── 00000000000000000000.timeindex
│   ├── 00000000000000004940.index
│   ├── 00000000000000004940.log
│   ├── 00000000000000004940.snapshot
│   ├── 00000000000000004940.timeindex
│   ├── 00000000000000915321.snapshot
│   └── leader-epoch-checkpoint

Источник данных предоставляет документы для использования данных, но, возможно, из-за несоответствия версии при использовании kafka_2.11-0.11.0.1.tgz шаги не выполняются. https://www.isoblue.org/docs/data.html

Пытаясь просмотреть данные напрямую, у меня есть:

1. Играл с kafka.tools.DumpLogSegments

./kafka-run-class.sh kafka.tools.DumpLogSegments --deep-iteration --print-data-log  --files ../../case-8010-wheat-ault-072018/imp-0/00000000000000004940.log | head -n 15

Я попытался изменить вывод DumpLogSegments, но данные выглядят не так, как ожидалось. ./kafka-run-class.sh kafka.tools.DumpLogSegments --deep-iteration --print-data-log --files ../../case-8010-wheat-ault-072018/imp-0/00000000000000004940.log | awk -F'payload:' '{print $2}' | awk -F'offset:' '{print $1}' | od -A n -t x1 | head -n 10

2. В настоящее время я пытаюсь написать коннектор источника файла на основе: https://docs.confluent.io/current/connect/devguide.html#connector -пример

1 Ответ

0 голосов
/ 23 июля 2020

Мне не удалось заставить KafkaConsumer работать с Python2 Kafka. Скрипты isoBlue у меня не работали.

1. отредактируйте $ KAFKA_HOME / config / server.properties log.dirs=<KAFKA_DATA>

2. zookeeper -server-start. sh $ KAFKA_HOME / config / zookeeper.properties

3. kafka-themes. sh --list --zookeeper localhost: 2181

4. kafka-server-start. sh $ KAFKA_HOME / config / server.properties

5. Использование Python3:

#!/usr/bin/env python3

from kafka import KafkaConsumer
import sys

try:

    bootstrap_servers = ['localhost:9092']
    topicName = 'tra'
    consumer = KafkaConsumer (topicName, group_id = 'can-test',bootstrap_servers = bootstrap_servers,auto_offset_reset='earliest');

    for message in consumer:
        wait = input("PRESS ENTER TO CONTINUE.")    
        print ("%s:%d:%d: key=%s value=%s" % (message.topic, message.partition,message.offset, message.key,message.value))
except KeyboardInterrupt:
    sys.exit()

6. Это действительно помогло мне посмотреть, работает ли сервер и есть ли данные.

watch -n 5 ls -alF <KAFKA_DATA> | head
watch -n 5 netstat -a | grep 9092
...