我的虚拟机IP地:192.168.25.129
1、搜索版本
docker search elasticsearch
2、拉版本,为了配合skywalking,不可以使用6.x以上的版本,所以不可以拉最新版本
docker pull docker.elastic.co/elasticsearch/elasticsearch:5.6.12
docker pull mobz/elasticsearch-head:5 #elasticsearch的管理查询器
3、配置
配置3个节点,必须是大于等于3的奇数个主节点,需要在多个主节点中选举主节点
[root@localhost es_docker]# vi /root/es_docker/es1.yml #新建文件es1.yml
uster.name: es-zy #集群名 node.name: zy1 #节点名 node.master: true #是否主节点 node.data: true #是否数据节点 # head插件设置 http.cors.enabled: true #允许跨站访问 http.cors.allow-origin: "*" #允许跨站来源 network.host: 0.0.0.0 #监听IP地址 discovery.zen.ping.unicast.hosts: ["192.168.25.129:9301", "192.168.25.129:9302","192.168.25.129:9303"] #发现其它主节点地址 discovery.zen.minimum_master_nodes: 1 #设置最小主节点个数,防止脑裂 |
配置主节点2
[root@localhost es_docker]# vi /root/es_docker/es2.yml #新建文件es2.yml
cluster.name: es-zy node.name: zy2 node.master: true node.data: true # head插件设置 http.cors.enabled: true http.cors.allow-origin: "*" network.host: 0.0.0.0 discovery.zen.ping.unicast.hosts: ["192.168.25.129:9301", "192.168.25.129:9302","192.168.25.129:9303"] discovery.zen.minimum_master_nodes: 1 #设置最小主节点个数,防止脑裂 |
配置主节点3
[root@localhost es_docker]# vi /root/es_docker/es3.yml #新建文件es3.yml
cluster.name: es-zy node.name: zy3 node.master: true node.data: true # head插件设置 http.cors.enabled: true http.cors.allow-origin: "*" network.host: 0.0.0.0 discovery.zen.ping.unicast.hosts: ["192.168.25.129:9301", "192.168.25.129:9302","192.168.25.129:9303"] discovery.zen.minimum_master_nodes: 1 #设置最小主节点个数,防止脑裂 |
创建并启动容器
# es1
docker run -d --name es1 -p 9201:9200 -p 9301:9300 -v /root/es_docker/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:5.6.12
# es2
docker run -d --name es2 -p 9202:9200 -p 9302:9300 -v /root/es_docker/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:5.6.12
# es3
docker run -d --name es3 -p 9203:9200 -p 9303:9300 -v /root/es_docker/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:5.6.12
启动elasticsearch-head查看集群状态
docker run -p 9100:9100 mobz/elasticsearch-head:5
打开链接 http://192.168.25.129:9100/ 查看节点状态,多个节点都显示在集群列表下,则集群安装成功
上图数据显示:每个数据版本有一个主分片(连续)和一个副本(非连续的版本号)。
写数据测试
curl -XPOST http://192.168.25.129:9201/bigdata/product/ -d '{"test" : "test11111111"}'
关于分片与副本
两个重要参数:
number_of_shards:每个索引的主分片数,默认值是 5 。这个配置在索引创建后不能修改。
number_of_replicas:每个主分片的副本数,默认值是 1 。对于活动的索引库,这个配置可以随时修改。
例如,我们可以创建只有 一个主分片,没有副本的小索引:
PUT /my_temp_index { "settings": { "number_of_shards" : 1, "number_of_replicas" : 0 } }
然后,我们可以用 update-index-settings API 动态修改副本数:
PUT /my_temp_index/_settings { "number_of_replicas": 1 }
若启动失败,可通过日志命令实时查看docker容器日志
$ docker logs -f -t --tail 行数 容器名
例:实时查看docker容器名为es1的日志
$ docker logs -f -t --tail -f es1