2023-03-17

강혜성·2023년 4월 20일
0

분산처리

목록 보기
8/18

kafka

  1. kafka 진입
    docker exec -it kafka bash

  2. apt 최신화 apt-get update, sudo 설치 apt-get install sudo

    • 초기 진입 시 root이기 때문에 sudo는 필요없지만 sudo 명령어를 복사해서 바로 쓰기 위해서 sudo 설치함
  3. zookeeper 실행/opt/kafka_2.13-2.8.1/bin/zookeeper-server-start.sh /opt/kafka_2.13-2.8.1/config/zookeeper.properties => tab 이름 ZK

  4. kafka 토픽 확인. 최초 확인 시 Topic 없음. tweets 토픽 생성 후 topic 확인 시 topci 확인 가능

root@53642356f28f:/# /opt/kafka_2.13-2.8.1/bin/kafka-topics.sh --list --bootstrap-server localhost:9092

root@53642356f28f:/# /opt/kafka_2.13-2.8.1/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 \
> --replication-factor 1 \
> --partitions 1 \
> --topic tweets
Created topic tweets.
root@53642356f28f:/# /opt/kafka_2.13-2.8.1/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
tweets
root@53642356f28f:/#

kafka producer / consumer 확인

  • 윈도우 터미널 탭 2개로 진행

  • Producer Tab에 다음 명령어 수행
    /opt/kafka_2.13-2.8.1/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic tweets

  • consumber Tab에 다음 명령어 수행
    /opt/kafka_2.13-2.8.1/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic tweets

  • Producer Tab에 hello 입력

  • Consumer Tab에 hello 출력 확인

Python - Kafak

  • kafka 도커에서 수행
  1. python3 설치 sudo apt install python3
  2. python3-pip 설치 sudo apt install python3-pip
  3. kafka-python 설치 pip3 install kafka-python
    • kafka-python 설치 확인
      1. python3 실행 python3
      1. import kafka 실행
    • 에러가 없으면 정상 설치 완료
  4. git 설치 sudo apt-get install git
  5. git clone git clone https://github.com/dbusteed/kafka-spark-streaming-example
  6. 실행 권한 추가
    • chmod +x fake_tweet_stream.py
    • chmod +x transformer.py
    • chmod +x tweet_stream.py
  7. words 파일 생성 vim words (경로 pwd 명령어로 사용 : /kafka-spark-streaming-example/files)
# 파일 내용
sdafjlsdhaflksadjfhkasdjfhl
sadfjhasdfksdhafkjsadfh
dsfhksadfjhsadkfjhsadkf
sdafkjsadfhkjsadfhkjsghiuwehkjvzxcj
weafuvbkcjzkcxjvb
  1. vim fake_tweet_stream.py word 파일 경로 수정
# 파일 내용 변경
WORD_FILE = '/kafka-spark-streaming-example/files/words'

9 server.properties - advertiesd.host.name 수정 vim /opt/kafka_2.13-2.8.1/config/server.properties

# 아래 내용 추가/수정
...
listeners=PLAINTEXT://172.19.0.15:9092
...
advertiesd.host.name=자신의호스트주소

Spark

  1. spark-zeppelin 진입 docker exec -it spark-zeppelin bahs
  2. pip3 install pyspark 파이스파크 설치
  3. pyspark 실행 (ctrl + d 로 exit)
  4. pyspark 버전에 맞게 설정 pip3 install pyspark==3.0.0
  5. python-kafka 설치 pip3 install kafka-python
AnalysisException: Failed to find data source: kafka. Please deploy the application as per the deployment section of "Structured Streaming + Kafka Integration Guide".;
오류 발생시 아래 명령어 실행

spark-submit --packages org.apache.spark:spark-sql-kafka-0-10_2.12:3.0.0 my_kafka_spark_app.py
또는
spark-shell --packages org.apache.spark:spark-sql-kafka-0-10_2.12:3.0.0

`

0개의 댓글