一、ElasticSearch
1、ElasticSearch概述
ES(Elasticsearch)是一个基于开放源代码的分布式搜索引擎,用于快速和灵活地搜索和分析大量数据。它是构建在Apache Lucene之上的,通过提供一个简单而强大的RESTful API来实现全文搜索、结构化搜索、分析和数据可视化的功能。
ES的设计目标是具有高度可扩展性和可靠性,可以在大规模分布式环境中处理PB级别的数据。它通过将数据分片和复制到多个节点上实现分布式存储和搜索,从而提供高性能和高可用性。
ES支持各种类型的数据,包括文本、数字、地理位置、日期等,可以进行复杂的查询和聚合操作,支持全文搜索、模糊搜索、过滤搜索、地理位置搜索等。它还提供了灵活的索引和数据分析功能,可以通过实时仪表板和可视化工具进行数据可视化和监控。
ES还提供了各种插件和集成工具,使其能够与各种数据存储和处理系统集成,例如Hadoop、Spark、Kafka等。它还提供了强大的安全功能,包括身份验证和访问控制,以保护数据的安全性。
总而言之,ES是一个强大而灵活的搜索和分析引擎,适用于各种应用场景,包括企业搜索、日志分析、数据分析和可视化等。它的易用性和可扩展性使得它成为许多公司和组织的首选解决方案。
2、ElasticSearch使用
3、ES和solr的差别
ElasticSearch简介
Solr的简介
Lucene简介
4、Solr 和 ElasticSearch 比较
Solr vs ElasticSearch
总结
二、ElasticSearch安装
JDK8,最低要求
使用Java开发,必须保证ElasticSearch
的版本与Java的核心jar包版本对应!(Java环境保证没错)
这里在windows上进行安装
1、Windows下安装
1、安装
下载地址:https://www.elastic.co/cn/downloads/
历史版本下载:https://www.elastic.co/cn/downloads/past-releases/
解压即可(尽量将ElasticSearch相关工具放在统一目录下)
2、熟悉目录
bin 启动文件目录
config 配置文件目录1og4j2 日志配置文件jvm.options java 虚拟机相关的配置(默认启动占1g内存,内容不够需要自己调整)elasticsearch.ym1 elasticsearch 的配置文件! 默认9200端口!跨域!
1ib 相关jar包
modules 功能模块目录
plugins 插件目录ik分词器
3、启动
一定要检查自己的java环境是否配置好
访问127.0.0.1:9200
2、安装可视化界面
elasticsearch-head
使用前提:需要安装nodejs ,学习Vue的时候,已经装过了
1、下载地址
https://github.com/mobz/elasticsearch-head
2、安装
解压即可(尽量将ElasticSearch相关工具放在统一目录下)
打开package.json文件,查看需要安装的依赖
3、启动
cd elasticsearch-head
# 安装依赖
npm install
# 启动
npm run start
# 访问
http://localhost:9100/
下载完成的依赖
运行
访问:存在跨域的问题
存在跨域问题(只有当两个页面同源,才能交互)
同源(端口,主机,协议三者都相同)
开启跨域(在elasticsearch解压目录config下elasticsearch.yml中添加)
# 开启跨域
http.cors.enabled: true
# 所有人访问
http.cors.allow-origin: "*"
先 重启elasticsearch
再次连接
如何理解上图:
-
如果你是初学者
- 索引 可以看做 “数据库”
- 类型 可以看做 “表”
- 文档 可以看做 “库中的数据(表中的行)”
-
这个head,我们只是把它
当做可视化数据展示工具
,之后
所有的查询都在kibana中进行
- 因为不支持json格式化,不方便
3、安装kibana
Kibana是一个针对ElasticSearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana ,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板( dashboard )实时显示Elasticsearch查询动态。设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内就可以完成Kibana安装并启动Elasticsearch索引监测。
1、下载地址:
下载的版本需要与ElasticSearch版本对应
https://www.elastic.co/cn/downloads/
历史版本下载:https://www.elastic.co/cn/downloads/past-releases/
2、安装
解压即可(尽量将ElasticSearch相关工具放在统一目录下)
3、启动
访问 http://localhost:5601
4、开发工具
(Postman、curl、head、谷歌浏览器插件)
可以使用
Kibana
进行测试
如果说,你在英文方面不太擅长,kibana是支持汉化的
5、kibana汉化
找到中文对应的json文件
编辑器打开kibana解压目录/config/kibana.yml
,添加
i18n.locale: "zh-CN"
重启kibana
汉化成功
4、了解ELK
-
ELK是Elasticsearch、Logstash、 Kibana三大开源框架首字母大写简称
。市面上也被成为Elastic Stack。
- 其中Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。
- 像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用Elasticsearch作为底层支持框架,可见Elasticsearch提供的搜索能力确实强大,市面上很多时候我们简称Elasticsearch为es。
- Logstash是ELK的中央数据流引擎,用于从不同目标(文件/数据存储/MQ )收集的不同格式数据,经过过滤后支持输出到不同目的地(文件/MQ/redis/elasticsearch/kafka等)。
- Kibana可以将elasticsearch的数据通过友好的页面展示出来 ,提供实时分析的功能。
- 其中Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。
-
市面上很多开发只要提到ELK能够一致说出它是一个日志分析架构技术栈总称 ,但实际上ELK不仅仅适用于日志分析,它还可以支持其它任何数据分析和收集的场景,日志分析和收集只是更具有代表性。并非唯一性。
收集清洗数据(Logstash) ==> 搜索、存储(ElasticSearch) ==> 展示(Kibana)
5、linux下安装
1.Linux下安装Elasticsearch
1.1 下载和解压安装包
-
官网下载地址: https://www.elastic.co/cn/downloads/elasticsearch
-
笔者选择的是7.16.3,使用的是腾讯云服务器
-
使用xftp等远程文件传输工具,将压缩包
elasticsearch-7.16.3-linux-x86_64.tar.gz
上传到 服务器的/usr/local/sbin
路径(自定义)下,并在/usr/local/
目录下解压缩
tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gz -C /usr/local
或者使用 unzip等解压缩工具
1.2 内存不足的问题(选)
由于 elasticsearch 默认分配 jvm空间大小为2g
,修改 jvm空间,如果Linux服务器本来配置就很高,可以不用修改
进入/usr/local/elasticsearch-7.13.2/config文件夹开始配置,修改jvm.options:
vim /usr/local/elasticsearch-7.13.2/config/jvm.options
-Xms256m
-Xmx256m
1.3 创建专用的用户启动ES
root用户不能直接启动Elasticsearch,所以需要创建一个专用用户,来启动ES
java.lang.RuntimeException: can not run elasticsearch as root
#创建用户
useradd elasticsearch
#创建所属组
chown elasticsearch:elasticsearch -R /usr/local/elasticsearch-7.16.3
#切换用户
su elasticsearch
#正常启动即可,注:进入/usr/local/elasticsearch-7.13.2/bin 下
cd /usr/local/elasticsearch-7.13.2/bin
./elasticsearch
以上步骤做完后,也很大概率会报错。我接着针对报错问题,做了如下操作,成功run。
1.4解决外网访问问题
默认情况下,是不支持外网访问,如果你的Elasticsearch安装在其他机器上,你从外网去访问的时候,访问不到。那么需要修改配置。
#进入config文件夹
cd /usr/local/elasticsearch-7.16.3/config
#修改elasticsearch.yml文件
vim elasticsearch.yml
在该文件添加
network.host: 0.0.0.0 #冒号(:)后面有空格
http.port: 9200
1.5 解决报错问题
bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2]: 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
问题1
解决:如果可以使用root用户的,就使用root
,不能使用就在前面加 sudo
进入 /etc/sysctl.conf
文件,在文件的末尾添加
vm.max_map_count=262144
查看是否生效
sysctl -p #查看打印的配置,是否有自己添加的即可,如若还是不生效,建议直接重启服务器
问题2
#进入config文件夹
cd /usr/local/elasticsearch-7.16.3/config
#修改elasticsearch.yml文件
vim elasticsearch.yml
将以下的配置取消注销
cluster.initial_master_nodes: ["node-1", "node-2"]
注:重启服务器生效
成功访问http://43.138.232.42:9200/
1.6 常见问题
问题1
ctrl+Z ,不正常关闭ES
解决:
#查看elasticsearch相关的进程
ps aux | grep elasticsearch
#杀掉进程
kill -9 pid #信息最多的那个
#重新启动ES即可
ElasticSearch概述及Window和Linux环境下安装 到此完结,笔者归纳、创作不易,大佬们给个3连再起飞吧