- 전체
- Sample DB
- database modeling
- [표준 SQL] Standard SQL
- G-SQL
- 10-Min
- ORACLE
- MS SQLserver
- MySQL
- SQLite
- postgreSQL
- 데이터아키텍처전문가 - 국가공인자격
- 데이터 분석 전문가 [ADP]
- [국가공인] SQL 개발자/전문가
- NoSQL
- hadoop
- hadoop eco system
- big data (빅데이터)
- stat(통계) R 언어
- XML DB & XQuery
- spark
- DataBase Tool
- 데이터분석 & 데이터사이언스
- Engineer Quality Management
- [기계학습] machine learning
- 데이터 수집 및 전처리
- 국가기술자격 빅데이터분석기사
- 암호화폐 (비트코인, cryptocurrency, bitcoin)
hadoop 빅데이터 플랫폼 아키텍처의 두 가지
2016.05.29 19:57
빅데이터 플랫폼 아키텍처의 두 가지
Hadoop Eco-system 기반의 Batch(배치)처리 아키텍처 일반
빅데이터 처리 플랫폼의 대명사는 Hadoop Eco-System이다. Hadoop Eco-System의 구성요소는 아주 다양하지만, 각 Layer별 대표적인 것만 나열하면 아래와 같다.
- Log Collector : 로그 이벤트 수집기 Layer로 가장 많이 사용되는 것은 Apache Flume 이다.
- DB Collector : DB에 저장된 데이터를 간편하기 수집하기 위한 Apache Sqoop (Sql-to-Hadoop)이다.
- Message Queue : 로그,이벤트 내용을 Data Store에 넣기 전에 임시로 저장할 경우 사용하며, 파일기반 분산 메시징 큐 Apache Kafka가 대표적이다.
- Data Store : 분산 파일 시스템인 Apache Hadoop – HDFS
- Data Analysis : 데이터 분석을 위한 Apache Pig, Hive, Map/Reduce. 이 세가지는 M/R기반이라 속도가 느리다. 따라서, 좀 더 빠른 분석을 원한다면 Facebook Presto, Apache Spark 그리고, 국산 그루터 Tajo 등이 있다. Hive와 Preso 간략 비교하자면, 간단한 count의 경우 20배이상, 복잡 query의 경우도 5-10배 정도로 Presto가 빠르다.
- Workflow : Job 제어를 위한 Workflow는 Apache Oozie, LinkedIn의 Azkaban 등이 있다.
배치 처리,분석을 위한 Hadoop Eco-System의 여러 요소의 조합으로 가능하다. 그 중 많이 활용하는 조합, 사례는 아래와 같다.
- 로그 수집을 위한 Flume, RDB상의 Meta 데이터 또는 로그 DB 수집을 위한 Sqoop
- 로그,이벤트를 임시 저장하기 위한 메시징 큐로써 Kafka
- 데이터 저장소로써 HDFS
- 데이터 분석을 위한 Hive, R, Mahout
- 이렇게 저장,분석된 결과는 다시 RDBMS나 API 형태로 서비스
CEP 아키텍처 기반의 Real-time(실시간)처리 아키텍처 일반
위와 같은 배치처리가 아니 수초 미만 또는 1초 미만의 실시간 처리가 필요할 경우에 대표적인 아키텍처가 CEP(Complex Event Processing)이다.
즉, 데이터가 수집되는 즉시, 실시간 전처리, 실시간 계산, 실시간 패턴분석을 처리를 해야한다.
각 Layer별로 대표적인 것만 나열하면 아래와 같다.
- Log Collector : 이벤트를 실시간으로 수집하기 위해 Thrift 등 TCP기반으로 수집하기 위해 Apache Flume이 적당하다.
- Message Queue : 이벤트를 임시로 저장하기 위해 Apache Kafka를 사용한다.
- Real-time Pre-Processing : 실시간으로 전처리가 필요할 경우, Real-time Hadoop이라 불리는 Twitter에서 만든 Apache Storm이 매우 효과적이다.
- Real-time Computing : 실시간 계산 및 실시간 패턴 분석을 위해 대표적인 CEP 엔진인 Esper가 많이 사용된다. 상용의 솔루션도 사용하고 있는 제품이다.
*) Batch에서 사용하던 일부 수집, 메시징 큐의 경우 실시간에도 적당한 아키텍처를 가지고 있다.
실시간 처리,분석을 위한 Flow를 정리하면 아래와 같다.
- 이벤트 수집을 위한 Flume, 앞서 Flume을 소개하는 글에서와 같이 Thrift 등 방식을 통해 실시간 수집이 가능하다.
- 수집된 이벤트에서 Sorting, Cleansing 등 실시간 전처리가 필요한 경우를 위해 Storm을 통해 처리한다.
- Real-time Pre-Processing : 실시간으로 전처리가 필요할 경우, Real-time Hadoop이라 불리는 Twitter에서 만든 Apache Storm이 매우 효과적이다. 잘 정리된 대용량 이벤트에서 실시간 통계, 계산, 패턴 매칭 등의 처리를 위해 CEP 대표 엔진인 Esper가 아주 우수하다. Esper의 경우 1/1000초 미만의 Computing 속도와 SQLike 한 문장(EPL)을 통해 쉽게 진입할 수 있으며, 결과는 다양한 형태로 제공이 가능하다. 대용량의 이벤트를 실시간으로 처리하기 위해 Storm, Esper의 조합이 아주 유용하다.
Reference
- Flume : a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. http://flume.apache.org/
- Sqoop : a tool designed for efficiently transferring bulk data between Apache Hadoop and structured datastores such as relational databases. http://sqoop.apache.org/
- Kafka : A high-throughput distributed messaging system. http://kafka.apache.org/
- Hive : data warehouse software facilitates querying and managing large datasets residing in distributed storage. http://hive.apache.org/
- Mahout : Scalable machine learning and data mining. http://mahout.apache.org/
- R : a free software environment for statistical computing and graphics. http://www.r-project.org/
- Hadoop : a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. http://hadoop.apache.org/
- Storm : a distributed and fault-tolerant realtime computation system. http://storm.apache.org/
- Esper : Event Series Intelligence. http://www.espertech.com/
- Preso : Distributed SQL Query Engine for Big Data http://prestodb.io/
- Spark : Lightning-Fast Cluster Computing. http://spark.apache.org/
[출처] http://hochul.net/blog/bigdata-architecture-realtime-batch-hadoopeco/
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 공지 | 오라클 기본 샘플 데이터베이스 | 졸리운_곰 | 2014.01.02 | 86292 |
| 공지 | [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE | 가을의 곰을... | 2013.02.10 | 78750 |
| 공지 | [G_SQL] Sample Database | 가을의 곰을... | 2012.05.20 | 95493 |
| 13 |
[데이터 수집 및 전처리] 주식 전종목 어떻게 불러올까? 거래소 종목 불러오기
| 졸리운_곰 | 2023.12.09 | 1701 |
| 12 |
[데이터 수집 및 전처리] [Python/파이썬]네이버증권API 활용 - 회사명, 종목코드 받아오기
| 졸리운_곰 | 2023.12.08 | 1509 |
| 11 |
[데이터 수집 및 전처리] 네이버 금융(차트)에서 주가 갈무리(크롤링)하기
| 졸리운_곰 | 2023.12.08 | 1495 |
| 10 |
[데이터 수집 및 전처리] 네이버 증권에서 일봉, 주봉 데이터 가져오기
| 졸리운_곰 | 2023.12.08 | 1500 |
| 9 |
[데이터 수집 및 전처리] (놀라운) 한글 데이터 짱! AwesomeKorean_Data
| 졸리운_곰 | 2023.03.07 | 1197 |
| 8 |
[데이터 수집 및 전처리] Crawling, Scraping
| 졸리운_곰 | 2022.05.21 | 1476 |
| 7 |
[데이터분석][데이터수집 전처리] MS 엑셀(Excel)에서 UTF-8 로 된 csv 파일 가져오기
| 졸리운_곰 | 2021.09.30 | 1415 |
| 6 | 카프카 설치 시 가장 중요한 설정 4가지 | 졸리운_곰 | 2021.07.13 | 1928 |
| 5 |
Prometheus Query(PromQL) 기본 이해하기
| 졸리운_곰 | 2020.12.17 | 1414 |
| 4 |
[인프라 모니터링 오픈소스] Prometheus 를 알아보자
| 졸리운_곰 | 2020.12.17 | 1907 |
| 3 |
Prometheus + Grafana 대시보드
| 졸리운_곰 | 2020.12.17 | 2489 |
| 2 |
Grafana란?
| 졸리운_곰 | 2020.12.17 | 2159 |
| 1 | Importing wikipedia dump to MySql | 졸리운_곰 | 2020.10.04 | 2494 |



