目录
目录
ES功能及特点
ES应用场景
常见场景
常见案例
主流搜索方案对比
ES安装部署
Kibana安装部署
ES功能及特点
- 分布式搜索引擎
通过多台服务器进行存储检索,如:百度、谷歌、站内搜索
- 全文检索
提供模糊搜索等自动度较高的查询方式,进行相关排名,高亮等操作
- 数据分析引擎
各类电商、新闻类网站进行搜索排名,销量排名处理
- 海量数据实时处理
对海量数据实现秒级的数据搜索和分析
ES应用场景
常见场景
- 搜索类场景
- 搜索类场景
比如电商、招聘、新闻资讯类网站及各类APP的搜索模块
- 日志分析类场景
经典的ELK组合(Elasticsearch/Logstash/Kibana),可以完成日志收集,日志存储,日志分析查询界面基本功能,目前该方案的实现很普及
- 数据预警平台及数据分析场景
例如电商价格预警,当优惠的价格低于某个值时,触发通知消息,通知用户购买。
数据分析常见的比如分析电商平台销售量 top10 的品牌,分析博客系统、头条网站 top10 关注度、 评论数、访问量的内容等。
- 商业BI系统
如大型零售超市,需要分析上一季度用户消费金额,年龄段,每天各时间段到店人数分布等信息,输出相应的报表数据,并预测下一季度的热卖商品,根据年龄段定向推荐适宜产品。 Elasticsearch执行数据分析和挖掘,Kibana做数据可视化。
常见案例
- 维基百科、百度百科:有全文检索、高亮、搜索推荐功能
- Stack Overflow:有全文检索,可以根据报错关键信息,去搜索解决方法。
- Github:从上千亿行代码中搜索你想要的关键代码和项目。
- 日志分析系统:各企业内部搭建的ELK平台。
主流搜索方案对比
目前主流全文搜索方案:Lucene、Solr、ElasticSearch,基于 倒排索引 机制实现快速全文搜索
- Lucene:完全由Java编写的信息搜索工具包,使用时需要我们进一步开发搜索系统,只是一个框架,需要在程序中集成后使用。
- Solr:是一个具有HTTP接口的查询服务器,基于Lucene,封装了Lucene的很多细节。
- ElasticSearch:也是建立在Lucene上实现的搜索引擎。采用分布式实时文件存储,将每个字段都编入索引,使其可以搜索。
联系与区别
Solr与ElasticSearch都是基于Lucene实现。
1)Solr使用Zookpper进行分布式管理,ElasticSearch自带分布式治理
2)Solr功能更多,ElasticSearch更注重核心功能,高级功能多由三方插件实现
3)Solr在传统搜索应用中好于ES,而在实时性上ES更加优秀
ES安装部署
在虚拟机上部署Single-Node Mode Elasticsearch
下载Elasticsearch
地址:https://www.elastic.co/cn/downloads/elasticsearch 最新版本
下载: https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7.3..0 版本
##解压文件 tar -zxvf elasticsearch-7.3.0-linux-x86_64.tar.gz ##移动文件到安装目录 mv /root/elasticsearch-7.3.0 /usr/elasticsearch/
1.编辑vim /usr/elasticsearch/config/elasticsearch.yml ,注意冒号后面有个空格。
vim /usr/elasticsearch/config/elasticsearch.yml
单机安装请取消注释:node.name: node-1,否则无法正常启动。
修改网络和端口,取消注释master节点,单机只保留一个node
node.name: node-1 network.host: 192.168.211.136 # # Set a custom port for HTTP: # http.port: 9200 cluster.initial_master_nodes: ["node-1"]
2.按需修改vim /usr/elasticsearch/config/jvm.options内存设置
vim /usr/elasticsearch/config/jvm.options
根据实际情况修改占用内存,默认都是1G,单机1G内存,启动会占用700m+然后在安装kibana后,基本上无法运行了,运行了一会就挂了报内存不足。 内存设置超出物理内存,也会无法启动,启动报错。
-Xms1g -Xmx1g
3.添加es用户,es默认root用户无法启动,需要改为其他用户
useradd estest ##修改密码 passwd estest ##改变es目录拥有者账号 chown -R estest /usr/elasticsearch/
4.修改/etc/sysctl.conf
vim /etc/sysctl.conf ##末尾添加: vm.max_map_count=655360 ##执行 sysctl -p 让其生效 sysctl -p
5.修改/etc/security/limits.conf
vim /etc/security/limits.conf末尾添加:
* soft nofile 65536 * hard nofile 65536 * soft nproc 4096 * hard nproc 4096
6.启动es
切换刚刚新建的用户
su estest
启动命令
/usr/elasticsearch/bin/elasticsearch
7.配置完成:浏览器访问测试。 ip:9200
Kibana安装部署
root账户下操作
tar -zxvf kibana-7.3.0-linux-x86_64.tar.gz mv /root/kibana-7.3.0-linux-x86_64 /usr/kibana/
改变es目录拥有者账号
chown -R estest /usr/kibana/
还需要设置访问权限
chmod -R 777 /usr/kibana/
修改配置文件
vim /usr/kibana/config/kibana.yml
修改端口,访问ip,elasticsearch服务器ip
server.port: 5601 server.host: "0.0.0.0" # The URLs of the Elasticsearch instances to use for all your queries. elasticsearch.hosts: ["http://192.168.211.136:9200"]
配置完成启动:
##切换用户 su estest ./bin/kibana(路径:/usr/kibana)
没有error错误启动成功:
访问ip:5601,即可看到安装成功
后续会持续更新,感兴趣的可以来个三联哦!



