全文检索-Es介绍及安装(一)


前言

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力

一、Elasticsearch是什么?

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索分析探索的能力

1、官网
https://www.elastic.co/elasticsearch/

2、几个概念
1)索引----类比mysql中的数据库
2)类型----类比mysql中的数据表
3)文档----类比mysql中的数据
4)属性----类比mysql中的字段名

如下图
在这里插入图片描述
5)倒排索引
在这里插入图片描述

二、docker安装

1、下载镜像文件
docker pull elasticsearch:7.4.2 存储和检索数据
docker pull kibana:7.4.2 可视化检索数据
1)查看正在运行

docker ps

正在运行有nacos、redis、mysql
在这里插入图片描述
2)看存在哪些镜像:redis、mysql、nacos

[root@iZ8vb2zqmrxey54wknbv7xZ ~]# sudo docker images
REPOSITORY           TAG       IMAGE ID       CREATED         SIZE
redis                latest    7614ae9453d1   14 months ago   113MB
mysql                5.7       c20987f18b13   14 months ago   448MB
nacos/nacos-server   1.1.3     8cb51161b062   3 years ago     700MB

3)下载镜像 docker pull elasticsearch:7.4.2

[root@iZ8vb2zqmrxey54wknbv7xZ ~]# docker pull elasticsearch:7.4.2
7.4.2: Pulling from library/elasticsearch
d8d02d457314: Pull complete 
f26fec8fc1eb: Pull complete 
8177ad1fe56d: Pull complete 
d8fdf75b73c1: Pull complete 
47ac89c1da81: Pull complete 
fc8e09b48887: Pull complete 
367b97f47d5c: Pull complete 
Digest: sha256:543bf7a3d61781bad337d31e6cc5895f16b55aed4da48f40c346352420927f74
Status: Downloaded newer image for elasticsearch:7.4.2
docker.io/library/elasticsearch:7.4.2

4)docker查看下载的镜像文件
在这里插入图片描述
5)下载可视化检索镜像

[root@iZ8vb2zqmrxey54wknbv7xZ ~]# docker pull kibana:7.4.2
7.4.2: Pulling from library/kibana
d8d02d457314: Already exists 
bc64069ca967: Pull complete 
c7aae8f7d300: Pull complete 
8da0971e3b41: Pull complete 
58ea4bb2901c: Pull complete 
b1e21d4c2a7e: Pull complete 
3953eac632cb: Pull complete 
5f4406500758: Pull complete 
340d85e0d1c7: Pull complete 
1768564d16fb: Pull complete 
Digest: sha256:355f9c979dc9cdac3ff9a75a817b8b7660575e492bf7dbe796e705168f167efc
Status: Downloaded newer image for kibana:7.4.2
docker.io/library/kibana:7.4.2

6)查看镜像文件elasticsearch、kibana 统一版本为7.4.2

[root@iZ8vb2zqmrxey54wknbv7xZ ~]# docker images
REPOSITORY           TAG       IMAGE ID       CREATED         SIZE
redis                latest    7614ae9453d1   14 months ago   113MB
mysql                5.7       c20987f18b13   14 months ago   448MB
kibana               7.4.2     230d3ded1abc   3 years ago     1.1GB
elasticsearch        7.4.2     b1179d41a7b4   3 years ago     855MB
nacos/nacos-server   1.1.3     8cb51161b062   3 years ago     700MB

7)查看可用内存(available)

free -m
[root@iZ8vb2zqmrxey54wknbv7xZ ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:          15884        1627        5338           0        8918       13926
Swap:             0           0           0

8)创建实例elasticsearch(即安装)
创建两个文件夹config、data(方便es挂载,以后操作不用进入es内部)

mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data

进入/mydata 文件夹,查看创建的文件夹

[root@iZ8vb2zqmrxey54wknbv7xZ ~]# cd /mydata
[root@iZ8vb2zqmrxey54wknbv7xZ mydata]# ls -l
total 12
drwxr-xr-x 4 root root 4096 Feb 27 22:23 elasticsearch
drwxr-xr-x 5 root root 4096 Mar 27  2022 mysql
drwxr-xr-x 4 root root 4096 Mar 27  2022 redis

进入文件夹,查看是否创建好两个文件夹,进入配置的文件夹

[root@iZ8vb2zqmrxey54wknbv7xZ mydata]# cd elasticsearch/
[root@iZ8vb2zqmrxey54wknbv7xZ elasticsearch]# ls
config  data
[root@iZ8vb2zqmrxey54wknbv7xZ elasticsearch]# cd config

在配置文件夹-写入配置内容

[root@iZ8vb2zqmrxey54wknbv7xZ config]# echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
[root@iZ8vb2zqmrxey54wknbv7xZ config]# ls 
elasticsearch.yml

查看配置内容

[root@iZ8vb2zqmrxey54wknbv7xZ config]# cat elasticsearch.yml
http.host: 0.0.0.0
[root@iZ8vb2zqmrxey54wknbv7xZ config]# ll
total 4
-rw-r--r-- 1 root root 19 Feb 27 22:27 elasticsearch.yml
#1、--name 起名字为elasticsearch ;-p 暴露两个端口,9200是http,restfulapi给es发请求的端口;9300是es集群节点之间通信接口;\ 为换行
[root@iZ8vb2zqmrxey54wknbv7xZ ~]# docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \

#2、运行模式:单节点
> -e "discovery.type=single-node" \
#3、指定es占用虚拟机内存 初始64m,最大为128m;到公司可以分配大点
> -e ES_JAVA_OPTS="-Xms64m -Xmx128m" \

#4、-v 把es内部文件或者文件夹挂载(快捷方式)到外部:elasticsearch.yml、/data、/plugins(插件)
> -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
> -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
> -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \

#5、-d 后台运行 elasticsearch:7.4.2镜像
> -d elasticsearch:7.4.2

如果无法启动,检查日志

[root@iZ8vb2zqmrxey54wknbv7xZ ~]# docker logs elasticsearch

结果
AccessDeniedException[/usr/share/elasticsearch/data/nodes]路径访问权限问题

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
{"type": "server", "timestamp": "2023-02-28T01:01:48,145Z", "level": "WARN", "component": "o.e.b.ElasticsearchUncaughtExceptionHandler", "cluster.name": "elasticsearch", "node.name": "f5d627bec026", "message": "uncaught exception in thread [main]", 
"stacktrace": ["org.elasticsearch.bootstrap.StartupException: ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes];",

解决办法
添加权限命令

[root@iZ8vb2zqmrxey54wknbv7xZ elasticsearch]# ll
total 12
drwxr-xr-x 2 root root 4096 Feb 27 22:27 config
drwxr-xr-x 2 root root 4096 Feb 27 22:23 data
drwxr-xr-x 2 root root 4096 Feb 28 09:01 plugins
# 给/mydata/elasticsearch添加权限命令 -R为递归
[root@iZ8vb2zqmrxey54wknbv7xZ elasticsearch]# chmod -R 777 /mydata/elasticsearch
#查看是否添加成功
[root@iZ8vb2zqmrxey54wknbv7xZ elasticsearch]# ll
total 12
drwxrwxrwx 2 root root 4096 Feb 27 22:27 config
drwxrwxrwx 2 root root 4096 Feb 27 22:23 data
drwxrwxrwx 2 root root 4096 Feb 28 09:01 plugins

查看es是否正在启动,发现已经停用

[root@iZ8vb2zqmrxey54wknbv7xZ elasticsearch]# docker ps -a
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS                      PORTS                                                  NAMES
f5d627bec026   elasticsearch:7.4.2   "/usr/local/bin/dock…"   25 minutes ago   Exited (1) 25 minutes ago                                                          elasticsearch
cf427f45848a   8cb51161b062          "bin/docker-startup.…"   5 months ago     Up 5 months                 0.0.0.0:8848->8848/tcp, :::8848->8848/tcp              nacos
c903efec3de1   redis                 "docker-entrypoint.s…"   11 months ago    Up 11 months                0.0.0.0:6379->6379/tcp, :::6379->6379/tcp              redis
3f34054e5771   mysql:5.7             "docker-entrypoint.s…"   11 months ago    Up 6 months                 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql

重启es

#重启es
[root@iZ8vb2zqmrxey54wknbv7xZ elasticsearch]# docker start f5d
f5d
#查看es是否启动
[root@iZ8vb2zqmrxey54wknbv7xZ elasticsearch]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS         PORTS                                                                                  NAMES
#显示es已经启动
f5d627bec026   elasticsearch:7.4.2   "/usr/local/bin/dock…"   27 minutes ago   Up 5 seconds   0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp   elasticsearch
cf427f45848a   8cb51161b062          "bin/docker-startup.…"   5 months ago     Up 5 months    0.0.0.0:8848->8848/tcp, :::8848->8848/tcp                                              nacos
c903efec3de1   redis                 "docker-entrypoint.s…"   11 months ago    Up 11 months   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                                              redis
3f34054e5771   mysql:5.7             "docker-entrypoint.s…"   11 months ago    Up 6 months    0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                   mysql

过段时间检查一下es是否还在启动

docker ps

检查es的日志是否报错

docker logs elasticsearch

浏览器访问es判断是否正常运行es

http://esc的公网ip:9200/

在这里插入图片描述

注意:需要云服务器esc配置安全组(外网访问端口)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值