网站换皮肤了
docker搭建Elasticsearch集群
时间:2020-07-29 10:57 浏览:50

摘要

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

一、准备环境

  1. 一台服务器,系统centos7,ip 10.200.4.104

  2. docker环境

二、获取镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.8.1

三、创建目录

mkdir /home/es
cd /home/es
mkdir {data1,data2,data3,config}
# 设置权限,这里只是为了简单的演示,所有目录权限设置为777,线上环境可根据实际情况设置。
chmod 777 data?

四、创建配置

cd /home/es/config

# es1.yml
cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 10.200.4.104
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["10.200.4.104:9300","10.200.4.104:9301","10.200.4.104:9302"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: 
    - es-node1
    - es-node2
    - es-node3

# es2.yml
cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 10.200.4.104
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["10.200.4.104:9300","10.200.4.104:9301","10.200.4.104:9302"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: 
    - es-node1
    - es-node2
    - es-node3

# es3.yml
cluster.name: elasticsearch-cluster
node.name: es-node3
network.bind_host: 0.0.0.0
network.publish_host: 10.200.4.104
http.port: 9202
transport.tcp.port: 9302
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true 
node.data: true  
discovery.zen.ping.unicast.hosts: ["10.200.4.104:9300","10.200.4.104:9301","10.200.4.104:9302"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: 
    - es-node1
    - es-node2
    - es-node3

五、JVM优化

echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p

六、启动集群

 docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v /home/es/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/es/data1:/usr/share/elasticsearch/data --name ES01 docker.elastic.co/elasticsearch/elasticsearch:7.8.1
 
 docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9201 -p 9301:9301 -v /home/es/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/es/data2:/usr/share/elasticsearch/data --name ES02 docker.elastic.co/elasticsearch/elasticsearch:7.8.1

 docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9202:9202 -p 9302:9302 -v /home/es/config/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /home/es/data3:/usr/share/elasticsearch/data --name ES03 docker.elastic.co/elasticsearch/elasticsearch:7.8.1

七、查看节点

curl  http://10.200.4.104:9200/_cat/nodes
10.200.4.104 43 99 0 0.00 0.04 0.08 dilmrt - es-node2
10.200.4.104 35 99 0 0.00 0.04 0.08 dilmrt * es-node1
10.200.4.104 28 99 0 0.00 0.04 0.08 dilmrt - es-node3

执行curl,如果你看到curl下面的信息的话,那么恭喜你集群搭建成功了。

八、可视化后台

dejavu

docker pull appbaseio/dejavu

docker run -p 1358:1358 -d appbaseio/dejavu

然后访问http://10.200.4.104:1358/,在输入框中输入http://10.200.4.104:9200/索引再点连接,即可进行操作了。

elasticsearch-head

docker pull mobz/elasticsearch-head:5

docker run -p 9100:9100 mobz/elasticsearch-head:5




如果这篇文章对你有所帮助,可以通过下边的“打赏”功能进行小额的打赏。

本网站部分内容来源于互联网,如有侵犯版权请来信告知,我们将立即处理。


来说两句吧