본문 바로가기
IT KNOWLEDGE

Elasticsearch에 대하여

by BTC_오사원 2022. 11. 14.

안녕하세요!!! 임오군란과 민씨의 오입니다.😊

이번 시간에는 elasticsearch에 대해 알아보도록 하겠습니다 :)

차례는 아래와 같습니다.

  • elasticsearch이란?
  • elasticsearch기능
  • 설치 및 실행

지금 바로 시작하겠습니다👍👍👍

 

Elasticsearch란?

루씬 기반의 검색 엔진이다. HTTP 웹 인터페이스와 schema에서 자유로운 JSON 문서와 함께 분산 멀티테넌트 지원 전문 검색 엔진을 제공한다. Elasticsearch는 java로 개발되어 있으며, apache 라이센스 조항에 의거하여 오픈 소스로 출시되어 있다. 공식 클라이언트들은 java, 닷넷, php, python, 그루비 등 수많은 언어로 이용이 가능하다. Elasticsearch는 가장 대중적인 엔터프라이즈 검색 엔진으로 그 뒤를 루씬 기반의 Apache Solr가 잇는다.

Elasticsearch는 Logstash라는 이름의 데이터 수집 및 로그 파싱 엔진, 그리고 Kibana라는 이름의 분석 및 시각화 플랫폼과 함께 개발되어 있다. 이 3개의 제품들은 연동 솔루션으로 사용할 목적으로 설계되어있으며 이를 “Elstic Stack”으로 부른다.

 

Elasticsearch 주요기능

주요기능 지원여부
오픈소스 Apache 2.0
분산 시스템 샤드(Shard) 기반의 데이터 분산 저장
고가용성 복제본을 통한 데이터 유실 방지
문서 기반 Json 도큐먼트 기반
RESTFul http 프로토콜을 통한 REST API 지원
전문(Full Text) 검색 문서 전체를 Term 기반으로 색인
실시간 배치 기반의 사이클 분석이 아닌 데이터를 실시간으로 저장/ 쿼리 가능

1. REST API

  • Elasticsearch는 REST API를 이용한 http 통신을 통해 데이터를 처리
  • 데이터는 인덱스와 타입이라고 하는 논리적 영역에 저장되며, JSON 도큐먼트 형식으로 저장
  • JSON 도큐먼트의 개별 요소 값을 필드라고 함
  • 도큐먼트의 접근 URI는 호스트:포트/인덱스/타입/도큐먼트ID로 이루어짐
  • http 메소드인 PUT/POST/GET/DELETE 등을 이용하여 문서를 입력/조회/삭제를 함

2.클러스터

  • Elasticsearch 시스템의 가장 큰 단위
  • 하나의 클러스터는 다수의 노드로 구성
  • 하나의 클러스터를 다수의 서버로 바인딩해서 운영, 또는 역으로 하나의 서버에서 다수의 클러스터 운용 가능
  • Elasticsearch 설치 경로의 config 디렉토리 아래에 있는 elasticsearch.yml 파일, 또는 실행 시 -E 커멘드 옵션으로 설정 가능

3. 노드

  • Elasticsearch를 구성하는 하나의 단위 프로세스
  • 다수의 샤드로 구성
  • 같은 클러스터명을 가진 노드들은 자동으로 바인딩됨
  • Elasticsearch 설치 경로의 config 디렉토리 아래에 있는 elasticsearch.yml 파일, 또는 실행 시 -E 커멘드 옵션으로 설정 가능

4. 샤드(Shard) & 레플리카(Replica)

  • 샤드 : 데이터 검색 단위 루씬 인스턴스
  • 레플리카 : 샤드의 복사본
  • 인덱스 별로 설정. 기본값은 샤드 -5, 레플리카 -1
  • REST API의 PUT 메소드를 이용해서 인덱스 안의 settings 값으로 설정
  • 각 노드 별로 샤드가 분배되어 저장
  • 동일한 샤드와 레플리카는 항상 서로 다른 노드에 저장
  • 일부 노드가 중지되더라도 샤드와 레플리카 중 최소 1개가 살아있으면 클러스터는 정상적으로 동작

5. 검색

  • 검색은 _search API 사용. 인덱스 단위 및 logs-*와 같은 멀티테넌시 검색 가능
  • 호출 URI에 q= 파라메터로 검색 쿼리 삽입

6. 집계

  • Elasticsearch는 검색 결과 도큐먼트 내용 외에도 각 필드의 값들을 집계한 결과를 가져올 수 있다. 집계 기능을 aggregation라고 함
  • 검색된 도큐먼트는 검색 결과의 hits[], 집계는 aggregation[] 배열 안에 들어감

Elasticsearch 설치 및 실행

 

1. Redhat Linux 압축/설치 파일 다운로드

$ wget http://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.rpm

$ tar xfz elasticsearch-5.5.0.tar.gz서비스로 설치

 

2. 서비스로 설치

$ sha1sum elasticsearch-5.5.0.rpm

$ rpm —install elasticsearch-5.5.0.rpm

  • service 명령을 이용해서 서비스로 Elasticsearch를 시작,종료

$ sudo service elasticsearch start

$ sudo service elasticsearch stop

'IT KNOWLEDGE' 카테고리의 다른 글

STT란?  (0) 2022.11.21
Machine Learning  (0) 2022.11.14
Ethereum에 대하여  (0) 2022.10.28
Lens - The Kubernetes IDE  (0) 2022.10.24
[보안] 무료 와이파이는 무조건 좋은 거 아닌가요?  (0) 2022.10.24

댓글