본문 바로가기
SingleStoreDB/엔지니어링

SingleStore, Apache Spark 연동 실습 - Count 예제

by 에이플랫폼 [Team SingleStore Korea] 2019. 7. 25.

정확히 한 번 시맨틱(exactly-once semantics)을 가진 운영 유연성(operational flexibility)을 위해 Kafka, Spark, SingleStore Pipeline 및 Stored procedures를 사용하십시오.

 

Prerequisites

이 실습을 완료하려면 환경이 다음 전제 조건을 충족해야합니다.

운영 체제 : Mac OS X 또는 Linux

SingleStore(MemSQL) : Version 6.0 이상

Spark : spark-2.4.3-bin-hadoop2.7

SBT : Version 1.2.8

파트 1 : SingleStore 데이터베이스, 테이블 및 데이터 생성

SingleStore에서 다음과 같이 데이터베이스 및 테이블을 생성하고 데이터를 입력합니다.

CREATE DATABASE quickstart_kafka;
USE quickstart_kafka;
CREATE TABLE sensor_data_table(id text);

INSERT INTO sensor_data_table(id)
VALUES('sensor1');

파트 2 : SBT 프로젝트 생성

다음과 같이 파일을 생성합니다.

./build.sbt

name := "Simple Project"

version := "1.0"

scalaVersion := "2.11.8"

libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.4.3"
libraryDependencies += "com.memsql" %% "memsql-connector" % "2.0.7"

./src/main/scala/SimpleApp.scala

(하단의 SingleStore 정보는 자신의 환경에 맞게 수정합니다.)

import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession


object SimpleApp {
  def main(args: Array[String]) {

    val conf = new SparkConf()
            .setAppName("MemSQL Spark Connector Example")
            .set("spark.memsql.host", "192.168.0.198")
            .set("spark.memsql.password", "")
            .set("spark.memsql.defaultDatabase", "quickstart_kafka")
            .set("spark.master", "local")

    val spark = SparkSession.builder.config(conf).getOrCreate()

    val sensorDataFromQuickstartKafka = spark
            .read
            .format("com.memsql.spark.connector")
            .options(Map("path" -> ("quickstart_kafka.sensor_data_table")))
            .load()
    // sensorDataFromQuickstartKafka is now a Spark DataFrame which represents the specified MemSQL table
    // and can be queried using Spark DataFrame query functions

    // count the number of rows
    println(s"The number of sensors from Kafka is ${sensorDataFromQuickstartKafka.count()}")

    // print out the DataFrame
    sensorDataFromQuickstartKafka.show()

  }
}

파트 3 : SBT 프로젝트 컴파일 및 실행

다음 줄을 입력하고 Enter 키를 누릅니다.

$ sbt run

다음과 같이 출력되면 성공한 것 입니다.

...
The number of sensors from Kafka is 1
...
[success] Total time: 21 s, completed Jul 25, 2019 2:03:16 AM
...

- SingleStore 공식 문서

출처: https://docs.singlestore.com/v7.1/third-party-integrations/spark-3-connector/

 

Connecting to Spark

Apache Spark is an open-source data processing framework. Spark excels at iterative computation and includes numerous libraries for statistical analysis, graph computations, and machine learning. The SingleStore Spark Connector allows you to connect your S

docs.singlestore.com

 

※ www.a-platform.biz | info@a-platform.biz