January
13th,
2022
오늘의 나보다 성장한 내일의 나를 위해…
현재 Inflearn의 MSA 강의를 듣던 중 생긴 에러에 대한 해결책을 적어보려 한다. 일단 내 컴퓨터는 윈도우지만 리눅스 명령어를 쓰는 게 편했기 때문에 PowerShell이나 Cmd로 학습하기 보다는
Window Wsl Ubuntu을 사용해서 실습을 진행하였다.
실습 도중 아래와 같은 에러가 발생했다.
{
"error_code": 500,
"message": "Failed to find any class that implements Connector and which name matches io.confluent.connect.jdbc.JdbcSourceConnector, available connectors are: PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSinkConnector, name='org.apache.kafka.connect.file.FileStreamSinkConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=sink, typeName='sink', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSourceConnector, name='org.apache.kafka.connect.file.FileStreamSourceConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.mirror.MirrorCheckpointConnector, name='org.apache.kafka.connect.mirror.MirrorCheckpointConnector', version='1', encodedVersion=1, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.mirror.MirrorHeartbeatConnector, name='org.apache.kafka.connect.mirror.MirrorHeartbeatConnector', version='1', encodedVersion=1, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.mirror.MirrorSourceConnector, name='org.apache.kafka.connect.mirror.MirrorSourceConnector', version='1', encodedVersion=1, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockConnector, name='org.apache.kafka.connect.tools.MockConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=connector, typeName='connector', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockSinkConnector, name='org.apache.kafka.connect.tools.MockSinkConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=sink, typeName='sink', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockSourceConnector, name='org.apache.kafka.connect.tools.MockSourceConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.SchemaSourceConnector, name='org.apache.kafka.connect.tools.SchemaSourceConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSinkConnector, name='org.apache.kafka.connect.tools.VerifiableSinkConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSourceConnector, name='org.apache.kafka.connect.tools.VerifiableSourceConnector', version='6.1.0-ccs', encodedVersion=6.1.0-ccs, type=source, typeName='source', location='classpath'}"
}
분명 connect-distributed.properties에다가 제대로 경로를 지정해준 것 같은데 왜 이런 문제가 발생할까?
Connector의 경로를 지정해줄 때 2가지 방법이 있다.
1) confluent-6.1.0/etc/kafka 아래 있는 connect-distributed.properties에 들어가서 아래 처럼 경로를 수정하는 것이다.
2) kafka_2.13-3.0.0/config 아래 있는 connect-distributed.properties에 plugin.path를 아래 사진과 같이 수정해주는 것이다
사실상 위의 2 방법 중 하나만 수정하면 된다. 문제는 내가 /home를 빼먹고 써서 안됐던 것이였다… 결국 양쪽 connect-distributed-properties를 다 똑같이 수정해 주었는데 한쪽만 해도 될 것 같다.(시도는 안 해봄)
주의할 것은 source-sink 서버를 구동하기 전에 먼저 실행해야 하는 것들이 있다.
Zookeeper Server -> Kafka Server
이렇게 쥬키퍼 서버를 키고 카프카 서버를 킨다음 구동을 해야 된다