• 티스토리 홈
  • 프로필사진
    홀쑥
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
홀쑥
  • 프로필사진
    홀쑥
    • 분류 전체보기 (57)
      • Language & Framework (14)
        • Java (1)
        • Python (13)
      • DataBase (4)
        • NoSQL (1)
        • RDBMS (3)
      • Big Data & Ecosystem (9)
        • Hadoop (5)
        • Hive (2)
        • Sqoop (1)
        • Zeppelin (1)
      • Data Engineering (1)
        • Airflow (1)
      • Cloud & DevOps (1)
        • AWS (0)
        • GCP (1)
      • Monitoring & Logging (2)
        • ElasticSearch (2)
      • Infrastructure (12)
        • OS (12)
        • Docker (0)
        • Kubernetes (0)
      • Algorithm & CS (7)
        • 백준 알고리즘 (6)
      • Troubleshooting (5)
        • 오류 모음 (5)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [ElasticSearch] 기본개념
        2020년 06월 27일
        • 홀쑥
        • 작성자
        • 2020.06.27.:29

        Elasticsearch는 아파치 루씬(Apache Lucene)기반의 JAVA 오픈소스 분산 검색엔진

        검색을 위해 단독으로 사용되기도 하며, ELK(Elasticsearch / Logstash / Kibana)  스택으로 사용되기도 함

        Logstash 

        - 다양한 소스의 로그 또는 데이터를 수집, 집계, 파싱해서 Elasticsearch로 전달

        Elasticsearch

        - Logstash가 준 데이터를 검색 및 집계하여 필요한 정보 획득

        Kibana

        - Elasticsearch의 집계된 정보를 시각화 및 모니터링

         

         

        Elasticsearch 용어
        • 클러스터 ( cluseter) 
        Elasticsearch에서 가장 큰 시스템 단위
        최소 하나 이상의 노드로 이루어진 '노드'들의 집합
        서로 다른 클러스터끼리는 데이터의 접근과 교환을 할 수 없는 독립 시스템 유지
        여러 대의 서버가 하나의 클러스터를 구성할 수도 있고 한 서버에 여러 클러스터를 구성할 수도 있음
        • 노드
        Elasticsearch를 구성하는 하나의 단위 프로세스
        종류
         - master-eligible node
        클러스터를 제어하는 마스터로 선택할 수 있는 노드
        master 노드의 역할은 인덱스 생성or삭제, 클러스터 노드들의 추적과 관리, 데이터 입력 시 어느 샤드에 할당할 지

        - Data node 
        데이터와 관련된 CRUD작업을 하는 노드
        Data node는 CPU와 메모리 등 자원을 많이 소모하므로 모니터닝이 필요하며, master 노드와 분리되는 것이 좋음

        - Ingest node
        데이터를 변환하는 등 전처리 파이프라인을 실행하는 역할

        - Coordination only node
        data node와 master-eligible node의 일을 대신하는 노드
        대규모 클러스터에 이점이 있음, 로드 밸런서와 비슷한 역할
        • 인덱스(index), 샤드(Shard), 복제(Replica)
        - 인덱스
        RDBMS의 인덱스와 비슷한 개념

        -샤딩(Sharding)
        데이터를 분산해서 저장하는 방법
        즉, Elasticsearch에서 스케일 아웃을 위해 인덱스를 여러 샤드로 쪼갠 것
        기본적으로 1개가 존재하며, 검색 성능 향상을 위해 클러스터의 샤드 개수를 조정하는 튜닝을 함

        - 복제(Replica)
        또 다른 형태의 샤드
        노드를 손실했을 경우 데이터의 신뢰성을 위해 샤드들을 복제
        따라서 복제는 서로 다른 노드에 존재할 것을 권장

         

        Elasticsearch의 특징
        • Salce out : 샤드를 통해 규모가 수평적으로 늘어날 수 있음
        • 고가용성 : 복제를 통해 데이터의 안정성 보장
        • Schema Free : Json 문서를 통해 검색을 수행해 스키마 개념이 없음
        • Restful : CRUD작업은 Http Restful API를 통해 수행
        Data CRUD Elasticsearch Restful
        SELECT -> GET  
        INSERT ->  POST
        UPDATE -> PUT 
        DELETE -> DELETE

         

        역색인(Elasticsearch가 빠른 이유)

        index(색인)와 inverted index(역색인)의 차이

        색인은 책의 맨 앞에 목차

        역색인은 책의 맨 뒤에 키워드 별 페이지(찾아보기)

         

        Elasticsearch는 텍스트를 파싱해서 검색어 사전을 만든 다음, 역색인 방식으로 텍스트를 저장함

         

        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바