yeollow / return-home-safely

Apache License 2.0
1 stars 0 forks source link

Bigdata pipelining / Spring Batch

우선 Bigdata pipelining과정은 아래와 같으며, Spring Batch 의 실행으로부터 일어난다.
Spring Batch 과정은 job 을 기본단위로 실행하며 각 job 은 아래와 같은 구조를 가지는 하나의 tasklet 즉, step 을 단위로 실행된다.


이후 kafkahadoop 과 연동된 fluentd plugin 을 통해 hadoop HDFSkafka topic data 를 저장한 뒤, Spark 를 통해 MR작업을 거쳐 원하는 data schema형태의 dataFrame을 얻어 MySQL 에 table형태로 저장하는 과정을 거친다.


Spring API Server

위와 같이 Spring BatchBigdata pipelining 과정을 거쳐 MySQL 에 table형태로 저장된 성격 별 공공데이터를 통해 사용자의 요청에 따라 조회 후 반환하며 기본적으로 Spring MVC pattern 을 따른다.


또한 Nginx WS를 구축하여 HTTP 기본 포트인 80을 reverse proxy한다.

GeoHash : geographic location을 문자와 숫자로 이루어진 짧은 String형태로 반환하여 공간을 사각형으로 분할하는 계층적인 공간 데이터 구조로 나눈다. GeoHash내용 참조

프로젝트 보완 사항

결과적으로 geoHash관련 부분은 Redis가 제공한다고 하니, Spring Redis연동으로 구현해본다. 해당 Application을 monolothic architecture가 아닌, docker / kubernetes를 활용한 cloud native 환경에 걸맞는 MSA구조로의 변환을 염두해본다.