paust-team / paust-db

GNU General Public License v3.0
6 stars 5 forks source link

Set up distributed time series system using kafka and flink #166

Open kwjooo opened 5 years ago

kwjooo commented 5 years ago

Reference https://github.com/paust-team/paust-db/issues/165#issuecomment-483105956 본 이슈의 목적은 기존 distributed system의 분산 처리 방식에 대한 이해를 높여 distributed와 decentralized의 교집합을 찾기 위함

flink가 대용량 streaming 데이터 처리를 하는 방식에 대한 이해를 위해 직접 구축하고 기능 확인 및 동작 원리 분석

kwjooo commented 5 years ago

kafka와 zookeeper setting 후 flink-kafka connect api를 이용해 flink producer가 kafka에 message를 쓰고 flink reader kafka로 부터 data를 얻고 단순한 operation을 하여 stdout하는 program을 구축함

kwjooo commented 5 years ago

flink는 source -> map() -> keyBy(), window(), apply() -> sink 구조로 streaming이 처리되며 keyby()를 통해 stateful operation과 partitioning 및 distributing을 달성하고 window()를 통해 unbounded stream을 time window 설정할 수 있으며 apply를 통해 operation이 가능하다. flink에서 중요한 부분은 flink에서 fault를 대처하는 방식인 checkpoint for fault tolerance라 볼 수 있는데 이는 stream replay와 checkpoint를 통해 달성한다. 자세한 내용은 여기에 있으며 더 조사가 필요하나 jayden이 이를 research하고 있으므로 조사를 그만두고 zookeeper에 집중하려 한다.

kwjooo commented 5 years ago

flink 정리 링크 https://www.notion.so/Flink-7f52e3f5d53146cb9bcf4751ffc9888b