Elasticsearch-Base
Feature
分布式搜索引擎
近实时分析引擎
性能很高
容易扩展
Plan
入门和深入
集群管理
ELK 进行大数据分析
实战和总结
Basic Concepts
Near Realtime(NRT)
es 是一个近实时的检索平台, 从建立索引到可搜索大约只需要 1s 钟, 具有非常低的延迟.
Cluster
高可用
可扩展性
一个集群由一个或者多个 node组成. 用于保存全部的数据, 提供联合索引和搜索功能, 一个集群在创建后必须拥有一个唯一的名字, 默认是 elasticsearch, node 都是通过这名字来加入到指定的集群中去的.
Node
一个 node是一个集群的的一个单独的服务, 用于存储数据和提供索引和搜索的功能, 和 cluster 一样, 每个 node 也要有自己的唯一的名字, 默认是一个 uuid, 也可以自定义 node 名称. node 是通过配置加入到指定的集群中去. 默认每个节点会被加入到 elsaticsearch 集群中.
Index
是 document 的容器, 一类相似文档的结合, 每个索引都有自己的 mapping, 用于定义包含文档的字段名和类型. 索引中的数据分散在 Shard 上. 索引的 settings定义了不同数据的分布方式.
Type
6.0 开始被废除.
Document
es 是面向文档的. 文档是可搜索数据的最小单位, 类似于关系型数据库表中的一条记录,
在 es 中每个文档会被序列化为 json 格式存储, json 对象由字段组成, 字段有不同的类型(字符串, 数值, 布尔, 日期...)
每个文档都有一个 unique ID, 类似于 Mysql 中的主键, 可以事 es 自动生成, 也可以自己指定.
元数据
_index 文档所属的索引名称
_type 文档所属的类型名
_id 文档唯一 id
_source 文档的原始 json 数据
_version 文档的版本信息
_score: 相关性打分
Shards & Replicas
主分片, 用于解决水平扩展问题, 通过主分片可以将数据分布到集群内的所有节点之上
一个分片是一个运行的 lucene 实例
主分片数量在索引创建时指定, 后续不允许修改, 除非 reIndex
副本, 用于解决数据高可用问题
副分片数量可以动态调整.
增加副本数量可以提供服务的可用性.
ES Installation
下载 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.1-darwin-x86_64.tar.gz
unzip
执行命令bin/elasticsearch
查看启动结果 http://localhost:9200
以集群的方式运行
查看启动节点 http://localhost:9200/_cat/nodes
plugins
安装分词器
bin/elasticsearch-plugin install analysis-icu
查看已安装插件
bin/elasticsearch-plugin list
移除插件
bin/elasticsearch-plugin remove name
Kibana
Installation
下载: https://www.notion.so/Kibana-8a00cf3e796745c58767d50a81c2a289#e541b6b5392f4090835639fb4816a164
unzip
配置 kibana.yml , 将 elasticsearch.host 指向刚刚启动的 es 服务地址.
执行 bin/kibana
查看 UI http://localhost:5601
插件: 处理方式同 ES
Logstash
installation
下载: https://www.notion.so/Logstash-25b669d719de4155b9256045a6f64b51#54a98626c4a34169a190ba505edd5aac
unzip
配置 logstash.conf
下载测试数据: movies.csv https://grouplens.org/datasets/movielens/
启动 bin/logstash -f logstash.conf
可以在 kibana中看到已经处理的movies的数据信息.
Cerebro
installation
下载: https://www.notion.so/Cerebro-397588ca1dea4f188e5500cba270e42c#54bfe403fdf647ab9a3f0351f09970e4
uzip
启动: bin/cerebro
访问启动界面: 需要连接到我们之前启动的 ES 实例地址: http://localhost:9200 即可.
评论