ElasticSearch,简称ES,是非常好用的一款分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种数据组合搜索应用。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
1、ES入门知识点
ES是集合了搜索引擎Lucense的一款集成工具,其知识点非常多,这里仅仅介绍概念性的大纲。
一图胜万言:
2、完成数据采集及建立索引
我们的数据源来自MySql,由MySql 日志记录中读取数据,已经讲了好多回了,这里再回顾一下。
2.1 设定MySql支持Binlog
修改/etc/my.conf配置,增加如下:
server-id=123
log-bin=mysql-bin
binlog_format=ROW
重启MySql服务。
2.2 增加StreamSet对Mysql的支持
特别讨厌Streamset这点,为啥就不集成下呢,哈哈。
安装Mysql的Jdbc驱动以及BinaryLog驱动:
驱动下载 : cdn.mysql.com//Downloads/…
定位到安装目录: /opt/streamsets-datacollector/streamsets-libs,
找到两个目录:streamsets-datacollector-jdbc-lib 和 streamsets-datacollector-mysql-binlog-lib,分别拷贝mysql的jdbc驱动到这两个目录。
重启服务StreamSet。
注意: 设置下权限 chmod -R 777 mysql-connector-java-8.0.22.jar
3、绘制流程图
小技巧之一:之前有篇文章介绍过13大实践总结,这里就用到了,我们在操作数据的insert和update时,为了避免ES 目标出现错误,可以使用 upsert方式(有了更新,没有插入)。
小坑之一 :在不停的启动和停止管道任务时,会发生错误。
Pipeline Status: RUNNING_ERROR: MYSQL_006 - MySql server error:
A slave with the same server_uuid/server_id as this slave has connected to the master;
the first event 'mysql-bin.000001' at 278098179,
the last event read from './mysql-bin.000001' at 278117580,
the last byte read from './mysql-bin.000001' at 278117580.
我们只需更换 mysql binary log 的配置 server id即可。应该是频繁启停时可能未能关闭连接的原因导致。
3.1 细节配置参数
4、运行观测
嗯嗯,大型打脸现场并没有出现,一切顺利!
索引管理里已经出现了我们需要的索引。
5 数据面板
利用Kibana 建立一个查询索引,然后,在数据搜索里观察数据,如下:
后续可能会根据需求进行针对性优化,不过大部分工作已经完成了。
不写代码的感觉不香吗?
6、小结
黄帝内经有云: 春三月,此谓发陈,天地俱生,万物以荣,夜卧早起,广步于庭,被发缓形,以使志生,生而勿杀,予而勿夺,赏而勿罚,此春气之应,养生之道也。逆之则伤肝,夏为寒变,奉长者少。
既然老祖先的经书都这么说了,兄弟姐妹,顺应时节,是不是赶紧点个赞,一键三连啥的?养肝护肝,点赞即行!