[Kafka] 영화 데이터 전달
목표 : 영화 데이터를 producer, consumer를 통해 주고 받기
1. zip, unzip 설치 경로는 [root@localhost ~]
yum install zip
yum install unzip
2. 영화 데이터 다운 [root@localhost ~]
wget 링크주소
3. unzip ml-latest-small.zip 으로 압축풀어준다
---------------------------------------------------------------------------------------------------
cd kafka/bin
[root@localhost bin]
1. ratings 토픽을 생성한다
2. cd .. 쳐서 [root@localhost kafka] 경로로 이동
3. 파이썬 설치
=> yum install python3 -y
4. pip3 install kafka-python
https://kafka-python.readthedocs.io/en/master/ 이 문서보고 코딩하면 됨
5. consumer 생성, 이름은 ratings
---------------------------------------------------------------------------------------------------
1. [root@localhost ml-latest-small] 경로에서 (/root/ml-latest-small)
2. vi ratings_producer.py 실행해서
from kafka import KafkaProducer
import json
import csv
producer = KafkaProducer(bootstrap_servers='localhost:9092',value_serializer=lambda v: json.dumps(v).encode('utf-8'))
with open("ratings.csv", "r") as f:
reader = csv.DictReader(f, delimiter=",")
for row in reader:
producer.send("ratings", row)
producer.flush()
이런식으로 문자 보내는거 입력하고 실행하면 consumer에 문자가 간다
vi창에서는 저 코드말고 걍 간단한 문자만 보냈고 vi창으로 하기 귀찮으니까 원격으로 vs code이용
--------------------------------------------------------------------------------------------------------------
1. vscode 실행하고, remote development설치한다
2. 검색창에 f1 눌러서 remote라고 검색 => Ssh config 파일 선택
3. 원격 서버 정보 입력 아이피, 포트 등등
4. 다시 remote-SSH:Connet to Host
연결 성공
/root 폴더 누르면 ratings_producer.py가 있음!
여기서 이제 코드 수정하면 됨
그리고 다시 xshell로 가서 python3 ratings_producer.py 누르면 consumer창에 ratings.csv파일이 전송됨