Elasticsearch官网:欢迎来到 Elastic — Elasticsearch 和 Kibana 的开发者 | Elastic

学习任何框架和技术,一定要参考相应的官网学习,一定要参考官网学习!!!

注意:Elasticsearch官网访问和加载的耗时很长!!!


目录

1.Elasticsearch介绍

2.基于Docker安装Elasticsearch

2.1 创建网络

2.2 拉取镜像

2.3 创建挂载点目录

2.4 部署单点es,创建es容器

2.5 编写elasticsearch.yml

2.6 重启es容器

2.7 测试Elasticsearch是否安装成功

3.基于Docker安装Kibana

3.1 拉取镜像

3.2 创建挂载点目录

3.3 部署kibana,创建kibana容器

3.4 测试Kibana是否安装成功

4. 基于Docker安装IK分词器

4.1 进入Elasticsearch容器

4.2 在线安装IK分词器


1.Elasticsearch介绍

【摘自百度百科】    

        Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
        Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。
        Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。Elasticsearch是分布式的,这意味着索引可以被分成分片,每个分片可以有0个或多个副本。每个节点托管一个或多个分片,并充当协调器将操作委托给正确的分片。再平衡和路由是自动完成的。相关数据通常存储在同一个索引中,该索引由一个或多个主分片和零个或多个复制分片组成。一旦创建了索引,就不能更改主分片的数量。
        Elasticsearch使用Lucene,并试图通过JSON和Java API提供其所有特性。它支持facetting和percolating,如果新文档与注册查询匹配,这对于通知非常有用。另一个特性称为“网关”,处理索引的长期持久性;例如,在服务器崩溃的情况下,可以从网关恢复索引。Elasticsearch支持实时GET请求,适合作为NoSQL数据存储,但缺少分布式事务。


2.基于Docker安装Elasticsearch

2.1 创建网络

        因为需要部署kibana容器,因此需要让es和kibana容互联。

指令:
docker network create es-net

实例:

[root@bogon howlong]# docker network create es-net
344f17ffe435894bc3ec98f3e3c1ad93cbde41a473576e645a0d24b6111e7e2e
[root@bogon howlong]#

2.2 拉取镜像

        以安装Elasticsearch 8.6.0 版本为例
指令:

docker pull elasticsearch:8.6.0

实例:

[root@bogon howlong]# docker pull elasticsearch:8.6.0
8.6.0: Pulling from library/elasticsearch
846c0b181fff: Pull complete 
f3516e94dfa9: Pull complete 
b8d95ef1999f: Pull complete 
69af40093f34: Pull complete 
52d2fb478029: Pull complete 
14619d64e022: Pull complete 
ff00ac3f5836: Pull complete 
2eed17832094: Pull complete 
5a7083c2053b: Pull complete 
Digest: sha256:12d0ff50b96a53d2a8e103ba2e0e69187babc3dcf8bdc88788d019cdebb75c0c
Status: Downloaded newer image for elasticsearch:8.6.0
docker.io/library/elasticsearch:8.6.0
[root@bogon howlong]# 

2.3 创建挂载点目录

指令:

mkdir -p /usr/local/es/data /usr/local/es/config /usr/local/es/plugins

实例:

[root@bogon howlong]# mkdir -p /usr/local/es/data /usr/local/es/config /usr/local/es/plugins
[root@bogon howlong]# 

指令:

chmod 777  /usr/local/es/data
chmod 777  /usr/local/es/config
chmod 777  /usr/local/es/plugins

2.4 部署单点es,创建es容器

指令: 

docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.6.0

实例:

[root@bogon howlong]# docker run -d \
--restart=always \
--name es \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
--privileged \
-v /usr/local/es/data:/usr/share/elasticsearch/data \
-v /usr/local/es/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.6.0
2a1b0b31da4c349fd8b23d5f9618cf21049b10c1dd3f1bcd27943f629874774b
[root@bogon howlong]# 

2.5 编写elasticsearch.yml

        先进入es容器

指令:

docker exec -it es /bin/bash

实例:

[root@bogon howlong]# docker exec -it es /bin/bash
elasticsearch@6b64658d77d5:~$ 

        跳转到config目录下

指令:

cd config

实例:

elasticsearch@6b64658d77d5:~$ cd config
elasticsearch@6b64658d77d5:~/config$ 

        关闭 密码安全验证

指令:

echo 'xpack.security.enabled: false' >> elasticsearch.yml

2.6 重启es容器

指令;

docker restart es

2.7 测试Elasticsearch是否安装成功

访问虚拟机地址+端口号,前面配置Elasticsearch 的端口号为:9200

例如:

http://192.168.27.129:9200


3.基于Docker安装Kibana

3.1 拉取镜像

        以安装kibana 8.6.0 版本为例

指令:

docker pull kibana:8.6.0

实例:

[root@bogon howlong]# docker pull kibana:8.6.0
8.6.0: Pulling from library/kibana
846c0b181fff: Already exists 
d9d4723b53e8: Pull complete 
3ce175049527: Pull complete 
c5a9d626f54a: Pull complete 
ce0bd3b890fe: Pull complete 
4f4fb700ef54: Pull complete 
1cb2fe49dd32: Pull complete 
7cbec743e1ac: Pull complete 
de07a2df0c3f: Pull complete 
f138fef302e6: Pull complete 
c6afac2b2f31: Pull complete 
53c0672d0212: Pull complete 
7522efaa8c9c: Pull complete 
5e8db7e50c16: Pull complete 
Digest: sha256:71d8a59d32b181c3b3c04a4fecf2197f00eb381659510d04261c2cd5d43a0225
Status: Downloaded newer image for kibana:8.6.0
docker.io/library/kibana:8.6.0
[root@bogon howlong]# 

3.2 创建挂载点目录

指令:

mkdir -p /usr/local/kibana/config /usr/local/kibana/data

代码:

[root@bogon howlong]# mkdir -p /usr/local/kibana/config /usr/local/kibana/data
[root@bogon howlong]# 

指令:

chmod 777 /usr/local/kibana/data
chmod 777 /usr/local/kibana/config

3.3 部署kibana,创建kibana容器

指令:

docker run -d \
--restart=always \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:8.6.0

实例:

[root@bogon howlong]# docker run -d \
--restart=always \
--name kibana \
--network es-net \
-p 5601:5601 \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
kibana:8.6.0
cfcc8b35079d9e74be20f89ab0c96d2a9af8e0679b055e0684865d3d042f7307
[root@bogon howlong]# 

3.4 测试Kibana是否安装成功

访问虚拟机地址+端口号,前面配置Kibana 的端口号为:5601

例如:

http://192.168.27.129:5601


4. 基于Docker安装IK分词器

4.1 进入Elasticsearch容器

指令:

docker exec -it es /bin/bash

实例:

[root@bogon howlong]# docker exec -it es /bin/bash
elasticsearch@6b64658d77d5:~$ 

4.2 在线安装IK分词器

        注意:安装IK分词器的版本,必须和Elasticsearch的版本一致,

        上文安装的是Elasticsearch 8.6.0的,所以接下来安装的IK分词器版本是8.6.0

指令:

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.6.0/elasticsearch-analysis-ik-8.6.0.zip

如果需要安装其他版本的IK分词器,需要把版本号修改即可

如:

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.6.0/elasticsearch-analysis-ik-8.6.0.zip

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐