Saul's blog Saul's blog
首页
后端
分布式
前端
更多
分类
标签
归档
友情链接
关于
GitHub (opens new window)

Saul.J.Wu

立身之本,不在高低。
首页
后端
分布式
前端
更多
分类
标签
归档
友情链接
关于
GitHub (opens new window)
  • Java入门基础

  • Java核心基础

  • 设计模式

  • Web开发

  • SpringBoot

  • 微服务

  • Elasticsearch

    • ElasticSearch-简介
    • Elasticsearch-安装
      • 前言
      • 下载镜像文件
      • 创建ES实例
        • 访问ES端口
        • 如果启动不成功
      • 使用Postman测试ES
        • 获取ES信息
        • 查询节点相关信息
      • 创建Kibana实例
        • 访问Kibana端口
        • 如果Kibana启动失败
      • Kibana初始化
    • Elasticsearch-_cat
    • Elasticsearch-新增数据
    • Elasticsearch-查询数据&乐观锁
    • Elasticsearch-更新文档
    • Elasticsearch-删除操作
    • Elasticsearch-Bulk 批量 API
    • Elasticsearch-Search API
    • Elasticsearch-Query DSL
    • Elasticsearch-aggregations聚合分析
    • Elasticsearch-mapping映射
    • Elasticsearch-分词
    • SpringBoot整合Elasticsearch Rest Client
    • 商品上架与ES
  • 运维

  • 后端
  • Elasticsearch
SaulJWu
2020-11-24

Elasticsearch-安装

# 前言

前面介绍了Elasticsearch,想要用它,就像跟MySQL一样,首先要把它安装上。 需要安装2个东西,一个是Elasticsearch,另一个kibana,kibana是可视化工具,当然也可以不装,但是可视化后方便管理,这里还是建议安装,下面采用docker安装。

Kibana中文文档: https://www.elastic.co/guide/cn/kibana/current/index.html

下载安装之前,把虚拟机至少设置为1g内存,启动虚拟机vagrant up,连接虚拟机vagrant ssh

如果不是管理员用户,下面的命令需要加前缀sudo,

  • 切换到管理员
su root
# 然后输入密码
1
2

# 下载镜像文件

# 查看虚拟机内存,建议剩余300以上
free -m
# 存储和检索数据
docker pull elasticsearch:7.4.2
# 可视化检索数据
docker pull kibana:7.4.2
1
2
3
4
5
6

elasticsearch和kibana版本建议统一

# 创建ES实例

  • 创建实例前,先执行一下命令
# 创建配置文件目录
mkdir -p /mydata/elasticsearch/config
# 创建数据文件目录
mkdir -p /mydata/elasticsearch/data
# 配置es可以让远程任何机器进行访问,并写入上面的配置文件中
echo "http.host: 0.0.0.0">>/mydata/elasticsearch/config/elasticsearch.yml
1
2
3
4
5
6

注意http.host: 0.0.0.0中的host:后面有一个空格

  • 创建完配置文件检查一下
# 1.切换到配置文件目录
cd /mydata/elasticsearch/config/config/
# 2.ls查看是否存在 elasticsearch.yml
# 3.查看配置文件
cat elasticsearch.yml
# 如果返回http.host: 0.0.0.0
1
2
3
4
5
6
  • 创建实例
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type"=single-node \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-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 \
--restart=always \
-d elasticsearch:7.4.2
1
2
3
4
5
6
7
8

如果忘记设置跟随虚拟机启动,docker update 容器id前三位 --restart=always

9200是HTTP的REST请求

9300是分布式集群下的通信接口

"discovery.type"=single-node 单节点模式

ES_JAVA_OPTS="-Xms64m -Xmx512m" 测试期间虚拟机内存,真正上线要用32g

后面的-v都是同步挂载文件,修改外部文件,同步到内部文件

运行成功后检查一下

docker ps
1

检查过9200端口和9300端口都映射成功,再次去访问一下

# 访问ES端口

192.168.56.10:9200

返回

{
  "name" : "b7e89eef8655",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "9sCmhiRITKmNyi7XZprE8Q",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

至此ES实例创建成功!

# 如果启动不成功

docker logs
1

查看一下日志

Causede by:java.nio.file.AccessDeniedException
1
# 切换到es目录
cd /mydata/elasticsearch
# 查看权限
ll
1
2
3
4

image-20201124121725973

发现是没有文件夹权限,不是所有用户都有文件夹的可读可写可执行权限

# 改变文件夹权限

chmod -R 777 /mydata/elasticsearch/
1

再次ll,查看文件夹权限,发现文件夹权限都有了,可读可写可执行

image-20201124121803348

# 重启es实例

# 查看到,es没有实例
docker ps
# 查看到,es过去的确启动过,记住容器id前三位
docker ps -a
# 启动实例,84c是容器id前三位
docker start 84c
# 查看实例
docker ps
# 过一段时间后,再次查看实例,如果实例还在运行就可以了
docker ps
# 查看日志确认一下,检查有无报错 ,84c是容器id前三位
docker logs 84c
1
2
3
4
5
6
7
8
9
10
11
12

没有报错,就去访问一下ES端口。

# 使用Postman测试ES

ES创建成功后,可以用kibana可视化工具来管理,也可以使用postman来访问。

# 获取ES信息

  • 请求:http://192.168.56.10:9200

  • 返回

{
    "name": "b7e89eef8655",
    "cluster_name": "elasticsearch",
    "cluster_uuid": "9sCmhiRITKmNyi7XZprE8Q",
    "version": {
        "number": "7.6.2",
        "build_flavor": "default",
        "build_type": "docker",
        "build_hash": "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
        "build_date": "2020-03-26T06:34:37.794943Z",
        "build_snapshot": false,
        "lucene_version": "8.4.0",
        "minimum_wire_compatibility_version": "6.8.0",
        "minimum_index_compatibility_version": "6.0.0-beta1"
    },
    "tagline": "You Know, for Search"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 查询节点相关信息

  • 请求:http://192.168.56.10:9200/_cat/nodes

  • 返回

127.0.0.1 51 93 4 0.00 0.11 0.12 dilm * b7e89eef8655
1

这个*代表是主节点,后面再拓展

# 创建Kibana实例

docker run --name kibana \
-e ELASTICSEARCH_HOST=http://192.168.56.10:9200 \
-p 5601:5601 \
--restart=always \
-d kibana:7.6.2
1
2
3
4
5

http://192.168.56.10:9200 这里一定要改为自己虚拟机的地址

这里也可以不指定虚拟机地址,去yml中修改地址

创建成功后,

# 访问Kibana端口

  • http://192.168.56.10:5601/

# 如果Kibana启动失败

Kibana server is not ready yet

# 查看容器,发现Kibana仍然在启动,记住容器id前三位
docker ps
# 查看日志,e28是容器id前三位
docker logs e28
1
2
3
4

查看到日志No living connections,发现设置的IP地址并没生效,那么我们干脆修改配置文件

# 进入容器 e28是容器id前三位
docker exec -it e28 /bin/bash
# 查看容器下的文件
ls
# 进入config
cd config
# 查看config下的文件
ls
# 找到了yml文件了,接下来修改

# 进入修改文件模式
vi kibana.yml
1
2
3
4
5
6
7
8
9
10
11
12

找到host,修改为自己ES端口路径

image-20201124133818824

# 按i进入编辑模式,修改路径

# 修改后,按ESC进入命令模式

:wq #退出并保存


# 退出docker容器
exit

# 重启kibana
docker restart e28 
1
2
3
4
5
6
7
8
9
10
11
12

这时候稍等一会就可以访问Kibana端口了

  • 如果还是报错,查看日志,发现是要求删除kibana索引
# 删除索引,注意ip地址和es访问地址一样
curl -XDELETE http://192.168.56.10:9200/.kibana*
# 删除成功后,重启kbiana
docer restart e28
1
2
3
4

# Kibana初始化

能够成功访问Kibana了,就说明已经成功启动实例了,接下来初始化。

  • 是否导入默认数据,这里选择否,使用自己的数据

image-20201124134235247

至此,Kibana已经安装成功!

帮我改善此页面 (opens new window)
#Elasticsearch#安装#kibana
上次更新: 2020/12/17, 08:38:35
ElasticSearch-简介
Elasticsearch-_cat

← ElasticSearch-简介 Elasticsearch-_cat→

最近更新
01
zabbix学习笔记二
02-28
02
zabbix学习笔记一
02-10
03
Linux访问不了github
12-08
更多文章>
Theme by Vdoing | Copyright © 2020-2022 Saul.J.Wu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式