Docker 安装 ElasticSearch 7.6.1集群

1、简介

1.1、ElasticSearch 简介

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。

2、准备工作

2.1、安装 Docker

CentOS7 安装 Docker

2.2、创建 bridge 网络并指定 IP 区间

# 创建自定义网络
docker network create --driver bridge --subnet 172.0.0.0/16 woniu_network
 
# 查看已存在网络
docker network ls

2.3、创建数据和配置存放目录

# 创建主节点数据存放目录
mkdir -p /home/docker/elasticsearch/master/data
# 创建主节点配置存放目录
mkdir -p /home/docker/elasticsearch/master/config
# 创建主节点日志存放目录
mkdir -p /home/docker/elasticsearch/master/logs
# 创建主节点插件存放目录
mkdir -p /home/docker/elasticsearch/master/plugins

# 创建从节点1数据存放目录
mkdir -p /home/docker/elasticsearch/node-1/data
# 创建从节点1配置存放目录
mkdir -p /home/docker/elasticsearch/node-1/config
# 创建从节点1日志存放目录
mkdir -p /home/docker/elasticsearch/node-1/logs
# 创建从节点1插件存放目录
mkdir -p /home/docker/elasticsearch/node-1/plugins

3、安装 ElasticSearch

3.1、创建主节点配置文件

# 进入主节点配置文件目录
cd /home/docker/elasticsearch/master/config
# 新建配置文件
vi elasticsearch.yml

# 拷贝如下内容
# ============ 分隔符 =======================
# 集群名称
cluster.name: woniu

# 当前该节点的名称
node.name: master

# 当前该节点是不是有资格竞选主节点
node.master: true

# 当前该节点是否存储数据
node.data: true

# 最大集群节点数
node.max_local_storage_nodes: 2

# 设置网关地址
network.host: 0.0.0.0

# 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。
network.publish_host: 192.168.1.217

# 设置映射端口
http.port: 9200

# 内部节点之间沟通端口
transport.tcp.port: 9300

# 支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"

# 集群发现
discovery.seed_hosts: ["192.168.1.217:1913","192.168.1.217:1923"]

# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
cluster.initial_master_nodes: ["master","node-1"]

3.2、创建从节点1配置文件

# 进入从节点1配置文件目录
cd /home/docker/elasticsearch/node-1/config
# 新建配置文件
vi elasticsearch.yml

# 拷贝如下内容
# ============ 分隔符 =======================
# 集群名称
cluster.name: woniu

# 当前该节点的名称
node.name: node-1

# 当前该节点是不是有资格竞选主节点
node.master: true

# 当前该节点是否存储数据
node.data: true

# 最大集群节点数
node.max_local_storage_nodes: 2

# 设置网关地址
network.host: 0.0.0.0

# 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。
network.publish_host: 192.168.1.217

# 设置映射端口
http.port: 9200

# 内部节点之间沟通端口
transport.tcp.port: 9300

# 支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"

# 集群发现
discovery.seed_hosts: ["192.168.1.217:1913","192.168.1.217:1923"]

# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
cluster.initial_master_nodes: ["master","node-1"]

3.3、运行 ElasticSearch

# 运行主节点
docker run -d -p 1912:9200 -p 1913:9300 \
--name elasticsearch_master \
--network woniu_network \
--ip 172.0.0.22 \
--cpuset-cpus="1" \
--memory="2G" \
-v /home/docker/elasticsearch/master/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/docker/elasticsearch/master/data:/usr/share/elasticsearch/data \
-v /home/docker/elasticsearch/master/plugins:/usr/share/elasticsearch/plugins \
elasticsearch:7.9.2
# 运行从节点1
docker run -d -p 1922:9200 -p 1923:9300 \
--name elasticsearch_node-1 \
--network woniu_network \
--ip 172.0.0.23 \
--cpuset-cpus="1" \
--memory="4G" \
-v /home/docker/elasticsearch/node-1/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/docker/elasticsearch/node-1/data:/usr/share/elasticsearch/data \
-v /home/docker/elasticsearch/node-1/plugins:/usr/share/elasticsearch/plugins \
-v /home/docker/elasticsearch/node-1/logs:/usr/share/elasticsearch/logs \
elasticsearch:7.9.2

3.3、启动报错

3.3.1、情况一

ERROR: [1] bootstrap checks failed
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

# 在 elasticsearch.yml 配置文件中 添加:
cluster.initial_master_nodes: ["node-1"]

3.3.2、情况二

ERROR: [1] bootstrap checks failed
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

# elasticsearch用户拥有的内存权限太小,至少需要262144

# 修改配置 sysctl.conf
sudo vi /etc/sysctl.conf

# 添加下面配置:
vm.max_map_count=655360

# 执行命令:
sysctl -p

4、安装 ElasticHD 可视化工具

4.1、运行 ElasticHD

docker run -d -p 9800:9800 \
--name elastichd \
--network woniu_network \
--ip 172.0.0.23 \
--link elasticsearch:woniu \
containerize/elastichd

4.2、相关页面

Docker 安装 ElasticSearch 7.6.1集群_第1张图片

5、安装 Dejavu 可视化工具

5.1、运行 Dejavu

docker run -d -p 1358:1358 \
--name dejavu \
--network woniu_network \
--ip 172.0.0.25 \
appbaseio/dejavu 

5.2、相关页面

6、安装中文分词器 IK

6.1、在线安装

# 在容器 elasticsearch 中开启一个交互模式的终端
docker exec -it elasticsearch /bin/bash

# 在线下载并安装
./bin/elasticsearch-plugin install \
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.2/elasticsearch-analysis-ik-7.9.2.zip

你可能感兴趣的:(Docker,docker,elasticsearch,es,linux,elasticsearch7)