Kafka Connect - отсутствует текст - PullRequest
0 голосов
/ 14 марта 2019

Kafka Версия: 2.12-2.1.1

Я создал очень простой пример создания соединителя источника и приемника с помощью следующих команд:

bin\windows\connect-standalone.bat config\connect-standalone.properties config\connect-file-source.properties config\connect-file-sink.properties

Имя исходного файла: text_2.txt

Имя файла приемника: test.sink_2.txt

Используется тема с именем " connect-test-2 ", и я создал в PowerShell потребитель для отображениярезультат.

Отлично работает с первого раза.Однако после того, как я перезагружаю свою машину и начинаю все заново.Я обнаружил, что какой-то текст отсутствует.

Например, когда я печатаю следующие символы в файле test_2.txt и сохраняю их следующим образом:

HAHAHA..

missing again
some text are missing

I am able to enter text
first letter is missing

testing testing. 

Окна результатов (Потребитель) иФайл-приемник показывает следующее:

Value shows in consumer

Value shows in Sink File

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

[Добавлена ​​информация ниже]

connect-file-source.properties

name=local-file-source
connector.class=FileStreamSource
tasks.max=1
file=test_2.txt
topic=connect-test-2

connect-file-sink.properties

name=local-file-sink
connector.class=FileStreamSink
tasks.max=1
file=test.sink_2.txt
topics=connect-test-2

1 Ответ

0 голосов
/ 14 марта 2019

Я думаю, что странное поведение вызвано тем, как вы изменяете файл приемника (text_2.txt).

Как вы применили изменения после остановки соединителя:

  • Использование какого-либо редактора <- <strong>Я думаю, вы используете этот метод
  • Добавлять только новые символы в конец файла

FileStreamSource отслеживать изменения в зависимости от позиции в файле. Вы используете Kafka Connect в автономном режиме, поэтому текущая позиция записывается в файл /tmp/connect.offsets.

Если вы изменили исходный файл с помощью редактора, все содержимое файла было изменено. Однако FileStreamSource проверяет только, имеет ли размер изменение и запрашивает ли символы, смещение которых в файле больше, чем в последний раз обрабатывалось Соединителем.

Вы должны изменять исходный файл только путем добавления новых символов в конец файла

...