Elasticsearch 학습 노트(1)

3513 단어

카탈로그


시작하다


Elasticsearch는 확장성이 높고 원본 검색과 분석이 가능한 엔진입니다.그것은 대량의 데이터를 실시간으로 저장하고 검색하며 분석할 수 있도록 해 준다.이것은 일반적으로 베이스 엔진/기술로 사용되며 복잡한 검색 특성과 수요를 가진 응용 프로그램에 동력을 제공한다.

기본 개념


Elasticsearch는 몇 가지 핵심적인 기본 개념을 가지고 있다.처음부터 이런 개념을 이해하면 학습 과정을 간소화하는 데 큰 도움이 될 것이다.
실시간
Elasticsearch는 거의 실시간 검색 플랫폼입니다.이것은 색인 문서에서 검색 가능한 문서까지 약간의 지연이 존재한다는 것을 의미합니다 (일반적으로 1초).
집단
하나의 집단은 하나 이상의 노드 (서버) 의 집합이다. 이 노드는 당신의 전체 데이터를 저장하고 모든 노드를 무너뜨리는 연합 인덱스와 검색 기능을 제공한다.집단은 하나의 유일한 이름으로 표시되며, 기본적으로 이 이름은 "elasticsearch"입니다.이 명칭은 매우 중요하다. 왜냐하면 노드는 집단의 일부분일 뿐이기 때문이다. 만약 노드가 그 이름을 통해 노드에 가입하도록 설정된다면.
다른 환경에서 중복된 이름을 사용하지 않도록 하세요. 그렇지 않으면 노드를 잘못된 집단에 넣을 수 있습니다.만약 집단이 하나의 노드만 있다면, 그것은 유효하고, 또한 매우 좋다는 것을 주의하십시오.그 밖에 당신은 여러 개의 독립된 집단을 가질 수 있으며, 각각은 자신의 독립된 집단명을 가지고 있다.
노드
하나의 노드는 단독 서버로 당신의 집단의 일부분으로 당신의 데이터를 저장하고 집단의 인덱스와 검색 기능에 참여한다.하나의 그룹처럼 하나의 노드는 하나의 이름을 통해 식별되고 기본적으로 설치할 때 노드에 분배되는 무작위 UUID입니다.기본 이름을 사용하고 싶지 않으면, 모든 노드 이름을 정의할 수 있습니다.이 이름은 관리에 매우 중요합니다. 네트워크에 있는 서버가 Elasticsearch 집단에 대응하는 노드를 확인하려고 하기 때문입니다.
그룹 이름을 통해 하나의 노드를 설정하여 특정한 그룹에 가입할 수 있습니다.기본적으로 모든 노드는 elasticsearch라는 집단에 가입하도록 설정되어 있습니다. 이것은 네트워크에서 여러 개의 노드를 시작하면 서로 발견할 수 있다고 가정합니다. 이 집단은 자동으로 형성되고 elasticsearch라는 집단에 가입합니다.
단일 집단에서 당신은 임의의 노드를 가질 수 있다.또한 네트워크에 현재 실행 중인 다른 Elasticsearch 노드가 없다면, 하나의 노드를 시작하면 기본적으로 Elasticsearch라는 새로운 단일 노드 그룹을 형성합니다.
색인
색인은 유사한 특징을 가진 문서의 집합이다.예를 들어, 당신은 고객 데이터 인덱스, 제품 디렉터리 인덱스, 그리고 다른 주문 데이터 인덱스를 가질 수 있습니다.색인은 문서에 대한 색인, 검색, 업데이트 및 삭제 작업을 수행할 때 참조하는 데 사용되는 이름으로 식별됩니다(소문자여야 함).
단일 집단에서 원하는 색인을 정의할 수 있습니다.
유형
6.0에서 한 유형을 사용하지 않는 것은 과거 색인의 논리적 분류/구역이었다. 같은 색인에 다른 유형의 문서를 저장할 수 있다. 예를 들어 한 유형은 사용자에게, 다른 유형은 블로그 글에 사용할 수 있다.색인에서 여러 형식을 만드는 것은 더 이상 불가능합니다. 형식의 전체 개념은 나중에 버전에서 삭제됩니다.자세한 내용은 맵 유형 삭제를 참조하십시오.
문서
문서는 색인을 만들 수 있는 기본 단원입니다.예를 들어, 하나의 고객에게 하나의 문서를 제공할 수 있으며, 하나의 문서는 하나의 제품에 사용되고, 다른 문서는 하나의 주문에 사용된다.문서는 JSON으로 표시되며, 이는 어디에나 있는 인터넷 데이터 교환 형식입니다.
조각과 던전
색인은 단일 노드의 하드웨어 제한을 초과하여 대량의 데이터를 저장할 수 있다.예를 들어 10억 개의 문서를 포함하는 인덱스가 1TB의 디스크 공간을 차지하는데, 이것은 단일 노드의 디스크에 적합하지 않거나 너무 느려서 단일 노드에 대한 검색 요청을 단독으로 제공할 수 없다.
이 문제를 해결하기 위해 Elasticsearch는 색인을 여러 조각으로 세분화하는 기능을 제공합니다.색인을 만들 때, 원하는 조각의 수를 간단하게 정의할 수 있습니다.모든 조각 자체는 기능이 완비되고 독립된 색인으로 집단의 모든 노드에 주재할 수 있다.
조각이 중요한 이유는 두 가지가 있다.
  • 콘텐츠 볼륨을 수평으로 분할/축소할 수 있습니다
  • 조각 (여러 노드에 있을 수 있음) 을 나누어 주고 병행하여 성능/흡수량을 향상시킬 수 있습니다

  • 조각이 어떻게 분포되고 문서를 검색 요청으로 모으는 메커니즘은 완전히 Elasticsearch가 관리하기 때문에 사용자에게 투명하다.
    언제든지 고장이 날 수 있는 네트워크/클라우드 환경에서 고장 전이 메커니즘이 매우 유용하다. 파편/노드가 오프라인 상태이거나 어떤 이유로 사라진 상황에서 이 메커니즘을 사용하는 것을 강력히 권장한다.이를 위해, Elasticsearch는 색인 조각의 하나 이상의 복사본을 이른바 복사 조각에 복사하거나 복사라고 약칭할 수 있습니다.
    복제본이 중요한 이유는 다음과 같습니다.
  • 파편/노드가 실패했을 때 높은 가용성을 제공합니다.이 때문에 주의해야 할 것은 복본 조각은 원래/주 조각과 같은 노드에서 분배된 적이 없다는 것이다..
  • 검색량/처리량을 확장할 수 있습니다. 검색은 모든 복사본에서 병행할 수 있기 때문입니다

  • 요컨대 색인마다 여러 조각으로 나눌 수 있다.색인도 0번 복사되거나 여러 번 복사될 수 있습니다.복제하면 각 인덱스에는 주 조각 (원본 조각) 과 복제 조각 (주 조각의 복사본) 이 있습니다.
    색인을 만들 때 각 색인은 조각과 복사본의 수를 정의할 수 있습니다.색인을 만든 후에는 언제든지 복사본의 수를 동적으로 변경할 수 있습니다.너는 사용할 수 있어_shrink 및_splitapi는 기존 인덱스의 조각 수량을 변경하지만, 이것은 간단한 작업이 아닙니다. 정확한 조각 수량을 미리 계획하는 것이 가장 좋은 방법입니다.
    기본적으로 Elasticsearch의 모든 인덱스는 5개의 메인 조각과 1개의 복사본을 분배합니다. 이것은 그룹에 적어도 두 개의 노드가 있다면 인덱스는 5개의 메인 조각과 5개의 복사본 조각 (전체 복사본 1개) 이 있고 인덱스마다 총 10개의 조각이 있다는 것을 의미합니다.

    설치


    Elasticsearch에는 최소한 JAVA8 환경이 필요합니다.Elasticsearch를 설치하기 전에 Java 환경 버전을 확인하십시오.
    java -version
    

    Java 환경 변수 설정

    다음 장-Elasticsearch 학습 노트(2)

    좋은 웹페이지 즐겨찾기