21. 클러스터(CLUSTER)
- 클러스터는 Elasticsearch의 가장 큰 시스템 단위
- 하나의 클러스터는 여러 개의 노드로 이루어 짐
- 여러대의 서버가 하나의 클러스터를 구성할 수 있으며, 그 반대도 가능
- 같은 클러스터의 이름으로 노드를 실행하는 것만으로 자동확장이 가능
22. 노드(Node)
- 노드는 마스터 노드와 데이터 노드로 구분
- 마스터 노드는 전체 클러스터 상태의 메타 정보를 관리
- 기존의 마스터 노드가 종료되는 경우 새로운 마스터 노드가 선출됨
- 데이터 노드는 실제 데이터가 저장되는 노드
23. 노드바인딩
- 같은 클러스터 이름을 가지고 실행된 노드는 자동으로 바인딩
- 9200번부터 REST API를 위한 HTTP 통신 포트가 할당
- 9300번부터 노드간 바인딩을 위한 포트로 할당
24. 네트워크 바인딩
- 효율적인 스케일아웃을위해 네트워크에 있는 다른서버의 노드와도 바인딩
- 네트워크 바인딩을 위해 젠 디스커버리(ZEN DISCOVERY) 기능 내장
- 멀티캐스트와 유니캐스트 방식을 모두 지원
- 반드시 두 Elasticsearch 버전은 동일해야 함
26. 샤드와 복사본
- 샤드는 데이터 검색을 위해 구분되는 최소 단위
- 색인된 데이터는 여러 개의 샤드로 분할 저장
- 기본적으로 인덱스당 5개의 샤드와 5개의 복사본으로 분리
- 개수 설정을 제외하면 사용자가 직접 샤드에 접근하는 경우는 없음
- 데이터가 색인되어 저장되는 공간을 최초샤드(Primary Shard)라 함
- 최초 샤드에 데이터가 색인되면 동일한 수 만큼 복사본을 생성
- 최초 샤드가 유실되는 경우 복사본을 최초 샤드로 승격
- 최초 샤드와 복사본은 동시검색대상이 되어 성능향상에 이점이 있음
- 최초 샤드와 복사본은 서로 다른 노드에 저장
- 생성된 인덱스의 샤드 설정은 변경 불가능
#7:이는 검색어와 주제어와의 일치 문제
사용자가 반드시 검색엔진의 주제어만 사용한다는 보장이 없다. 서로 다른 검색어와 일치시켜야하는 등의 어려운점이 많다.
#11:자바 언어로 개발
사용자 위치 정보 이용 가능
다국어 검색 지원
자동 완성 지원
미리 보기 지원
철자 수정 기능 지원
#12:ex) 로그파일에서 특정 문자열을 MySQL에 넣을려한다면 MySQL라이브러리를 써야하며 언어별로 다르게 지원.
원래 언어별 작업 변환 용도로 사용되던 것이 hadoop이다.
hadoop자체는 제너럴라이즈 되어 있어 접근하기 위한 부가서비스(echo서비스)가 상당히 많아서 서버에서 사용하기엔
부담스러워지는 문제가 존재, 그러다보니 최근에 뜨기 시작하게됨.
#15:노드는 데이터를 색인하고 검색을 수행하는 단위 프로세스
기존 노드에 새 노드를 실행하여 연결하는 것만으로 확장 가능
DISCOVERY를 내장하여 별도의 분산시스템관리자 불필요
#23:기존 마스터노드가 종료되면, 새로운 마스터 노드가 선출
데이터 노드가 하나밖에 없는 경우 복사본은 생성되지 않음
마스터 노드와 데이터노드가 반드시 상호 배타적 관계는 아님
일반적으로 데이터 노드는 외부접근을 차단