Elastic search之介绍和安装
Elasticsearch是一个需要安装配置的软件。
ELK技术栈说明
Elastic有一条完整的产品线:Elasticsearch、Logstash、Kibana等,前面说的三个就是大家常说的ELK技术栈(开源实时日志分析平台)。
Logstash 的作用就是一个数据收集器,将各种格式各种渠道的数据通过它收集解析之后格式化输出到Elasticsearch ,最后再由Kibana 提供的比较友好的 Web 界面进行汇总、分析、搜索。
ELK 内部实际就是个管道结构,数据从 Logstash 到 Elasticsearch 再到 Kibana 做可视化展示。这三个组件各自也可以单独使用,比如 Logstash 不仅可以将数据输出到Elasticsearch ,也可以到数据库、缓存等
简介
Elastic
Elastic官网:https://www.elastic.co/cn/
Elastic有一条完整的产品线:Elasticsearch、Logstash、Kibana等,前面说的三个就是大家常说的ELK技术栈。
Elastic有一条完整的产品线:Elasticsearch、Logstash、Kibana等,前面说的三个就是大家常说的ELK
Elasticsearch
Elasticsearch官网:https://www.elastic.co/cn/products/elasticsearch
功能:
分布式的搜索引擎:百度、Google、站内搜索
全文检索:提供模糊搜索等自动度很高的查询方式,并进行相关性排名,高亮等功能
数据分析引擎(分组聚合):电商网站—一周内手机销量Top10
对海量数据进行近乎实时处理:水平扩展,每秒钟可处理海量事件,同时能够自动管理索引和查询在集群中的分布方式,以实现极其流畅的操作。
如上所述,Elasticsearch具备以下特点:
高速、扩展性、最相关的搜索结果
- 分布式:节点对外表现对等,每个节点都可以作为入门,加入节点自动负载均衡
- JSON:输入输出格式是JSON
- Restful风格,一切API都遵循Rest原则,容易上手
- 近实时搜索,数据更新在Elasticsearch中几乎是完全同步的,数据检索近乎实时
- 安装方便:没有其它依赖,下载后安装很方便,简单修改几个参数就可以搭建集群
- 支持超大数据:可以扩展到PB级别的结构化和非结构化数据
安装和配置
为了快速看到效果我们直接在本地window下安装Elasticsearch。环境要求:JDK8及以上版本
第一步:把准备好的软件放到一个没有中文没有空格的位置,解压即可
第二步:修改配置文件
1、修改索引数据和日志数据存储的路径
第33行和37行,修改完记得把注释打开
path.data: E:\class\es\data
#
# Path to log files:
#
path.logs: E:\class\es\logs
第三步:进入bin目录中直接双击 图下的命令文件。
如果启动失败,需要修改虚拟机内存的大小找到jvm.options文件 如图修改
- Xms 是指设定程序启动时占用内存大小。一般来讲,大点,程序会启动的快一点,但是也可能会导致机器暂时间变慢。
- Xmx 是指设定程序运行期间最大可占用的内存大小。如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出OutOfMemory异常。
访问
可以看到绑定了两个端口:
9300:集群节点间通讯接口,接收tcp协议
9200:客户端访问接口,接收Http协议
我们在浏览器中访问:http://127.0.0.1:9200
安装kibana
什么是Kibana
Kibana是一个基于Node.js的Elasticsearch索引库数据统计工具,可以利用Elasticsearch的聚合功能,生成各种图表,如柱形图,线状图,饼图等。
而且还提供了操作Elasticsearch索引数据的控制台,并且提供了一定的API提示,非常有利于我们学习Elasticsearch的语法。
安装
因为Kibana依赖于node,需要在windows下先安装Node.js
一路下一步即可安装成功,然后在任意DOS窗口输入名:
node -v
然后安装kibana,最新版本与elasticsearch保持一致
配置运行
进入安装目录下的config目录,修改kibana.yml文件的第21行(注释放开即可):
修改elasticsearch服务器的地址:
elasticsearch.url: "http://localhost:9200"
进入安装目录下的bin目录:
双击运行:
发现kibana的监听端口是5601
我们访问:http://127.0.0.1:5601
控制台
选择左侧的DevTools菜单,即可进入控制台页面:
在页面右侧,我们就可以输入请求,访问Elasticsearch了。
安装ik分词器
Lucene的IK分词器早在2012年已经没有维护了,现在我们要使用的是在其基础上维护升级的版本,并且开发为Elasticsearch的集成插件了,与Elasticsearch一起维护升级,版本也保持一致
https://github.com/medcl/elasticsearch-analysis-ik
安装
- 解压elasticsearch-analysis-ik-6.2.4.zip后,将解压后的文件夹拷贝到elasticsearch-6.2.4\plugins下,并重命名文件夹为ik
- 重新启动ElasticSearch,即可加载IK分词器
测试
先不管语法,我们先测试一波。
在kibana控制台输入下面的请求:
GET _analyze
{
"analyzer": "ik_max_word",
"text": "我是中国人"
}
运行得到结果:
{
"tokens": [
{
"token": "我",
"start_offset": 0,
"end_offset": 1,
"type": "CN_CHAR",
"position": 0
},
{
"token": "是",
"start_offset": 1,
"end_offset": 2,
"type": "CN_CHAR",
"position": 1
},
{
"token": "中国人",
"start_offset": 2,
"end_offset": 5,
"type": "CN_WORD",
"position": 2
},
{
"token": "中国",
"start_offset": 2,
"end_offset": 4,
"type": "CN_WORD",
"position": 3
},
{
"token": "国人",
"start_offset": 3,
"end_offset": 5,
"type": "CN_WORD",
"position": 4
}
]
}
GET _analyze
{
"analyzer": "ik_smart",
"text": "我是中国人"
}
结果:
{
"tokens": [
{
"token": "我",
"start_offset": 0,
"end_offset": 1,
"type": "CN_CHAR",
"position": 0
},
{
"token": "是",
"start_offset": 1,
"end_offset": 2,
"type": "CN_CHAR",
"position": 1
},
{
"token": "中国人",
"start_offset": 2,
"end_offset": 5,
"type": "CN_WORD",
"position": 2
}
]
}
安装Head插件
elasticsearch-head 简介
elasticsearch-head是一个界面化的集群操作和管理工具,可以对集群进行傻瓜式操作。可以通过插件把它集成到es(首选方式),也可以安装成一个独立webapp。
es-head主要有三个方面的操作:
-
显示集群的拓扑,并且能够执行索引和节点级别操作
-
搜索接口能够查询集群中原始json或表格格式的检索数据
-
能够快速访问并显示集群的状态
官方的文档: https://github.com/mobz/elasticsearch-head
elasticsearch-head 安装
(1)直接下载压缩包,地址:https://files.cnblogs.com/files/sanduzxcvbnm/elasticsearch-head.7z
(2)解压
(3)在谷歌浏览器中点击“加载已解压的压缩程序”,找到elasticsearch-head文件夹,点击打开即可进行安装。