Elasticsearch 권위 있는 가이드 - 분산 클러스터(필기)
3842 단어 Elasticsearch
확장 가능: 가로 확장 (집단의 노드 수 증가) 과 세로 확장 (더 좋은 서버 사용)세로 확장은 한계가 있다. 진정한 확장성은 가로 확장이고 노드를 증가시켜 부하를 균등하게 분담하고 신뢰성을 증가해야 한다.
이 절은 집단(cluster), 노드(node)와 분할(shards), 그리고 수요에 따라 확장하고 하드웨어 고장 시 데이터가 여전히 안전한지 확인합니다.
1. 집단과 노드의 관계
하나의 집단은 여러 개의 노드로 구성되어 있으며, 그들은 같은cluster를 가지고 있다.name, 노드를 추가하거나 삭제하면 집단이 데이터를 감지하고 균형을 잡습니다.
주 노드 (master) = = 는 색인 삭제, 추가 또는 이동 등 집단 단계의 변동을 임시로 관리합니다.
노드 (node) = = = 우리는 모든 노드와 통신할 수 있다. 주 노드를 포함하여 모든 노드는 문서가 그 노드에 저장되어 있음을 알고 있으며, 그들은 상응하는 노드에 요청을 전달할 수 있다.우리가 방문한 노드는 각 노드가 되돌아오는 데이터를 수집하여 클라이언트에게 되돌려준다.
2. 색인 추가
데이터를elasticsearch에 추가하려면 색인을 추가해야 합니다. - 관련 데이터를 저장하는 곳입니다.색인은 하나 이상의 슬라이스 (shards) 를 가리키는 논리 이름 공간입니다.
분할은 주로 분할하고 분할을 복제한다. 복제 분배는 하드웨어 고장으로 인한 데이터 분실을 방지할 수 있을 뿐만 아니라 읽기 요청을 제공할 수 있다. 예를 들어 검색이나 다른shard에서 문서를 되찾을 수 있다.
색인 생성이 완료되면 주 분할 수량은 고정되지만 복제 분할 수량은 언제든지 조정할 수 있습니다.
단일 노드에 색인 블로그 만들기:
PUT /blogs
{
"settings" : {
"number_of_shards" : 3,
"number_of_replicas" : 1
}
}
cluster-health를 입력하면 볼 수 있습니다.
{
"cluster_name": "elasticsearch",
"status": "yellow", <1>
"timed_out": false,
"number_of_nodes": 1,
"number_of_data_nodes": 1,
"active_primary_shards": 3,
"active_shards": 3,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 3 <2>
}
yellow
단일 노드가 만든 인덱스이기 때문에 세 개의 메인 슬라이드가 시작되고 정상적으로 실행되었지만 복제 노드가 정상적으로 실행되지 않았습니다. (같은 노드에 같은 데이터를 저장하는 복제 노드는 필요하지 않습니다. 이 노드가 고장나면 모든 데이터 사본도 잃어버립니다.) 이 그룹의 건강 상태는 yellow입니다.
3. 노드 증가
elasticsearch 집단에 노드를 추가합니다. 새로 추가된 노드를 시작하고 두 번째 노드와 집단 노드의cluster를 시작합니다.name는 같습니다 (./config/elasticsearch.yml 파일 참조). 새 노드는 자동으로 발견하고 elasticsearch 집단을 가입할 수 있습니다.집단에 가입하지 않았다면, 로그 검색 문제가 어디에 있는지 확인하십시오. 인터넷 방송이 금지되었거나, 방화벽이 노드 간의 통신을 막았을 수도 있습니다.
문서의 인덱스는 우선 메인 슬라이스에 저장된 다음에 해당하는 복사 노드에 복사됩니다.이렇게 하면 데이터는 주 노드와 복제 노드에서 모두 검색될 수 있다.
마스터 블록은 데이터 저장이 끝났을 때 이미 결정되었지만, 마스터 블록과 복제 블록은 모두 읽기 요청 - 검색 또는 문서 검색 기능을 처리할 수 있기 때문에 데이터의 군더더기가 많을수록 우리가 처리할 수 있는 검색 토출량은 더욱 크다.
마스터 슬라이스의 수는 변경할 수 없습니다. 그러면 복제 슬라이스의 수를 어떻게 늘릴 것인가:
PUT /blogs/_settings
{
"number_of_replicas" : 2
}
*** 주의 *** 같은 수의 노드에 더 많은 복제 노드를 추가하는 것은 성능을 향상시킬 수 없다. 복제 블록의 수를 늘리면 각 블록이 점유하고 있는 하드웨어 자원을 줄일 수 있기 때문이다. (번역자 주석, 대량의 요청이 블록이 적은 노드에 모여서 한 노드의 토출량이 너무 커서 오히려 성능을 떨어뜨린다) 따라서 하드웨어 노드를 늘려 성능을 향상시켜야 한다.
4. 고장에 대처하는 방법
주 노드 마스터가 끊겼을 때, 그룹 stats가 레드를 표시하는 것을 검사합니다. 모든 주 블록이 작동할 수 있는 것은 아닙니다.그러나 다행히도 잃어버린 메인 필름의 복사(복제 필름)는 다른 노드에 저장되어 있기 때문에 새로운 마스터가 해야 할 첫 번째 일은 다른 노드에서 일할 수 있는 복제 필름을 메인 필름으로 업그레이드하는 것이다. 이렇게 하면 집단의 건강이 다시 옐로우 상태로 돌아가는 것이다.이 때 복제 분할 수량이 설정 수량에 이르지 않았기 때문에 집단은 그린 상태로 회복할 수 없습니다. 고장 노드를 다시 시작하면 집단은 잃어버린 복제 분할 수량을 분배할 수 있습니다.만약 고장 노드가 오래된 조각의 복사본을 보존하고 있다면, 그는 그들을 다시 이용할 것이다. 그는 마스터에서 고장 기간에 데이터가 변경된 부분만 복사할 것이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Embulk를 사용하여 ElasticCloud로 보내기Embulk에서 ElasticCloud에 보낼 수 있을까라고 생각비망록도 겸해 기술을 남깁니다 Embulk 설치 ElasticCloud (14 일 체험판) brew라면 아래 명령 입력 파일 만들기 파일 내용 seed...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.