Home
Softono

Fake Data Pipeline

Open source Scala
12
Stars
5
Forks
0
Issues
1
Watchers
3 years
Last Commit

 About Fake Data Pipeline

Data Generators -> Kafka -> Spark Streaming -> PostgreSQL -> Grafana

Platforms

Web Self-hosted Docker

Languages

Scala

Links

Need Help Installing Fake Data Pipeline?

We provide expert installation service for this software. Our team will install, configure, and secure Fake Data Pipeline on your server. plans start at just $30.

Fake Data Pipeline

View on GitHub

fake-data-pipeline

Data Generators -> Kafka -> Spark Streaming -> PostgreSQL -> Grafana fake-data-pipleine

1. fake data -> Kafka

2. Spark Structured Streaming -> PostgreSQL

  • iot, words, bike 토픽을 구독하고 처리함
  • 5초마다 토픽별로 필터링, 집계 및 timestamp관련 작업(for 실시간 시각화)을 한 후 PostgreSQL의 pipeline_db로 적재.
  • StreamHandler.scala

3. Grafana

  • PostgreSQL에 담겨지는 데이터들을 시각화

IOT Dashboard IOT_Dashboard

Words Dashboard Words_Dashboard

Bike Dashboard Bike_Dashboard


한번 해보기

Docker & docker-compose로 작성했으므로 간단히 실행해보자.
Dockerfile 링크: Docker Images repo

1. git clone

git clone https://github.com/JHLeeeMe/fake-data-pipeline.git

2. Run docker-compose

cd fake-data-pipeline && docker-compose up -d

# Check
docker-compose ps

여기까지하면 아래와 같은 컨테이너가 실행된다.

Spark: master(10.0.0.10), slave-1, slave-2, slave-3 (10.0.0.11 ~ 10.0.0.13)
Kafka: kafka-single-node(10.0.0.30)
PostgreSQL: postgresql(10.0.0.40)
Grafana: grafana(10.0.0.50)

3. Run data-generators

master container에서 python script들을 실행하자.

docker exec -it master /bin/bash

# master container
master$ cd ~/fake-data-pipeline
master$ pip3 install -r requirements.txt
master$ python3 data-generators/iot_devices.py <home || seoul>

작성한 스크립트가 데몬실행에 적절하지 않음.
그러므로 3개의 콘솔창에 각 docker master로 접근해서 실행하면 된다.
아니면 스크립트 수정하자.
e.g. python-scripts

4. Run spark-submit

3번 과정에 의해 fake 데이터들이 iot, words 토픽으로 보내지는 중
StreamHandler를 실행시켜 데이터를 정제 후 PostgreSQL로 저장.
spark-submit 실행 스크립트를 만들어두었다.

docker exec -it master /bin/bash

# master container
master$ cd /root/fake-data-pipeline/StreamHandler
master$ ./run-spark-submit.sh

5. Grafana로 시각화

웹 브라우저를 켜고 localhost:3000로 접속
(초기 id: admin, password: admin)
data source를 postgresql로 만들고 시각화

위 스크린샷에서 보여지는 대쉬보드는 grafana/dashboards에 올려둠
import해서 쓰면 될것이다. (이것까지 자동화해서 작성할 수 있어보이던데 귀찮아서 더 안찾아봄...)