인프런 커뮤니티 질문&답변

emlookstudy님의 프로필 이미지

작성한 질문수

카프카 완벽 가이드 - 커넥트(Connect) 편

커넥트 스타트시 오류

작성

·

573

·

수정됨

0

안녕하세요! 선생님 강의 잘 듣고 있습니다.

다름이 아니라

커넥트 내부 토픽이해 - connect0offsets, connect-status, connect-config 강의 실습 중

spool 커넥터를 띄워놓고 spooldir csv 메세지 보내는 과정에서

커넥터가 정상 작동을 안하는 것 같아

이부분을 반복했더니 커넥트 기동중 spool 커넥터에 에러가 잡히는데 혹시 해결방안 여쭤봐도 될까요 ?

 

 

커넥트 기동시 뜨는 에러 로그입니다. path annotation 이 비었다고 하는 것같은데 새로 지정을 어디서 해야 할까요?

org.apache.kafka.connect.errors.ConnectException: Failed to start connector: csv_spooldir_source
        at org.apache.kafka.connect.runtime.distributed.DistributedHerder.lambda$startConnector$25(DistributedHerder.java:1461)
        at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:334)
        at org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140)
        at org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.apache.kafka.connect.errors.ConnectException: Failed to transition connector csv_spooldir_source to state STARTED
        ... 8 more
Caused by: java.lang.IllegalStateException: Could not find any input file(s) to infer schema from.
        at com.google.common.base.Preconditions.checkState(Preconditions.java:510)
        at com.github.jcustenborder.kafka.connect.spooldir.AbstractSpoolDirSourceConnector.start(AbstractSpoolDirSourceConnector.java:63)
        at org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:184)
        at org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:209)
        at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:348)
        at org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:331)
        ... 7 more
3월 08, 2023 1:54:32 오후 org.glassfish.jersey.internal.Errors logErrors
경고: The following warnings have been detected: WARNING: The (sub)resource method listLoggers in org.apache.kafka.connect.runtime.rest.resources.LoggingResource contains empty path annotation.
WARNING: The (sub)resource method createConnector in org.apache.kafka.connect.runtime.rest.resources.ConnectorsResource contains empty path annotation.
WARNING: The (sub)resource method listConnectors in org.apache.kafka.connect.runtime.rest.resources.ConnectorsResource contains empty path annotation.
WARNING: The (sub)resource method listConnectorPlugins in org.apache.kafka.connect.runtime.rest.resources.ConnectorPluginsResource contains empty path annotation.
WARNING: The (sub)resource method serverInfo in org.apache.kafka.connect.runtime.rest.resources.RootResource contains empty path annotation.

[2023-03-08 13:54:32,670] INFO Started o.e.j.s.ServletContextHandler@1e253c9d{/,null,AVAILABLE} (org.eclipse.jetty.server.handler.ContextHandler:915)
[2023-03-08 13:54:32,671] INFO REST resources initialized; server is started and ready to handle requests (org.apache.kafka.connect.runtime.rest.RestServer:303)
[2023-03-08 13:54:32,671] INFO Kafka Connect started (org.apache.kafka.connect.runtime.Connect:57)

min@min-VirtualBox:~$ curl -X GET http://localhost:8083/connectors/csv_spooldir_source/status | jq '.'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1375  100  1375    0     0   8647      0 --:--:-- --:--:-- --:--:--  8647
{
  "name": "csv_spooldir_source",
  "connector": {
    "state": "FAILED",
    "worker_id": "127.0.1.1:8083",
    "trace": "java.lang.IllegalStateException: Could not find any input file(s) to infer schema from.\n\tat com.google.common.base.Preconditions.checkState(Preconditions.java:510)\n\tat com.github.jcustenborder.kafka.connect.spooldir.AbstractSpoolDirSourceConnector.start(AbstractSpoolDirSourceConnector.java:63)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:184)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:209)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:348)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:331)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140)\n\tat org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base/java.lang.Thread.run(Thread.java:829)\n"
  },
  "tasks": [],
  "type": "source"
}

답변 1

1

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

음.. 먼저 아래 사항 확인 부탁드립니다.

  1. 처음부터 잘 안되는 건가요? 아님. 처음엔 잘 되었는데 다시 해보니 안되는 건가요?

  2. 강의 실습 환경대로 Ubuntu vm 기반에서 실습 하시는 건가요?

  3. spooldir_source.json 파일이 강의대로 인지, 아님 별도 변경을 하신 건가요?

  4. spooldir_source.json 설정에 있는 inputlpath, error.path, finished.path 대로 디렉토리가 만들어져 있는지요?

감사합니다.

emlookstudy님의 프로필 이미지
emlookstudy
질문자

  1. 네. 오류없이 정상 작동 됐었습니다. 이번 강 실습 도중 커넥터가 내려가있으면 다시 올려야 했는데 그 과정에서 delete 후 post 로 모르고 두세번 반복으로 했더니 저런 오류가 생겼습니다

  2. 네 모두 다 똑같이 설정후 진행했습니다.

  3. 강의대로 진행했습니다. 달라진것은 1번처럼 반복 curl 로 delete post 한 것 입니다.

min@min-VirtualBox:~/connector_configs$ ls
spooldir_source.json
min@min-VirtualBox:~/connector_configs$ vi spooldir_source.json
{
  "name": "csv_spooldir_source",
  "config": {
    "tasks.max": "3",
    "connector.class": "com.github.jcustenborder.kafka.connect.spooldir.SpoolDirCsvSourceConnector",
    "input.path": "/home/min/spool_test_dir",
    "input.file.pattern": "^.*\\.csv",
    "error.path": "/home/min/spool_test_dir/error",
    "finished.path": "/home/min/spool_test_dir/finished",
    "empty.poll.wait.ms": 30000,
    "halt.on.error": "false",
    "topic": "spooldir-test-topic",
    "csv.first.row.as.header": "true",
    "schema.generation.enabled": "true"
   }
}
~
~
~
~
~
~
"spooldir_source.json" 16 lines, 552 characters

 

  1. input.path,error.path, finished.path

min@min-VirtualBox:~/spool_test_dir$ pwd
/home/min/spool_test_dir
min@min-VirtualBox:~/spool_test_dir$ ls
error  finished

 

감사합니다.

 

권 철민님의 프로필 이미지
권 철민
지식공유자

그러니까, 최초에는 잘 되었는데, 이후에 안되었다는 거죠?

확인해 주신 것을 보니 특별히 이상 사항은 없군요.

일단 connect 와 kafka를 순서대로 재 기동하시고 spool_test_dir을 삭제후에 다시 만들어 주시고 다시 한번 connector를 post로 생성해 주십시요.

만약에 그래도 안되면 섹션 3에 보시면 <중요 - 스킵하지 마세요> Kafka 실습 환경 전체 초기화 하기 영상이 있습니다. 보시고 Kafka 실습 환경을 다시 한번 초기화 하시고 spooldir 커넥터 실습을 처음부터 다시 해보시기 바랍니다.

안되면 다시 글 부탁드립니다.