목차
1. Windows에 Elasticsearch 설치
1. JDK 설치
버전 1.8.0_73 이상인 JDK를 설치하고 java -version을 확인하세요 .
2. 다운로드 및 압축 해제
Elasticsearch 설치 패키지를 다운로드하고 압축을 풀고 디렉터리 구조를 확인하세요.
https://www.elastic.co/cn/downloads/elasticsearch
bin: 시작, 중지 및 기타 실행 가능한 스크립트를 포함하는 스크립트 디렉터리
config: 구성 파일 디렉터리
데이터: 인덱스 파일이 저장되는 인덱스 디렉터리
로그: 로그 디렉터리
모듈: es의 기능 모듈을 포함한 모듈 디렉토리
플러그인 : 플러그인 디렉토리, es는 플러그인 메커니즘을 지원합니다.
3. 구성 파일
위치:
- ES 구성 파일의 주소는 설치 형식에 따라 다릅니다.
- zip과 tar를 이용하여 설치하며, 설정 파일의 주소는 설치 디렉터리의 config 아래에 있습니다.
- RPM을 사용하여 설치하고 구성 파일은 /etc/elasticsearch 아래에 있습니다.
- MSI 설치를 사용하면 구성 파일의 주소는 설치 디렉터리의 config 아래에 있으며 구성 디렉터리의 주소는 환경 변수 ES_PATH_CONF에 자동으로 기록됩니다.
탄력적 검색.yml
구성 형식은 YAML이며 다음 두 가지 방법으로 사용할 수 있습니다.
방법 1 : 계층적 방법
길: 데이터: /var/lib/elasticsearch 로그: /var/log/elasticsearch |
방법 2 : 속성 방법
path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch |
일반적으로 사용되는 구성 항목은 다음과 같습니다
Cluster.name: elasticsearch 의 클러스터 이름을 구성합니다 . 기본값은 elasticsearch 입니다 . 의미있는 이름으로 변경하는 것이 좋습니다. node.name: 노드 이름, 일반적으로 물리적 서버는 노드입니다. 기본적으로 이름을 무작위로 지정 합니다 . 의미 있는 이름을 지정하는 것이 좋습니다. 하나 이상의 노드를 관리하여 클러스터 클러스터를 형성하는 것이 편리 합니다 . 논리적 개념, 노드는 물리적 개념이며 다음 장에서 자세히 소개됩니다. path.conf: 구성 파일의 저장 경로를 설정합니다. tar 또는 zip 패키지 설치의 기본값은 es 루트 디렉터리 아래의 config 폴더 이며, rpm 설치의 기본값은 /etc/elasticsearch 입니다. path.data: 인덱스 데이터의 저장 경로를 설정합니다. 기본값은 es 루트 디렉터리 아래의 데이터 폴더 입니다. 여러 저장 경로를 쉼표로 구분하여 설정할 수 있습니다. path.logs: 로그 파일의 저장 경로를 설정합니다. 기본값은 es 루트 디렉터리 아래의 로그 폴더 입니다. path.plugins: 플러그인의 저장 경로를 설정합니다. 기본값은 es 루트 디렉터리 의 플러그인 폴더 입니다. bootstrap.memory_lock: true 메모리와 스왑 파티션 간의 데이터 교환을 방지하기 위해 ES 에서 사용하는 메모리를 잠그려면 true 로 설정하십시오 . network.host: 바인딩 호스트의 IP 주소를 설정합니다. 0.0.0.0 으로 설정하면 모든 IP를 바인딩하여 외부 네트워크 접근을 허용한다는 의미입니다. 프로덕션 환경에서는 특정 IP 로 설정하는 것이 좋습니다 . http.port: 9200 외부 서비스에 대한 http 포트를 설정합니다 . 기본값은 9200 입니다 . Transport.tcp.port: 9300 클러스터 노드 간 통신 포트 node.master: 노드가 마스터 노드로 선출될 자격이 있는지 여부를 지정합니다. 기본값은 true 입니다 . 원래 마스터가 다운되면 새 마스터가 다시 선택됩니다 . node.data: 노드가 인덱스 데이터를 저장하는지 여부를 지정합니다. 기본값은 true 입니다 . discovery.zen.ping.unicast.hosts: ["host1:port", "host2:port", "..."] 클러스터에 있는 마스터 노드의 초기 목록을 설정합니다 . discovery.zen.ping.timeout: 3s ES가 노드 연결을 자동으로 검색하는 시간 초과 시간을 설정합니다 . 기본값은 3 초입니다. 네트워크 지연이 높을 경우 더 크게 설정할 수 있습니다. discovery.zen.minimum_master_nodes: 마스터 노드 수의 최소값 이 값의 공식은 (master_eligible_nodes / 2) + 1 입니다. 예: 요구 사항을 충족하는 마스터 노드가 3개 있는 경우 2 로 설정합니다 . 여기 . node.max_local_storage_nodes: 单机允许的最大存储结点数,通常单机启动一个结点建议设置为1,开发环境如果单机启动多个节点可设置大于1。 |
jvm.options
设置最小及最大的JVM堆内存大小:在jvm.options中设置 -Xms和-Xmx:
1) 两个值设置为相等
2) 将Xmx 设置为不超过物理内存的一半。
log4j2.properties
日志文件设置,ES使用log4j,注意日志级别的配置。
4、启动
启动Elasticsearch:bin\elasticsearch.bat,es的特点就是开箱即,无需配置,启动即可。
注意:es7 windows版本不支持机器学习,所以elasticsearch.yml中添加如下几个参数:
node.name: node-1 cluster.initial_master_nodes: ["node-1"] xpack.ml.enabled: false http.cors.enabled: true http.cors.allow-origin: /.*/ |
5、检查ES是否启动成功
检查ES是否启动成功:http://localhost:9200/?Pretty { "name": "node-1", "cluster_name": "elasticsearch", "cluster_uuid": "HqAKQ_0tQOOm8b6qU-2Qug", "version": { "number": "7.3.0", "build_flavor": "default", "build_type": "zip", "build_hash": "de777fa", "build_date": "2019-07-24T18:30:11.767338Z", "build_snapshot": false, "lucene_version": "8.1.0", "minimum_wire_compatibility_version": "6.8.0", "minimum_index_compatibility_version": "6.0.0-beta1" }, "tagline": "You Know, for Search" } |
解释:
name: node名称,取自机器的hostname
cluster_name: 集群名称(默认的集群名称就是elasticsearch)
version.number: 7.3.0,es版本号
version.lucene_version:封装的lucene版本号
6、浏览器访问
浏览器访问http://localhost:9200/_cluster/health查询集群状态 { "cluster_name": "elasticsearch", "status": "green", "timed_out": false, "number_of_nodes": 1, "number_of_data_nodes": 1, "active_primary_shards": 0, "active_shards": 0, "relocating_shards": 0, "initializing_shards": 0, "unassigned_shards": 0, "delayed_unassigned_shards": 0, "number_of_pending_tasks": 0, "number_of_in_flight_fetch": 0, "task_max_waiting_in_queue_millis": 0, "active_shards_percent_as_number": 100 } |
解释:
Status:集群状态。Green 所有分片可用。Yellow所有主分片可用。Red主分片不可用,集群不可用。
二、 Windows安装Kibana
1、kibana是es数据的前端展现,数据分析时,可以方便地看到数据。作为开发人员,可以方便访问es。
2、下载,解压kibana。
3、启动Kibana:bin\kibana.bat
4、浏览器访问 http://localhost:5601 进入Dev Tools界面。像plsql一样支持代码提示。
5、发送get请求,查看集群状态GET _cluster/health。相当于浏览器访问。
总览
Dev Tools界面
监控集群界面(展示集群状态--搜索速率、索引速率等)