ElasticSearch

ElasticSearch 简介

Elasticsearch是一个分布式、可扩展、实时的搜索与数据分析引擎。它可以让您快速且近实时地存储,检索以及分析海量数据。它通常用作那些具有复杂搜索功能和需求的应用的底层引擎或者技术。

全文搜索属于最常见的需求,开源的 Elasticsearch 是目前全文搜索引擎的首选。

Elasticsearch的底层是开源库吧Lucene。但是,你没法直接用,必须自己写代码调用它的接口,Elastic 是 Lunce 的封装,提供了 REST API 的操作接口,开箱即用。

官方文档:点我传送

官方中文文档:点我传送

社区文档:点我传送点我传送

ElasticSearch 概念

  • 索引
  • 类型
  • 文档
  • 属性
  • 倒排索引表

ElasticSearch quick start

docker安装ElasticSearch Kibana

# 存储和检索数据
docker pull elasticsearch:7.4.2 # 可视化检索数据
docker pull kibana:7.4.2

至少保证内存可用量为300+,越多越好

# 查看可用内存大小
free -m

创建实例

ElasticSearch

# 创建elasticsarch的config
mkdir -p /mydata/elasticsearch/config # 创建elasticsarch的data
mkdir -p /mydata/elasticsearch/data # 配置elasticsearch.yml
# 注: 'host:'中 ':'后跟着空格
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml # 设置elasticsearch目录权限
chmod -R 777 /mydata/elasticsearch/ # 启动elasticsearch
# 特别注意:-e ES_JAVA_OPTS="-Xms64m -Xmx256m" 测试环境下,设置ES的初始内存和最大内存,否则导致过大启动不了 ES
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 \
-d elasticsearch:7.4.2 # 当 Docker 重启时,容器能自动启动
docker update elasticsearch --restart=always
docker restart elasticsearch

访问 ip:9200

# 查看虚拟机ip
ip addr # 访问 ip:9200
192.168.188.128:9200

Kibana

启动kibana时有两种方式,任选其一。如果是通过docker使用kibana,则直接执行方式二。

方式一:
# 启动kibana
# ELASTICSEARCH_HOSTS 一定改为自己虚拟机的地址
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.188.128:9200 -p 5601:5601 \
-d kibana:7.4.2 # 当 Docker 重启时,容器能自动启动
docker update kibana --restart=always
docker restart kibana

访问 ip:5601

# 查看虚拟机ip
ip addr # 访问 ip:5601
192.168.188.128:5601
方式二:
# 查看docker中elasticSearch的ip
# 查看 es 实例暴露的IP
docker inspect elasticsearch
# 重新创建实例
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://172.17.0.3:9200 \
-p 5601:5601 -d kibana:7.4.2
# 当 Docker 重启时,容器能自动启动
docker update kibana --restart=always
docker restart kibana

ElasticSearch 使用

_cat

# 查看所有节点
http://192.168.188.128:9200/_cat/nodes # 查看 es 健康状况
http://192.168.188.128:9200/_cat/health # 查看主节点
http://192.168.188.128:9200/_cat/master # 查看所有索引
http://192.168.188.128:9200/_cat/indices

新增数据

elasticsearch通过接收PUT和POST请求来新增数据,然而在新增数据之前,我们需要来了解elasticsearch中的几个概念:

  • 索引
  • 类型
  • 文档
  • 属性

    在elasticsearch中新增数据称其为 索引一个文档

问题汇总

问题一:

通过docker logs [容器id]查看日志,如果出现以下错误:

{.. "message" : "Unable to revive connection: http://ip:9200/"}



错误原因:

Docker容器中启动服务和直接在Linux环境下安装服务,会有ip上的区别,不在是服务器的物理ip,而是容器对外暴露对的ip。简单来说,需要设置kibana的ElasticSearch Ip为docker容器的ip,而不是物理机的Ip。

解决方法:查看启动kibana方式二

通过docker inspect elasticsearch查看ES实例暴露出来的ip 。停止并删除现有的Kibana容器,然后重新启动kibana并添加环境变量参数:-e ELASTICSEARCH_HOSTS="http://es暴露的IP:9200"

# 停止实例
docker stop kibana
# 删除实例
docker rm kibana
# 查看 es 实例暴露的IP
docker inspect elasticsearch
# 重新创建实例
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://172.17.0.3:9200 \
-p 5601:5601 -d kibana:7.4.2

问题二:

打开网址一直显示以下页面 :

Kibana server is not ready yet

错误原因:

Docker容器中启动服务和直接在Linux环境下安装服务,会有ip上的区别,不在是服务器的物理ip,而是容器对外暴露对的ip。简单来说,需要设置kibana的ElasticSearch Ip为docker容器的ip,而不是物理机的Ip。

解决方法:查看启动kibana方式二

通过docker inspect elasticsearch查看ES实例暴露出来的ip 。停止并删除现有的Kibana容器,然后重新启动kibana并添加环境变量参数:-e ELASTICSEARCH_HOSTS="http://es暴露的IP:9200"

# 停止实例
docker stop kibana
# 删除实例
docker rm kibana
# 查看 es 实例暴露的IP
docker inspect elasticsearch
# 重新创建实例
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://172.17.0.3:9200 \
-p 5601:5601 -d kibana:7.4.2

最新文章

  1. (转)轻松学习JavaScript三:JavaScript与HTML的结合
  2. 基于FPGA的电压表与串口通信(上)
  3. cad中关于点样式点的绘制
  4. 每天一个linux命令(45):route命令
  5. jquery取checkbox选中的值
  6. Windows7下QT5开发环境搭建 分类: QT开发 2015-03-09 23:44 65人阅读 评论(0) 收藏
  7. (转)在 Windows 上安装Rabbit MQ 指南
  8. Hadoop流程---从tpch到hive
  9. ExtJS 4学习
  10. 手工构建ISO的基本步骤
  11. 一步一步学EF系列【4、升级篇 实体与数据库的映射】live writer真坑,第4次补发
  12. word-break: break-word; 文本溢出
  13. Connector for Python
  14. postgresql数据库查询慢SQL
  15. BZOJ2028: [SHOI2009]会场预约(set)
  16. Android NDK学习(三):Hello World
  17. eclipse中文字体大小修改
  18. 大数据自学6-Hue集成环境操作Hbase
  19. ACM__容器之vector
  20. Lua date format

热门文章

  1. ASP net core面试题汇总及答案
  2. Javascript - Vue - vuex
  3. 【C语言】第4章 选择结构程序设计
  4. 小程序es6
  5. SpringBoot笔记(7)
  6. eclipse建立c语言工程以及成功下载到FPGA芯片过程遇到的各种问题以及解决方法详解
  7. 剑指 Offer 38. 字符串的排列
  8. BFD协议简介
  9. error: object file .git/objects/...
  10. (三、四)Superset 1.3图表篇——透视表-Pivot Table