deploy spark application

28 March 2020

이전 시간에 만든 예제로 spark application을 실행하는 예제를 살펴보도록 하겠습니다.
예제에서 sbt package로 jar를 생성해주면, target/scala-2.11/spark_kafka_2.11-0.1.jar와 비슷한 위치,이름으로 jar가 생성되는 것을 확인할 수 있습니다.
해당 jar를 spark cluster로 복사해 아래와 같이 실행해줍니다.

./bin/spark-submit \
  --class org.shashaka.io.SparkKafkaProducer \
  --master local[8] \
  --packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.4.5 \
  ./spark_kafka_2.11-0.1.jar 
현재 docker내에서 spark를 실행하고 있기 때문에 cluster가 아닌 local로 실행을 시켜보도록 하겠습니다.
spark 기본 패키지 이외에 spark-sql-kafka가 필요하므로 위와 같이 package 옵션을 통해 추가하도록 합니다.
{"name":"Sandy Allen","duration":"2019","client_add":"Oliver House","result_code":"108","bytes":{"test":"3.48"}}
{"name":"Sally Whittaker","duration":"2018","client_add":"McCarren House","result_code":"312","bytes":{"test":"3.75"}}
{"name":"Jeff Smith","duration":"2018","client_add":"Prescott House","result_code":"17-D","bytes":{"test":"3.20"}}
{"name":"Belinda Jameson","duration":"2017","client_add":"Cushing House","result_code":"148","bytes":{"test":"3.52"}}
해당 application을 실행하면 위와 같이 연결된 kafka에 메세지가 전송되는 것을 확인할 수 있습니다.