빅데이터

[빅데이터] 카프카(kafka) 설치 및 사용

allempty_sheep 2024. 6. 11. 16:10
반응형
🎁 본 글은 실무로 '배우는 빅데이터기술' 책을 따라해보고 실행하여보는 과정을 기록한 글이다.

🎁 빅데이터 처리의 전체적인 흐름과 과정을 학습하기 쉬우며 빅데이터에 관심있는 사람들에게 추천한다.

 

저번 플럼 설치에 이어 카프카를 추가 설치 해 줄 것이다.

클러스터 서비스 추가에 들어가 카프카를 선택 해 준다.

 

카프카 선택
server02 선택 다른 두개를 설치하지 않는다.

 

해당페이지는 따로 설정 없이 넘어간다.
끝난 후 계속 클릭.

 

완료 되면 카프카가 설치 된 것을 확인 할 수 있다.

 

 

카프카 - 구성으로 들어가서 

data retention 을 입력한다.

15분으로 수정 후 변경 내역을 저장한다.

 

 

flume - 구성

Agent 이름을 설정.

 

 

구성 파일의 내용을 모두 삭제

 

파일의 내용을 복사하여 구성 파일 내용에 넣어준다.

 

변경 내용을 저장한후 kafka topic을 생성 해보자. server02 에서 실행한다.

서버 파일에 이미 토픽이 있다고 뜰 것이다.

kafka-topics --create --zookeeper server02.hadoop.com:2181 --replication-factor 1 --partitions 1 --topic SmartCar-Topic

 

server02에서 카프카 프로듀서를 실행 해보자 (메세지 전송)

kafka-console-producer --broker-list server02.hadoop.com:9092 --topic SmartCar-Topic

 

위와 같이 커서가 나와있을 것인데 여기에 'hello bigdata'를 입력 해본다.

 

다른 프롬프트에서 다음을 입력 해본다. (메세지 출력)

kafka-console-consumer --bootstrap-server server02.hadoop.com:9092 --topic SmartCar-Topic --partition 0 --from-beginning

보낸 데이터가 나오는 것을 볼 수 있다.

 

 

빅데이터 수집 종합 테스트
1.SmartCar 로그 생성

 

첫번째 터미널

cd /home/pilot-pjt/working
java -cp bigdata.smartcar.loggen-1.0.jar com.wikibook.bigdata.smartcar.loggen.DriverLogMain 20240610 3 &
java -cp bigdata.smartcar.loggen-1.0.jar com.wikibook.bigdata.smartcar.loggen.DriverLogMain 20240610 3

 

두번째 터미널에서 데이터가 제대로 만들어지고 있는지 확인

cd /home/pilot-pjt/working/SmartCar
20240607022634,O0003,2,0,F,N,86,B09

cd /home/pilot-pjt/working/driver-realtime-log
tail -f SmartCarDriverInfo.log

 

생성된 데이터를 플럼이 인지하는 디렉토리로 복사

mv /home/pilot-pjt/working/SmartCar/SmartCarStatusInfo_20240610.txt /home/pilot-pjt/working/car-batch-log

ls -al /home/pilot-pjt/working/car-batch-log


2.flume 재시작

플럼 재시작.

플럼(수집) -> 카프카(전송) -> 토픽으로 데이터를 보낸다.


3.kafka 동작여부 확인

tail -f /var/log/flume-ng/flume-cmf-flume-AGENT-server02.hadoop.com.log

 

kafka topic 확인

kafka-console-consumer --bootstrap-server server02.hadoop.com:9092 --topic SmartCar-Topic --partition 0

 

실행중 시뮬레이터 중지

pid 에는 프로세스 숫자를 넣어준다.

ps -ef | grep smartcar.log
kill -9 pid pid