대학생활/빅데이터

[Kafka] 영화 데이터 전달

celinayk 2024. 3. 19. 19:34
반응형

목표 : 영화 데이터를 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파일이 전송됨