-
데이터 수집, 처리 , 제공 등BigData 2020. 5. 18. 14:21
데이터 수집
Flume : 아파치에서 Flume-NG라는 이름으로 서비스 하는 중,
Agent를 띄어두고 있다가 이벤트가 발생할 때마다 데이터를 수집하는 방식으로 동작,
Agent 내부는 Source, Channel, Sink로 구성되며 소스로부터 데이터를 읽어 Channel에 저장 했다가 Sink에 최종적으로 반영
Source : 파일시스템, Kafka, HTTp 등
Channel : 메모리 또는 파일시스템 등
Sink : HDFS, Spark 등
Kafka : 아파치 오픈소스로 최근에는 스파크와 연동해서 스트리밍 방식의 데이터 처리 플로우를 구축하는데 활용
메모리 대신 파일시스템을 이용하면서도 빠르고 안정적인 서비스를 제공 하는 특징
기본 동작은 Publisher Consumer 형태이며, 여러 대의 서버에 Broker라는 카프카 프로세스를 띄워두고 데이터를 가지고 있는 Producer 프로세스들이 데이터를 Broker에게 전달하면 Consumer 프로세스들이 브로커를 통해 데이터를 읽어가는 구조
Producer -> Broker -> Consumer
데이터 저장 및 처리
Hadoop : 분산 파일 저장 시스템인 HDFS 와 HDFS 상에서 동작하는 분산 데이터 처리 프로그래밍 모델이자 프레임워크인 MapReduce를 제공
HDFS는 여러 대의 서버에 데이터를 다중 복제해서 저장하는 방식으로 안정성을 보장
Spark : 하둡과 유사한 클러스터 기반의 분산 처리 기능을 제공하는 오픈소스 프레임워크, 처리 결과를 항상 파일시스템에 유지하는 하둡과 달리 메모리에 저장하고 관리할 수 있는 기능을 제공. 반복적인 데이터를 처리하는데 뛰어난 성능을 보임.
데이터 분석 및 기타 소프트 웨어
Cloudera, Hortonworks : 데이터 수집부터 저장, 처리에 이르기까지 각 단계마다 적절한 소프트웨어들을 조합해서 사용해야 하는 경우가 많다. 하지만 하둡을 비롯한 대부분의 제품은 오픈소스 형태로 운용되기 때문에 이들을 하나하나 직접 설치해서 사용하다 보면 서로 간의 라이브러리 버전 충돌이나 환경 설정 문제가 발생 할 수 있다.
따라서 전문 벤더에서 각종 배포판을 제작하게 됐고, CDH(Cloudera distribution Including Apache Hadoop) 와 HDP(Hortonworks data platform)가 있다.
'BigData' 카테고리의 다른 글
SparkContext, RDD 개념만 (0) 2020.06.01 Spark 연산 (0) 2020.05.18 Spark 생성 및 연산 (0) 2020.05.18 Spark 기본 (0) 2020.05.18 Yarn (0) 2020.05.18