Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。
CentOS7 安装 Docker
# 创建自定义网络
docker network create --driver bridge --subnet 172.0.0.0/16 woniu_network
# 查看已存在网络
docker network ls
# 创建主节点数据存放目录
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
# 进入主节点配置文件目录
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"]
# 进入从节点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"]
# 运行主节点
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
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"]
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
docker run -d -p 9800:9800 \
--name elastichd \
--network woniu_network \
--ip 172.0.0.23 \
--link elasticsearch:woniu \
containerize/elastichd
docker run -d -p 1358:1358 \
--name dejavu \
--network woniu_network \
--ip 172.0.0.25 \
appbaseio/dejavu
# 在容器 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