阿里云部署ElasticSearch搜索引擎

参考视频
准备环境

一、ElasticSearch介绍

Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜
索功能,还可以进行以下工作:
1、 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
2、 实时分析的分布式搜索引擎。
3、 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。

二、Docker ElasticSearch下载安装

1、安装es镜像
docker pull elasticsearch:6.7.1
2、在根目录建立一个文件夹ES/config

# 创建文件夹 es/config
mkdir -p ES/config
# 进入config
cd /ES/config/
# 分别创建3个文件
vim es1.yml
vim es2.yml
vim es3.yml

3、3个文件内容如下:
es1.yml 解读配置参数意义

# 集群唯一名称,所有节点一致
cluster.name: elasticsearch-cluster
# 节点名称
node.name: es-node1
# 设置可以访问的ip,默认为0.0.0.0,这里全部设置通过
network.host: 0.0.0.0
# 设置其他节点和该节点交互的ip地址(服务器的ip地址)
network.publish_host: 47.102.149.***
# 设置对外服务的http端口,默认为9200
http.port: 9200
# 设置节点之间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# 是否支持跨域,是:true
http.cors.enabled: true
# 表示支持所有域名
http.cors.allow-origin: "*"
# 配置该节点是否有资格被选举为主节点(候选主节点),为防止脑裂,配置奇数个候选主节点
node.master: true
# 配置该节点是数据节点,用于保存数据
node.data: true
# 集群个节点ip地址
discovery.zen.ping.unicast.hosts: ["47.102.149.***:9300","47.102.149.***:9301","47.102.149.***:9302"]
discovery.zen.minimum_master_nodes: 1
  • es1.yml
cluster.name: elasticsearch-cluster
node.name: es-node1
network.host: 0.0.0.0
network.publish_host: 47.102.149.***
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: ["47.102.149.***:9300","47.102.149.***:9301","47.102.149.***:9302"]
discovery.zen.minimum_master_nodes: 1
  • es2.yml
cluster.name: elasticsearch-cluster
node.name: es-node2
network.host: 0.0.0.0
network.publish_host: 47.102.149.***
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: ["47.102.149.***:9300","47.102.149.***:9301","47.102.149.***:9302"]
discovery.zen.minimum_master_nodes: 1
  • es3.yml
cluster.name: elasticsearch-cluster
node.name: es-node3
network.host: 0.0.0.0
network.publish_host: 47.102.149.***
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: ["47.102.149.***:9300","47.102.149.***:9301","47.102.149.***:9302"]
discovery.zen.minimum_master_nodes: 1

4、分别创建三个容器

docker images  # 找到elasticsearch的image id e2667f5db289
# 这里不能用户root账户启动,会报错 ,查看日志 docker logs -f ES01
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 -v /ES/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml --name ES01 e2667f5db289

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9201:9201 -p 9301:9301 -v /ES/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml --name ES02 e2667f5db289

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9202:9202 -p 9302:9302 -v /ES/config/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml --name ES03 e2667f5db289

5、如果遇到elasticsearch启动错误

  • 如果是最大虚拟内存区域vm.max_map_count[65530]太低
vim /etc/sysctl.conf
# 最后一行添加
vm.max_map_count = 655360
# 并执行命令:
sysctl -p
# 删除 ES01 ES02 ES03
docker rm ES01 ES02 ES03
# 然后重启elasticsearch
docker restart ES01 ES02 ES03

6、安装可视化

docker pull mobz/elasticsearch-head:5
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
  • 登录ip:9100
原文地址:https://www.cnblogs.com/nuister/p/14031903.html