[一日30分 인생승리의 학습법]

Apache Beam, Apache Airflow, Apache Atlas 설명  

 

Apache Beam

Apache Beam은 data processing pipeline을 정의할 수 있는 오픈소스 프로그래밍 모델이다. Apache Beam은 배치 프로세싱과 스트리밍 프로세싱을 모두 지원한다. Beam에서 pipeline을 정의한 후, Beam이 지원하는 Runner들(Spark, Apex, Flink, Google Dataflow) 중 하나를 사용하여 데이터를 처리하는 방식으로 각각의 Runner들을 사용하는 방법을 몰라도 Beam만을 사용해서 데이터를 처리할 수 있다.

 

Apache Beam은 Dataflow model paper를 따라 개발되었다. 여기서 Dataflow Model이란, 제한이없고 정렬되지않은 데이터셋들을 처리하기 위한 데이터의 관리 및 처리 프레임워크이다. 최근에는 끝이 없는 데이터들이 실시간으로 쏟아져들어오기때문에 이를 효율적으로 처리할 방법이 필요해졌다. 많은 어플리케이션들이 순서대로 들어온 정보를 처리후에는 순서가 뒤엉킨채로 내보낸다. 이를 앞에서 소개한 Dataflow model paper는 해결하기 위한 방법을 제시하였다.

 

Apache Airflow ( Google Cloud Composer )

머신러닝의 경우 데이터 전처리 > 학습 > 배포 > 예측의 단계를 통해 진행된다. 이 경우, 이전의 output이 다음의 input이 되는데, 이를 효율적으로 관리하기 위한 툴이 Apache Airflow이다. Apache Airflow는 파이썬 기반으로 만들어졌기때문에 데이터분석을 하는 분들도 쉽게 코드를 사용할 수 있다.

 

간단한 작업의 경우 cron을 사용하여 수행할 수 있지만, 디버깅이 어렵고 만약 에러가 발생했을때 재실행시킨다던지 하는 작업이 힘든데, apache airflow는 그런 작업들을 쉽게 UI를 사용하여 처리할 수 있게 해준다.

 

Airflow는 스케쥴링, 매니징 역할을 할뿐 실제로 데이터를 처리하지는 못한다.

 

          Cons:

            - Additional DB/Redis/Rabbitmq for Celery

            - Not dependent on data. just task dependency

 

 

Apache Atlas

Apache Atlas는 open metadata management와 governance 기능을 제공하여 사용자가 data assets들을 분류하고 카탈로그를 만들수있게 도와준다. 주로 Atlas는 Hadoop과 함께 사용되며 메타데이터를 효과적으로 교환할 수 있도록 도와준다. data가 순차적으로 처리될때도 classification이 유지된다. Atlas를 사용하면 업계 표준 요구사항을 유지하는 데 큰 도움이된다.

 

Classify된 metadat를 검색하기 위해 Solr를 사용한다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

Apache Beam vs Apache Airflow

두 프레임워크는 모두 작업이 순차적으로 진행하도록 보장해준다. 하지만 세부적으로 보면 큰 차이점이 있다.

 

Airflow는 task management system으로 Directed Acyclic Graph(DAG)의 노드들이 순차적으로 실행되도록한다. 만약 A > B > C 로 이어진 DAG가 있다면, Airflow는 A가 작업을 마친 후에 B를 실행시키고, B의 작업이 모두 끝난 뒤에 C를 실행시킨다. 하지만 Beam은 dataflow engine으로써 A, B, C 노드를 모두 동시에 실행시키고 A의 결과물이 B로, B의 결과물이 C로 들어가도록 해준다.

 

Airflow는 각각의 노드(task)들이 어떤작업을 하는지 전혀 신경을 쓰지않는다. Airflow는 단지 이 작업이 끝났는지, 혹은 실패했는지만을 본다. 따라서 만약 다음 노드로 현재 노드의 작업물을 전달해주어야한다면, 프로그래머가 직접 local file system에 저장하던지, 외부 서비스를 사용하던지해서 저장 및 로드를 처리해주어야 한다. 하지만, Beam의 각각의 task는 엔진에서 지원하는 프로그래밍 언어를 사용하여 Beam process안에서 수행할 작업을 정의해주어야한다. Beam process외부에서 데이터를 처리하는 것은 매우 어렵거나 불가능하다(Beam을 사용하는 이유에 맞지않다). Beam은 데이터를 처리하는 엔진이므로 데이터를 어떻게 처리할지만 정의하고나면, 각각의 step(task)들 간의 데이터 전달은 신경써주지않아도 framwork가 전부 처리해준다.

 

Airflow는 그 자체로서 framwork이지만 Beam은 abstraction layer이다. Beam의 pipeline은 지원하는 runner들에게서 수행된다. Beam의 목표자체가 Beam만 배워서 여러가지의 backend들에서 실행할 수 있게하는 것이다.

 

- 가장 큰 차이점 중 하나는 Airflow는 하나의 단계가 끝난 후 다음 단계를 수행하는 방식이므로 data stream은 처리할 수 없다. stream은 끝나지 않기때문이다. Airflow의 공식 홈페이지에도 "Airflow는 data stream을 처리하기 위한 솔루션"이 아니다라고 명시되어있다.

(참고: https://stackoverflow.com/questions/50249759/apache-airflow-or-apache-beam-for-data-processing-and-job-scheduling)



출처: https://jomuljomul.tistory.com/entry/Apache-Beam-Apache-Airflow-Apache-Atlas-설명 [준수의_개발정리노트]

 

 

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1035 [一日30分 인생승리의 학습법] [Tensorflow] Serving이용하여 REST API 만들기 file 졸리운_곰 2021.08.07 13
1034 [一日30分 인생승리의 학습법] Amazon SageMaker는 처음이지? 누워서 머신러닝 학습부터 배포까지 file 졸리운_곰 2021.08.05 31
1033 [一日30分 인생승리의 학습법] Apache Beam (Dataflow)를 이용하여, 이미지 파일을 tfrecord로 컨버팅 하기 file 졸리운_곰 2021.08.04 4
1032 [一日30分 인생승리의 학습법] [GCP] Apache Beam 사용하기 file 졸리운_곰 2021.08.04 5
» [一日30分 인생승리의 학습법] Apache Beam, Apache Airflow, Apache Atlas 설명 졸리운_곰 2021.08.04 8
1030 [一日30分 인생승리의 학습법] 블레이저 웹어셈블리 (web assembly, WASM_ Awesome Blazor ) 놀라운 오픈소스 리스트 (open source) file 졸리운_곰 2021.08.04 4938
1029 MarkDown 사용법 총정리 file 졸리운_곰 2021.07.29 23
1028 [一日30分 인생승리의 학습법] [JWT/JSON Web Token] 로그인 / 인증에서 Token 사용하기 file 졸리운_곰 2021.07.24 8
1027 [一日30分 인생승리의 학습법] JWT(JSON Web Token)을 이용한 API 인증 - #1 개념 소개 file 졸리운_곰 2021.07.24 10
1026 [一日30分 인생승리의 학습법] XPath 란 무엇입니까? file 졸리운_곰 2021.07.24 5
1025 [一日30分 인생승리의 학습법] XPATH 사용법·작성법 file 졸리운_곰 2021.07.24 8
1024 [Git] Github에 잘못 올라간 파일 삭제하기 졸리운_곰 2021.07.13 16
1023 [一日30分 인생승리의 학습법]AI 한국어 자연어 처리 데이터셋 목록 file 졸리운_곰 2021.07.10 23
1022 [一日30分 인생승리의 학습법] 기계독해, MRC란 무엇일까 file 졸리운_곰 2021.07.10 37
1021 [一日30分 인생승리의 학습법] 웹어셈블리를 활용한 유망한 프로그래밍 언어 프로젝트 10가지 졸리운_곰 2021.07.02 13
1020 [一日30分 인생승리의 학습법] Windows 10에 Minikube 설치하기 file 졸리운_곰 2021.06.27 26
1019 [一日30分 인생승리의 학습법] 윈도우2016 서버에 Docker 설치하며 겪은 시행착오 기록 file 졸리운_곰 2021.06.26 11
1018 [초보용] Git 되돌리기( Reset, Revert ) file 졸리운_곰 2021.06.22 15
1017 [DOCKER] Windows Server 2016에서 도커 설치하기 졸리운_곰 2021.06.13 39
1016 [docker, windows server 2016] Installing Docker onto Windows Server 2016 file 졸리운_곰 2021.06.13 6
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED