Elasticsearch 2.2.0 노드 유형 상세 정보

Elasticsearch의 인스턴스를 시작하면 하나 이상의 노드가 시작됩니다.같은 집단 이름의 여러 노드의 연결은 하나의 집단을 구성한다. 기본적으로 집단 중의 모든 노드는 http 요청과 집단 노드의 데이터 전송을 처리할 수 있다. 집단 중의 모든 노드는 집단 중의 다른 모든 노드를 알고 고객 측의 요청을 적당한 노드로 전달할 수 있다.노드에는 다음과 같은 유형이 있습니다.
주 (master) 노드: 한 노드에서 node를 합니다.마스터가 True (기본값) 로 설정되었을 때, 마스터로 선택되어 전체 그룹을 제어할 자격이 있습니다.
데이터 (data) 노드: 한 노드에서 node.데이터가 True(기본값)로 설정되었을 때.이 노드는 삭제, 검색, 집합 등 데이터를 저장하고 실행하는 것과 관련된 작업을 한다.
클라이언트 노드: 노드의 node입니다.master와 node.데이터가 모두false로 설정되었을 때 데이터를 유지할 수도 없고 주 노드가 될 수도 없습니다. 이 노드는 클라이언트 노드로서 사용자의 상황에 응답하고 관련 조작을 다른 노드로 보낼 수 있습니다.
부락 노드: 하나의 노드가 tribe.*여러 개의 집단을 연결하고 모든 연결된 집단에서 검색과 다른 작업을 수행할 수 있는 특수한 클라이언트입니다.
기본적으로 노드 설정은 주 노드와 데이터 노드입니다.이것은 매우 편리한 작은 집단이지만 집단의 발전에 따라 주 노드와 데이터 노드를 분리하는 것이 매우 중요하다.
노드 조율, 검색 요청이나 대량 색인 요청 등은 서로 다른 데이터 노드에서 조작할 수 있다.이러한 요청은 두 단계로 나뉘는데 하나는 클라이언트의 요청을 받는 것이고 다른 하나는 노드를 조율하여 관련 조작을 집행하는 것이다.데이터가 서로 다른 노드에 분산될 때 조율 노드는 요청을 데이터 노드로 전송하고 모든 데이터 노드는 로컬에서 요청을 실행하고 결과를 조율 노드에 전송한 다음에 조율 노드가 각 데이터 노드를 수집한 결과를 하나의 단일 요청 결과로 변환하여 되돌려준다.따라서 클라이언트가 각 노드의 반환 결과를 처리할 충분한 메모리와 cpu가 필요합니다.

마스터 노드 설명


마스터 노드의 주요 직책은 집단 조작과 관련된 내용, 예를 들어 색인을 만들거나 삭제하고 어떤 노드가 집단의 일부인지 추적하며 어떤 분할이 관련 노드에 분배되는지 결정하는 것이다.안정적인 주노드는 집단의 건강에 매우 중요하다.기본적으로 모든 집단의 노드가 주 노드로 선택될 수 있습니다.색인 데이터와 검색 조회 등 조작은 대량의 cpu, 메모리, io 자원을 차지하기 때문에 하나의 집단의 안정을 확보하기 위해 주 노드와 데이터 노드를 분리하는 것이 비교적 좋은 선택이다.
마스터도 노드를 조율할 수 있고 루트 검색과 클라이언트에서 추가된 데이터에서 데이터 노드까지 조정할 수 있지만 이런 전용 마스터를 사용하지 않는 것이 가장 좋다.한 가지 중요한 원칙은 가능한 한 적은 일을 하는 것이다.별도의 마스터를 생성하는 구성은 다음과 같습니다.
node.master: true 
node.data: false

데이터 분실을 방지하기 위해discovery를 설정합니다.zen.minimum_master_nodes 설정은 매우 중요합니다 (기본값은 1). 모든 마스터는 하나의 집단을 형성하는 최소 수량의 마스터 노드의 수량을 알아야 합니다.다음 사항을 확인하십시오.
만약 우리가 집단을 가지고 있다고 가정하자.세 개의 주자격 노드가 있는데 네트워크가 고장났을 때 그 중 한 노드가 다른 노드와 통신할 수 없을 수도 있다.이때, 디스커버리.zen.minimum_master_nodes를 1로 설정할 때 두 개의 작은 독립 집단으로 나뉘어 네트워크가 좋을 때 데이터 오류가 발생하거나 데이터를 잃어버리는 경우가 있습니다.발견하면.zen.minimum_master_nodes가 2로 설정되었을 때 한 네트워크에 두 개의 주자격 노드가 있어 계속 작업을 할 수 있고 다른 부분은 하나의 주자격 노드만 있기 때문에 하나의 독립된 집단을 형성하지 못한다. 이때 네트워크가 회복될 때 노드는 다시 집단에 가입한다.이 값을 설정하는 원칙은 다음과 같습니다.
(master_eligible_nodes/2)+ 1.
이 매개변수는 동적으로 설정할 수도 있습니다.
PUT _cluster/settings
{
  "transient": {
    "discovery.zen.minimum_master_nodes": 2
  }
}

본고는 세크람드(secisland)가 창작한 것으로 작가와 출처를 명시해 주십시오.

데이터 노드


데이터 노드는 주로 색인 데이터를 저장하는 노드로 주로 문서를 삭제하고 고치는 작업, 집합 작업 등을 한다.데이터 노드는 cpu, 메모리,io에 대한 요구가 비교적 높고 최적화될 때 데이터 노드의 상태를 감시해야 하며 자원이 부족할 때 집단에 새로운 노드를 추가해야 한다.데이터 노드의 구성은 다음과 같습니다.
node.master: false 
node.data: true

클라이언트 노드


주 노드와 데이터 노드 설정이false로 설정되었을 때 이 노드는 루트 요청, 검색 처리, 인덱스 배포 작업 등만 처리할 수 있고 본질적으로 이 고객 노드는 스마트 부하 평형기로 나타난다.독립된 클라이언트 노드는 비교적 큰 집단에서 매우 유용하다. 그는 주 노드와 데이터 노드를 조율하고 클라이언트 노드가 집단에 가입하면 집단의 상태를 얻을 수 있으며 집단의 상태에 따라 직접 루트 요청을 할 수 있다.
경고: 클라이언트 노드를 너무 많이 추가하는 것은 집단에 부담입니다. 메인 노드는 모든 노드의 집단 상태의 업데이트 확인을 기다려야 하기 때문입니다!고객 노드의 역할은 과장되어서는 안 되고 데이터 노드도 유사한 역할을 할 수 있다.구성은 다음과 같습니다.
node.master: false 
node.data: false

데이터 노드 경로 설정:
모든 주 노드와 데이터 노드는 분할, 인덱스, 메타데이터의 물리적 저장 위치,path를 알아야 한다.데이터 기본 비트는 $ES_홈/데이터, 프로필 elasticsearch를 통해 사용할 수 있습니다.yml는 다음과 같이 수정됩니다.
path.data:  /var/elasticsearch/data
이 설정은 명령줄에서도 수행할 수 있습니다. 예를 들어 다음과 같습니다.
elasticsearch --path.data/var/elasticsearch/data
이 경로는 Elasticsearch의 디렉터리와 데이터의 디렉터리가 분리되도록 따로 설정하는 것이 좋습니다.Elasticsearch 홈 디렉터리를 삭제했을 때 데이터에 영향을 주지 않습니다.rpm 설치를 통해 기본적으로 구분됩니다.
데이터 디렉터리는 여러 노드에 공유될 수 있고 심지어 서로 다른 집단에 속할 수 있다. 여러 노드가 같은 데이터 경로를 공유하는 것을 방지하기 위해 프로필elasticsearch를 설정할 수 있다.yml에 추가:node.max_local_storage_nodes: 1
주의: 같은 데이터 디렉터리에서 다른 유형의 노드를 실행하지 마십시오. (예:master, 데이터,client) 의외의 데이터 분실을 초래할 수 있습니다.

부락 노드


부락 노드는 여러 개의 집단을 뛰어넘을 수 있다. 각 집단의 상태를 수신한 다음에 하나의 전역 집단의 상태로 통합할 수 있다. 부락 노드는elasticsearch에 있다.yml의 구성은 다음과 같습니다.
tribe:
    t1: 
        cluster.name:   cluster_one
    t2: 
        cluster.name:   cluster_two

T1과 T2는 모든 집단에 연결되는 임의의 이름입니다.위의 예제에서는 T1과 T2라는 두 클러스터 연결을 구성합니다.기본적으로 부락 노드는 방송을 통해 클라이언트를 위해 모든 집단을 연결할 수 있다.대부분의 상황에서 부락 노드는 단일 노드처럼 집단을 조작할 수 있다.
참고: 다음 작업은 단일 노드 작업과 다릅니다.
만약 두 집단의 이름이 같다면, 부락 노드는 그 중 하나만 연결될 것이다.
주 노드가 없기 때문에local을true로 설정하면 주 노드의 읽기 작업은 자동으로 실행됩니다. 예를 들어 집단 통계, 집단 건강도입니다.
주 노드 단계의 쓰기 작업은 거부될 것입니다. 이것은 집단에서 이루어져야 합니다.
부락 노드는 블록(block)을 통해 모든 쓰기 작업과 모든 메타데이터 작업을 설정할 수 있습니다. 예를 들어 다음과 같습니다.
tribe:
    blocks:
        write:    true
        metadata: true

부락 노드는 선택한 색인 블록에서 구성할 수도 있습니다. 예를 들어 다음과 같습니다.
tribe:
    blocks:
        write.indices:    hk*,ldn*
        metadata.indices: hk*,ldn*

여러 집단이 같은 색인 이름을 가지고 있을 때, 기본적으로 부락의 노드는 그 중 하나를 선택할 것이다.이것은 부족을 통과할 수 있다.on_conflict setting을 설정하면 색인을 배제하거나 고정된 부락 이름을 지정할 수 있습니다.
세크랜드(secisland)는 Elasticsearch의 최신 버전의 각종 기능을 점차적으로 분석할 것이니 기대해 주십시오.secisland 공중호에 가입하여 관심을 가지는 것도 환영합니다.

좋은 웹페이지 즐겨찾기