Elasticsearch 중요 구성 상세 정보
5619 단어 elasticsearch
기사 목록
1 Elasticsearch 기본 구성
elasticsearch의 설정 정보는elasticsearch에 있습니다.yml에는 다음과 같은 중요한 구성이 나와 있습니다.
1.1 클러스터 이름
기본적으로 es의 그룹 이름은 elasticsearch입니다. 실제 응용 프로그램에서 의미 있는 그룹 이름을 설정해야 합니다.
cluster.name: elasticsearch-cluster-demo
1.2 노드 정보
es 노드는 es 집단의 어떤 노드입니다. 기본적인 세 가지 정보로 설명할 수 있습니다. 노드 이름(node.name), 주 노드(node.master), 데이터 노드(node.data)입니다.기본적으로 노드 이름은 시작할 때마다 무작위로 생성되기 때문에 문제를 쉽게 조사할 수 있도록 의미 있는 이름을 설정해야 한다.한편, 노드는 주 노드, 데이터 노드, 클라이언트 노드, 부락 노드로 나뉘는데 다음은 하나의 노드(주 노드만)의 구성 예이다.
node.name: node-master-one
node.master: true
node.data: false
1.3 데이터 저장 경로/로그 경로
기본적으로 es 데이터와 로그의 저장 경로는 설치 디렉터리에 있습니다. 삭제되지 않도록 경로를 다시 설정해야 합니다.구성 예제는 다음과 같습니다.
# Path to directory where to store the data (separate multiple locations by comma):
# es data ( ',' )
path.data: /home/environment/elasticsearch-cluster/elasticsearch-master-one/data
#
# Path to log files:
# log
path.logs: /home/environment/elasticsearch-cluster/elasticsearch-master-one/logs
1.4 네트워크 연결 감청
es를 구축할 때도 감청된 호스트 IP를 수정해야 하며 포트는 기본값으로 사용할 수 있다.
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
1.5 최소 마스터 포인트
만약es집단을 구축한다면 뇌분열 현상을 방지하기 위해 최소 주 노드를 설정해야 한다. 여러 개의 주 노드가 동시에 하나의 집단과 존재한다. (한 집단은 하나의 주 노드만 허용된다.)집단의 주 노드는 집단의 최고 통치자로서 색인 생성과 분할 이동 전략 등을 제어한다.만약에 한 집단에 여러 개의 주 노드가 나타난다면 한 집단에 두 개의 리더가 나타나는 것과 같이 원래의 전체가 구분되고 es집단에 대해 말하자면 원래의 분할(데이터)이 분리된다. 그러면 데이터가 불완전성을 나타낼 수 있다.
집단의 주 노드는 모든 경선 자격이 있는 주 노드 (즉 노드 정보 설정 node.master는true) 의 투표로 선출되기 때문에 현재 얻은 투표 수량은 총 표수 반보다 많아야 한다.그래서 es에서는 후보가 설정한 마스터 노드가 설정된 법정 개수에 도달할 때 주 노드 선거를 실시한다. 법정 개수 = 마스터-eligible nodes/2 +1
# Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
#
discovery.zen.minimum_master_nodes: 2
es 노드는 동적으로 삭제하고 추가할 수 있기 때문에 이 설정은 API를 통해 동적으로 설정할 수 있습니다.
1.6 클러스터 복구
es 집단은 시작할 때 데이터 균형 조작을 합니다.예를 들어 10개의 노드 5/1분할 정책(5개의 분할, 5개의 복사본 분할)의 집단은 균형적으로 각 노드마다 하나의 분할이다. 만약에 집단이 재개될 때 5개의 노드가 네트워크 원인으로 인해 한동안 시작되지 않으면 하나의 상황이 발생할 수 있다. 시작하는 5개의 노드 중 3개의 주분할, 2개의 부분할이 있다.이때 주분편 데이터가 완전하지 않고 고르지 않게 분포되고 이때 집단은 자동으로 데이터의 균형 조작을 한다.만약 일정 시간 후에 다른 5개 노드가 다시 접속하여 자체의 데이터가 집단에 존재하는 것을 발견하면 균형 조작을 할 것이다.이렇게 하면 두 차례의 데이터 균형 이동 조작이 디스크와 대역폭을 차지하게 되고 데이터의 양이 많으면 영향을 미칠 수 있다.따라서 클러스터가 재부팅될 때 데이터 복구에 걸리는 시간을 최대한 단축할 수 있도록 다음과 같은 제어를 할 수 있습니다.
gateway.recover_after_nodes: 8
gateway.expected_nodes: 10
gateway.recover_after_time: 5m
1.7 클러스터 노드 검색
단독 방송 방식을 사용하여 노드에 연결을 시도해야 하는 노드 목록을 제공하고 연결에 성공하여 집단의 상태 정보를 얻으면 집단에 가입한다.노드 목록에서 모든 노드가 아닐 수 있습니다. 그룹에 들어갈 수 있도록 보장하면 됩니다. (일부 후보 주 노드를 선택할 수 있습니다.)
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
# ip:port
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300"]
1.8 분할 할당 지연
es집단이 운행할 때 노드가 가입하거나 떠날 때 분할 균형 조작을 한다. 이 과정은 집단이 재개될 때의 데이터 복구 과정과 같이 여러 차례 분할 균형이 발생하는 과정을 초래할 수 있기 때문에 분할 분배를 늦추어 이 상황이 발생하지 않도록 설정해야 한다.
# 5min
delayed_timeout: 5m
이 설정은 API 형식으로도 동적으로 설정할 수 있습니다.
1.9 메모리 교환 금지
메모리 교환은 성능에 영향을 미칠 수 있습니다. es 정부는 JVM이 메모리를 잠글 수 있도록 허용하고 메모리 교환이 발생하는 것을 금지하는 것을 추천합니다.
bootstrap.mlockall: true
2 추가 구성
2.1 Elasticsearch JVM 메모리
es의 기본 설치 메모리는 1g입니다. 이것은 필요에 따라 es의 config 디렉터리에 있는 jvm를 설정할 수 있습니다.옵션:
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms1g
-Xmx1g
물론 이 메모리는 임의로 설정된 것이 아니라 최대값과 최소값을 추천합니다. 메모리가 바뀔 때 시스템 자원을 낭비하지 않도록 합니다.그 다음으로 하드웨어 자원이 충분하게 구매되더라도 32g을 초과하지 말고 (구체적인 원인은 Elasticsearch 권위 지침 참조) 밑바닥 루틴에게 다분점을 줄 수 있다.
2.2 파일 설명자 및 MMap 메모리 매핑
es는 노드가 통신할 때 대량의 플러그인을 생성하고 es 밑바닥의 루틴이 대량의 파일을 사용하기 때문에 충분한 파일 설명자가 필요하며 linux에서는 일반적으로 제한이 있기 때문에 큰 값으로 수정해야 한다.
파일/etc/security/limits를 수정할 수 있습니다.conf
vim /etc/security/limits.conf
다음 구성을 추가하고 구성 값을 원하는 값으로 설정하면 됩니다.
# -
#
elasticsearch soft nofile 65536
elasticsearch hard nofile 65536
es는 파일 혼합에 NioFs(비차단 파일 시스템)와 MMapFs(메모리 맵 파일 시스템)를 사용하기 때문에 맵에 충분한 가상 메모리를 확보해야 한다.
/etc/sysctl를 직접 수정할 수 있습니다.conf 파일에 다음과 같은 설정을 추가합니다. 설정 값은 필요한 값으로 설정하면 됩니다.
vm.max_map_count=655360
다음 명령을 수행합니다.
sysctl -p
이 두 항목은elasticsearch를 시작하기 전에 설정하지 않으면es를 시작할 때 관련 오류를 직접 보고하여 시작할 수 없습니다.
2.3 GC 구성 및 스레드 풀
이 두 가지 설정에 대해 es 정부는 수정하지 말라고 강력히 건의합니다. 구체적인 원인은 Elasticsearch의 권위 있는 지침을 참고할 수 있습니다.
3 참고 자료
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
kafka connect e elasticsearch를 관찰할 수 있습니다.No menu lateral do dashboard tem a opção de connectors onde ele mostra todos os clusters do kafka connect conectados atu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.