티스토리 뷰
빅데이터 파이프라인을 복잡하게 구축한 회사에서는 엘라스틱 서치를 어떻게 사용할까? 어떻게 사용하는지 알아보겠다.
1. 우버에서 "가이로스" 실시간 데이터 통찰 플랫폼의 사용
우버에서 "가이로스"를 통해 가격 책정, 최대 도착예정시간 계산, 수요/공급 예측 을 한다. Kafka와 Hadoop생태계(HDFS/Hive/Presto)를 연계하여 실시간 분석과 장기적 분석을 지원하여, 동적인 가격 정책과 환경 친화적인 운전 경로를 운전자에게 제공하도록 하고 있다.
아래 그림을 보면, 카프카 토픽을 통해 데이터를 받아 파이프라인을 거쳐 분석대상 데이터가 엘라스틱 서치에 저장되며, 고객의 질의가 가이로스 질의 서비스를 거쳐 엘라스틱의 검색/집계 쿼리를 활용하도록 한다.
장기적인 데이터 분석으로 위해 HDFS에 백업되어 향후 Hive, Presto를 통한 분석을 제공할 것으로 보인다.
2. ELK와 Kafka의 연동
분산 데이터 스트리밍 플랫폼인 아파치 카프가는 데이터를 실시간으로 배포하는 데 최적화되어 있어 많은 빅데이터 플랫폼에서 사용하고 있다고 한다.
아래그림은 카프카를 연계 하여 Beats, Logstash, ES와 통신하는 아키텍처의 예시이다.
비츠에서 수수집 한 각 장비의 이벤트를 카프카로 전송하고 이를 Logstash로 다시 읽어 들이거나 카프카에 저장된 다른 시스템의 이벤트를 ES로 읽어 들이는 구성으로 사용된다.
카프카를 사용하면, ES의 인덱싱 성능이 순간적으로 충분하지 않거나 Logstash나 ES의 불안정으로 정상적이 Indexing이 불가능할때, 데이터 유실이 방지되며 타 시스템과 데이터 연계가 쉬워진다는 장점이 있다.
3. Hadoop 생태계와 연동
ES에서 es-hadoop 모듈을 사용하면 Spark에서 ES API를 사용해 도큐먼트를 읽어 들이고 반대로 인덱싱하는 등 서로 상호 작용할 수 있다.
아래 그림은 es-hadoop을 이용해 Hadoop과 ES의 연계 방법을 볼 수 있다.
ES는 이미 인덱싱된 결과에 대해 빠른 검색을 제공하고, Spark는 기존에 인덱싱되지 않은 데이터에 대한 빠른 일괄 처리를 제공하기 떄문에 ES를 중간 집계 엔진이나 결과를 저장해 재활용하는 용도 등으로 활용할 수 있다.
4. 현업에서의 Datapline의 구상
비밀
'Data > ELK' 카테고리의 다른 글
[ELK] Elasticsearch 노드의 종류 (0) | 2023.12.18 |
---|---|
[에러 해결] Bulk indexing has failures. Use ElasticsearchException.getFailedDocuments() (0) | 2023.12.18 |
ES 인덱스 내부 데이터 싹 삭제하기 (1) | 2023.12.08 |
[Elastic Search] ElasticSearch 자주 쓰는 Query (0) | 2023.07.21 |
[ELK] 엘라스틱 스택(ELK) 이란? (0) | 2023.06.13 |