Elasticsearch 기초

김민형·2022년 11월 29일
0

빅데이터

목록 보기
12/13

Elasticsearch

  • 확장성이 뛰어난 오픈 소스 전체 텍스트 검색 및 분석 엔진
  • 대량의 데이터를 신속하고 거의 실시간으로 저장, 검색 및 분석
  • 일반적으로 복잡한 검색 기능과 요구 사항이 있는 응용 프로그램을 구동하는 기본 엔진/기술
  • 분산형 RESTful 검색 및 분석 엔진으로 표준 RESTful API와 JSON을 사용

검색을 하면 해당 내용에 제일 많이 매칭되는 내용(가장 유사한 것)을 찾아내고 상세검색 같은 기능도 ES를 통해 구현 가능

예시로 네이버에 블로그 글을 올렸다고 하면 이 블로그가 검색이 될 때까지 원래는 시간이 필요했다.
검색 엔진에서 데이터를 수집하고 결과에 대한 출력으로 나올대까지가 시간이 걸렸기 때문.

ES는 거의 실시간으로 저장 검색이 가능하게 한다.
ES가 추구하는 시간은 1초 (1초 내로는 검색엔진에 노출이 되게끔)

Splunk vs Elasticsearch

Splunk vs ELK Stack
둘 다 최고의 Enterprise 솔루션
5.x 버전부터는 고가의 장비와 사용하지 않는 다수의 부가 서비스를 포함한 splunk를 상당부분 대체하기 시작
splunk는 비용이 많이 들지만 Elastic은 무료

기본 개념

ex) John이라는 text는 doc1과 doc2에서 볼 수 있고 database라는 text는 doc1과 doc3에서 볼 수 있다.
es는 이 텍스트들을 인덱싱해서 인덱스라는 DB에 저장한다.

Elasticsearch 자료 구조

Elasticsearch vs RDB

Elasticsearch 설치

OS별 elasticsearch 지원 버전 확인
위의 링크를 통해 설치 가능한 ES를 확인할 수 있다.

# 실습 환경 Ubuntu 18.04 LTS
# jdk가 반드시 설치되어 있어야 한다.
sudo apt-get update
sudo apt-get install openjdk-8-jdk

https://www.elastic.co/downloads/elasticsearch -> 링크 접속

elasticsearch curl ERROR 트러블 슈팅 -> 참고
이전 버전을 설치하는 이유는 최신 버전으로 받았을 시 계속 (52) Empty reply from server 에러가 뜨기 때문이다.

다운로드 버튼에 우클릭 -> 링크주소 복사, wget으로 우분투에서 다운

sudo dpkg -i <다운 받은 es 파일 >
sudo systemctl enable elasticsearch.service

# 아래의 명령어들로 es를 시작하고 끄고 잘 작동하는지 확인할 수 있다.
sudo service elasticsearch start
sudo service elasticsearch stop

# es가 잘 동작하는지 체크
curl -XGET 'localhost:9200'

elastic search를 시작해주지 않으면 curl로 확인했을 때 아래처럼 connection refused가 뜰 것이다.

잘 설치된 것 확인

ES 상태

  • 녹색 - 모든 것이 좋음(클러스터가 완전히 작동)
  • 노란색 - 모든 데이터를 사용할 수 있지만 일부 복제본은 아직 할당되지 않음(클러스터는 완전히 작동)
  • 빨간색 - 어떤 이유로든 일부 데이터를 사용할 수 없음(클러스터가 부분적으로 작동)

[Elasticsearch 참고]
Elasticsearch 관련 포스팅은 유튜버 'Minsuk Heo 허민석'님의 영상을 참고하였습니다.

profile
Solutions Architect (rlaalsgud97@gmail.com)

0개의 댓글