Docker下安装Elasticsearch集群(一台虚拟机三主节点)

我的虚拟机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/ 查看节点状态,多个节点都显示在集群列表下,则集群安装成功

Docker下安装Elasticsearch集群(一台虚拟机三主节点)_第1张图片

上图数据显示:每个数据版本有一个主分片(连续)和一个副本(非连续的版本号)。

写数据测试

curl -XPOST http://192.168.25.129:9201/bigdata/product/ -d '{"test" : "test11111111"}'

 

关于分片与副本

Docker下安装Elasticsearch集群(一台虚拟机三主节点)_第2张图片

两个重要参数:

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

 

 

 

 

你可能感兴趣的:(docker,elasticsearch)