티스토리 뷰
Elasticsearch는 검색엔진으로 매일 수 많은 데이터가 범람하고 있는 세상에서 데이터들의 분석과 처리의 중심에 있다.
전문검색엔진으로 개발이 되었지만, 검색 엔진을 넘어 보안, 로그 분석, 전문 분석 등 다양한 영역에서 중요한 역할을 하고 있다.
나도 elasticseach 공부 목적이 검색이 아니라 시스템 모니터링을 위해서 공부하고 있기 때문에 다양한 영역에서 필요로 하다는 것을 몸소 체험중(?)이다..
Elasticsearch는 2004년 사이 배논이 아내를 위해서 요리 레시피 검색 프로그램을 만들기 위함이 계기가 되어 시작된다. 배논은 레시피 검색 프로그램에 루씬을 적용하려던 중 루씬이 가지고 있는 한계를 보완하기위해 새로운 검색엔지 프로젝트를 시작하게 된다. 2010년에 배논은 해당 프로젝트를 오픈 소스로 공개하였고 수많은 검색 개발자들에게 인기를 얻으며 급속도로 성장하였다.
이후 Elasticsearch 프로젝트는 2012년 샤이 배논, 스티븐 셔르만, 우리 보네스 그리고 아파치 루씬 커미터 사이먼 월너 4인에 의해 네덜란드 암스테르담에서 회사로 설립되었다.
현재는 주 본사인 네덜란드 암스테르담과 캘리포니아 마운틴 뷰를 비롯하여 전 세계에 직원들이 분포되어 있다.
Logstash, Kibana와 함께 사용되면서 한동안 ELK Stack(Elasticsearch, Logstash, Kibana)이라고 널리 알려지게 된 후 2013년에 Logstash, Kibana 프로젝트를 정식으로 흡수하고 한 지붕 아래에서 개발을 해 나가고 있다.
Elasticsearch
- Elasticsearch는 뛰어난 검색 능력과 대규모 분산 시스템을 구축할 수 있는 다양한 기능들을 제공
- 설치 과정과 사용 방법은 비교적 쉽고 간편
- 전문검색(Full Text Search) 기능과 점수 기반의 다양한 정확도 알고리즘, 실시간 분석 등의 구현이 가능
- 아마존 웹 서비스(AWS), 마이크로소프트 애저(MS Azure) 같은 클라우드 서비스 연동 가능
- 하둡(Hadoop) 플랫폼들과의 연동 가능
오픈소스 (open source)
- Elasticsearch의 핵심 기능들은 Apache 2.0 라이센스로 배포
- 6.3 버전 부터는 Elastic 라이센스와 Apache 라이센스가 같이 존재
- 현재는 x-pack 디렉토리 아래 있는 파일들만이 Elastic 라이센스
- 그 외의 파일들은 Apache 라이센스
- 루씬이 자바로 만들어졌기 때문에 Elasticsearch도 마찬가지로 자바
- 루씬은 하둡을 개발한 더그 커팅(Doug Cutting)에 의해 처음 만들어졌지만 Elasticsearch 엔지니어들 중에는 루씬 커미터들이 다수
실시간 분석 (real-time)
- Elasticsearch는 하둡 시스템과 달리 Elasticsearch 클러스터가 실행되고 있는 동안에는 계속해서 데이터가 입력 (검색엔진에서는 색인 – indexing 이라고 표현)
- 그와 동시에 실시간에 가까운 (near real-time) 속도로 색인된 데이터의 검색, 집계가 가능
전문(full text) 검색 엔진
- 루씬은 기본적으로 역파일 색인(inverted file index)라는 구조로 데이터를 저장
- 루씬을 사용하고 있는 Elasticsearch도 마찬가지로 색인된 모든 데이터를 역파일 색인 구조로 저장하여 가공된 텍스트를 검색
- JSON 문서 기반 Elasticsearch는 내부적으로는 역파일 색인 구조로 데이터를 저장
- 사용자의 관점에서는 JSON 형식으로 데이터를 전달
- JSON형식은 간결하고 개발자들이 다루기 편한 구조로 되어 있어 색인 할 대상 문서를 가공 하거나 다른 클라이언트 프로그램과 연동하기에 용이
- key-value 형식이 아닌 문서 기반으로 되어 있기에 복합적인 정보를 포함하는 형식의 문서를 있는 그대로 저장이 가능
- 사용자가 직관적으로 이해하고 사용
- Elasticsearch에서 질의에 사용되는 쿼리문이나 쿼리에 대한 결과도 모두 JSON 형식으로 전달되고 리턴
- JSON이 Elasticsearch가 지원하는 유일한 형식이기 사전에 입력할 데이터를 JSON 형식으로 가공하는 것이 필요
- CSV, Apache log, syslog등과 같이 널리 사용되는 형식들은 Logstash에서 변환을 지원
RESTFul API
- Elasticsearch는 Rest API를 기본으로 지원
- 모든 데이터 조회, 입력, 삭제를 http 프로토콜을 통해 Rest API로 처리
멀티테넌시 (multitenancy)
- Elasticsearch의 데이터들은 인덱스(Index) 라는 논리적인 집합 단위로 구성되며 서로 다른 저장소에 분산되어 저장
- 서로 다른 인덱스들을 별도의 커넥션 없이 하나의 질의로 묶어서 검색하고, 검색 결과들을 하나의 출력으로 도출
- Total
- Today
- Yesterday
- 실시간처리
- 설정에러
- openjdk1.8
- nifi
- namenode
- Discovery Rule
- spark driver
- Apache
- bigdata #data_mesh
- flink
- Item Prototypes
- hdfs
- prometheus
- OOM
- Federation
- MAT
- Apache Nifi
- Nifi Architecture
- Dataflow
- 빅데이터
- Nifi Service
- exporter
- zabbix
- hadoop
- error
- lld
- nifi.flowcontroller.autoResumeState
- flow.xml.gz
- Bigdata
- java8
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |