Elasticsearch安装
使用安装包的方式进行单机部署
下载安装包:
1
| wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.1-darwin-x86_64.tar.gz
|
解压安装包:
1
| tar -xvf elasticsearch-7.4.1-darwin-x86_64.tar.gz
|
运行:
1 2
| cd elasticsearch-7.4.1/bin ./elasticsearch
|
###使用安装包的方式进行集群部署
使用安装包的方式进行集群部署其实也很简单,你可以使用如下脚本来启动集群服务:
1 2 3 4 5 6 7 8 9 10
| #!/bin/bash case $1 in "start") { /Users/pengli/software/middle-software/elasticsearch-7.4.1/bin/elasticsearch -E node.name=node0 -E cluster.name=elasticserch -E path.data=node0_data -d /Users/pengli/software/middle-software/elasticsearch-7.4.1/bin/elasticsearch -E node.name=node1 -E cluster.name=elasticserch -E path.data=node1_data -d /Users/pengli/software/middle-software/elasticsearch-7.4.1/bin/elasticsearch -E node.name=node2 -E cluster.name=elasticserch -E path.data=node2_data -d /Users/pengli/software/middle-software/elasticsearch-7.4.1/bin/elasticsearch -E node.name=node3 -E cluster.name=elasticserch -E path.data=node3_data -d echo "**********elasticsearch cluster start**********" };; esac
|
注意:请使用自己的安装路径替换如上脚本中的路径
使用Docker的方式进行单机部署
拉取镜像:
1
| docker pull elasticsearch:7.4.1
|
如果你想用其他版本,可以搜索镜像,拉取你喜欢的版本:
1
| docker search elasticsearch
|
运行镜像:
1
| docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.4.1
|
使用Docker的方式进行集群部署
创建docker-compose.yml文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| version: '2.2' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch:7.4.1 container_name: es01 environment: - node.name=es01 - cluster.name=es-docker-cluster - discovery.seed_hosts=es02,es03 - cluster.initial_master_nodes=es01,es02,es03 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - D:/Elasticsearch-Cluster/data01:/usr/share/elasticsearch/data ports: - 9200:9200 networks: - elastic es02: image: docker.elastic.co/elasticsearch/elasticsearch:7.4.1 container_name: es02 environment: - node.name=es02 - cluster.name=es-docker-cluster - discovery.seed_hosts=es01,es03 - cluster.initial_master_nodes=es01,es02,es03 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - D:/Elasticsearch-Cluster/data02:/usr/share/elasticsearch/data networks: - elastic es03: image: docker.elastic.co/elasticsearch/elasticsearch:7.4.1 container_name: es03 environment: - node.name=es03 - cluster.name=es-docker-cluster - discovery.seed_hosts=es01,es02 - cluster.initial_master_nodes=es01,es02,es03 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - D:/Elasticsearch-Cluster/data03:/usr/share/elasticsearch/data networks: - elastic
networks: elastic: driver: bridge
|
docker-compose.yml文件的最后使用的是bridge网络,可以使用如下命令查看是否存在这个网络:
如果你没这个网络,可以使用如下命令新建一个
1
| docker network create bridge
|
配置说明:
- image:指定elasticsearch镜像
- container_name:执行运行容器的名称,可以随意指定
- volumes:配置卷宗映射关系,比如将本地的/Users/pengli/software/docker/elasticsearch/data03数据目录映射到docker容器的/usr/share/elasticsearch/data,这样可以保证重启容器不会导致elasticsearch数据丢失
常见错误:
如果你在使用docker部署elasticsearch集群服务中出现如下错误:java.net.UnknownHostException,那么请调大分配给docker的内存空间至4个G,官网给出的解决方案就是提升docker可用内存至4GB
启动elasticsearch集群服务:
在docker-compose.yml目录中执行docker-compose up -d来启动集群服务
关闭elasticsearch集群服务:
在docker-compose.yml目录中执行docker-compose down来关闭集群服务
查看集群信息:
在浏览器中输入http://localhost:9200/_cat/nodes查看集群服务