티스토리 뷰

오늘은 정말 삽질을 많이했다.

Kafka Connect를 설치하기 위해서는 confluent 라는 어플리케이션을 받아야합니다.

정석적인 방식은 다음과 같습니다.

저는 이렇게 실행했을때 오류가 발생해 정말 오랜시간 동안 삽질을 했습니다.

그래도 제가 아닌 여러분들은 성공할 수 도 있으니 정석적인 루트를 알려드리겠습니다.

#cmd 환경에서의 설치 (Windows)

#Confluent 패키지 설치

curl -O http://packages.confluent.io/archive/6.1/confluent-community-6.1.0.tar.gz

#패키지 압축 해제

tar xvf confluent-community-6.1.0.tar.gz

#해당 폴더로 이동

cd confluent-community-6.1.0

#실행 커맨드

.\bin\windows\connect-distributed.bat .\etc\kafka\connect-distributed.properties

 이렇게 하면 Class와 관련한 오류가 출력됩니다. 해당 오류를 방지하기 위해 작업을 하나 해야합니다.

해당 문구를 

~confluent-6.1.0\bin\windows\kafka-run-class.bat에 추가해줘야합니다.

  for core라고 끝나는 지점 바로 위에 생성해주면 됩니다. 아래와 같은 위치입니다. 95행 근처

빠른 오류해결: 해당 코드의 문제점은 공백이 들어가 있습니다. 그림이랑은 다르게 * ( 로 바꿔주세요!

rem Classpath addition for LSB style path
if exist %BASE_DIR%\share\java\kafka\*(
	call:concat %BASE_DIR%\share\java\kafka\*
)

그 뒤에 실행을 하면 오류가 사라지고 바로 jar작업을 하면 되는 거였는데 다음과 같은 에러가 떴습니다.

 

마지막은 화가나서 막갈겼어요

 

명령 구문이 올바르지 않습니다만 주구장창 나왔습니다. 그러다 잘 구현되어있는 파일이 있길래 실행시켜보니 에러는 없었습니다.사실 Error는 문제가 아닌데, 실행자체가 안되니 에러내용을 알 수가 없으니 답답할 지경이었습니다. 그래서 완성코드와 어떻게 다른지 확인해봤습니다.

일단 변경해야되는 점이 kafka-run-class.bat이라는 점에 주목했습니다.

#제가 작성한 Code

#받아온 Code

여러분 차이점이 보이시나요?

맞습니다 위에 있는 코드에 공백이 있었습니다.

ㅋㅋ

후에 나름대로 알아본 결과 해당 값에 공백이 있으면 cmd에서 인식을 못하는 거 같습니다. 

삽질을 할때마다 느끼는 것이지만, 항상 사소한 실수로 인한 오류가 더 많은것 같네요. 하지만 긍정적으로 살펴보면 또 이런 문제가 발생하면, 빠르게 처리 할 수 있을 것 같네요.

그리고 Propertie파일을 조금 수정해야 합니다.위치는 [Confluent 설치 폴더]/etc/kafka/connect-distributed.properties 입니다.다음과 같은 위치에 아래의 정보를 추가해줍니다. 마찬가지로plugin.path=[설치폴더]\\lib 라는 값을 넣어줍니다.


#jar파일 가져오기

해당하는 Jar파일을 복사해 가져와야 합니다. 일반적으로 jar file은 .m2 폴더에 있는데, 해당 폴더는

User/사용자명/.m2 위치에 있습니다. 해당 폴더에서

repository > org > mariadb > jdbc > mariadb-java-client > 2.7.2 

위치에 있는 파일을 끌어오면 됩니다.

mariadb-java-client-2.7.2.jar 파일을 복사합니다.

 

다음으로는 

[Confluent 설치 폴더]/share/java/kafka 폴더안에 붙혀넣기 해주시면 됩니다.

 

그럼 다시 실행해볼까요?

하하... 그래도 괜찮습니다. 이번 에러는 원인을 알 수 있으니까요

C:\Users\user\confluent\config\tools-log4j.properties (지정된 경로를 찾을 수 없습니다)

라는게 핵심인데 해당 폴더를 먼저 참조찾아보겠습니다. 

아무리 찾아도 보이지 않아서 해당 파일을 찾아봤습니다. 

해당 파일도 마찬가지로 etc/kafka 내부에 있었습니다. 해당 파일을 복사해서 지정된경로를 하나 만들어줄 예정입니다.

 


#TEST

이제 설치는 끝났으니, 실제로 Connect를 사용하려 합니다.

먼저 기존에 Kafka가 설치된 폴더로 이동해주세요. 

다음으로는 먼저 Zookeeper-Server와 Kafka-Server를 기동시켜주세요.

Kafka가 설치되어 있는 폴더로 이동하셔야합니다! Confluent 폴더에서 실행시키면 안돼요

./bin/windows/zookeeper-server-start.bat ./config/zookeeper.properties
./bin/windows/kafka-server-start.bat ./config/server.properties

 

그리고 토픽명을 먼저 확인하는 작업을 하겠습니다.

 

./bin/windows/kafka-topics.bat --bootstrap-server localhost:9092 --list

따로 추가하신게 없다면 아마 기존에 만들어뒀던 Topic 들만 있을거에요

다음으로는 다시 connect를 실행시키도록 할게요.

.\bin\windows\connect-distributed.bat .\etc\kafka\connect-distributed.properties

다시 리스트를 참조해주시면 이렇게 토픽수가 증가한것을 확인 할 수 있습니다.

만약 여기까지 잘 출력이 된다면, 정상적으로 Kafka-Connect가 실행중이라는 것을 알 수 있습니다! 해당 Topic들은 Connect가 정상적으로 실행중이라면, 자동적으로 생성해주는 토픽이거든요!


#JDBC Connector 설치

먼저 아래의 URL로 접속을 해줍니다.

https://docs.confluent.io/kafka-connect-jdbc/current/index.html

 

JDBC Connector (Source and Sink) for Confluent Platform | Confluent Documentation

The JDBC Source and Sink connectors use the Java Database Connectivity (JDBC) API that enables applications to connect to and use a wide range of database systems. In order for this to work, the connectors must have a JDBC driver for the particular databas

docs.confluent.io

그리고 저희는 ZIP파일 형태로 받을 것이기 때문에 아래의 항목을 클릭해주세요.

다음으로는 Download버튼을 눌러 다운로드를 진행해줍니다.

 

다음으로는 압축해제된 파일을 원하는 위치에 둔 뒤에 마지막으로 해당 경로값을 복사합니다. 

아래의 제 기준 경로 값입니다.

D:\confluentinc-kafka-connect-jdbc-10.4.1\confluentinc-kafka-connect-jdbc-10.4.1

그리고 해당 경로값을 Properties에 추가해줄건데, Confluent가 설치된 폴더안에 etc/kafka 위치에로 이동해주세요.

[Confluent 설치위치]\etc\kafka

그리고 아래와 같이 plugin-path를 복사한 값으로 붙혀넣어줍니다.

한가지 주의해야될점은, 주소 시작시 맨앞에 \를 넣어줘야합니다.

그리고 백슬래쉬 두개처리 잊지 말아주세요! 마지막으로 Connector를 재실행시키고 POST-MAN에 다음과 같은 URL을 SEND해줍니다.  

http://localhost:8083/connector-plugins

JDBC Connector가 정상적으로 출력된다면 성공입니다.

감사합니다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함