【⼤数据】ElasticSearch⼊门,看这⼀篇就够了!
前⾔:Elastics Search(以后全部简称es)⼊门看这⼀篇就够了?是的,看这⼀篇就可以学习到es从⼊门到使⽤到⽣产的相关核⼼点,但Es家族庞⼤,如果深⼊学习或者去啃的话,没个⼀年半载是不可能的,所以仅这⼀篇也是在开玩笑了,光是Elastics Search + Logstash + Kibana (以后全部简称ELK)技术栈就有的学了,⾥⾯还涉及到这三⼤神器的很多插件及监控⼯具,⼀⾔难尽,不过也不必慌,我也没打算在ELK上花太多时间,如果仅作为上⼿开发和基础的原理掌握,搞定ELK数周内即可.本篇可以作为学习es家族的索引或是⽬录,顺着这条线学习,⼀篇即可,否则思路会过于混乱.标题下没内容的部分不要问,问就是暂时没写完!
⽬录
1.基础部分
1.1什么是es?
Es是⼀款开源的搜索服务器,底层技术⽤的仍是Lucene,Es和Solr都是在Luncene上进⼀步的封装,根据DB-Engines的排名显⽰,⽬前市场上搜索引擎的受欢迎度Es排第⼀,其次是solr,lucene.Es具有开源,分布式,Restful,Json响应等多种天然优势,受到各⼤企业青睐,这也是我把es 作为主要学习的搜索引擎的原因.关于solr和lunce简单了解即可.
1.2什么是logstash?
logstash是es家族提供的⼀款⽇志收集管道,可以定义数据源的输⼊和输出,数据的输⼊源可以是多种,⽀持同时从关系型数据库及⾮关系型数据库实时采集,如下图所⽰,⾄于采集到的数据最终输出到哪,⽤户可以⾃⼰定义,⼀般会输出到es进⾏存储,便于检索及分析。
1.3什么是kinaba?
kinaba是为 Elasticsearch设计的开源分析和可视化平台,可以⽤来查询,监控,分析,简⽽⾔之就是⼀款数据可视化的利器。
1.4ELK安装及启动
mysql入门基础教程
1.4.1Es安装及启动
苹果swift编程
②安装:其实都是绿⾊版,解压即可⽤,将下载后的压缩包解压即可。
③启动:进⼊解压后的安装⽬录,按下shift+⿏标右键->在此处打开命令窗⼝->./bin/elasticsearch.bat->敲下回车:
新手怎么制作表格excel
1.4.2Logstash安装及启动
②安装:解压即可
③启动:在解压后的config⽬录下到f,然后把⾥⾯的配置内容稍作修改(置空):
input {
stdin {}
}
output {
stdout {}
}
然后在解压后的⽬录下shift+⿏标右键->在此处打开命令窗⼝->键⼊ ./bin/logstash.bat -f ../f
1.4.3Kibana安装及启动
②安装:解压即可
③启动:进⼊bin⽬录,双击kibana.bat 敲⼏下回车静候即可,看到下⾯这句即说明已启动:
打开浏览器输⼊该地址访问即可完成验证。
1.5Es常⽤插件
1.5.1 Elasticsearch-head
Elasticsearch-head是⼀款⽤来浏览、与Elastic Search簇进⾏交互的web前端展⽰插件,简单来说,就是⼀款可以在浏览器⽅便你直接通过图形化界⾯操作es的⼯具。
下载后可以通过nodejs或者docker容器启动,具体请参考github⽂档,我不再赘述。
补充⼀句,如果你的插件⽆法与es连接,可以在你的es解压⽬录下的config⽂件夹中到l 加⼊如下配置:
#-----------------------------------插件⽀持(es-head)----------------------------
# 是否⽀持跨域
# *表⽰⽀持所有域名
然后重启es,启动ok后重写连接即可。
1.5.2 Marvel
Marvel是Elasticsearch的管理和监控⼯具,作⽤可以类⽐spring-cloud的turbine.集中必须每个节点都安装此插件。
公司电脑原因我暂时⽆法集,这块先跳过,后补。
1.5.3 Graph
Graph插件⼀个新的⽤于 Elasticsearch 和 Kibana 的插件,通过它们您可以很⽅便的发现、理解和探索现有数据之间的关系。
环境原因,后补。
1.5.4 IK中⽂分词器
学过Lucene或者solr的应该对IK中⽂分词器⽐较熟悉了,是⼀款对中⽂分词友好⽀撑的插件。
2.进阶部分
2.1数据同步
2.1.1与关系型数据库同步
这⾥我仅以最常⽤的MySQL为例,演⽰将MySQL作为数据的输⼊端,将es作为数据的输出端,通过logstash来打通数据的输⼊和输出。
①进⼊logstash解压后的⽬录->进⼊config⽂件夹->编辑f->输⼊如下内容:
input {
stdin{
}
jdbc {
# mysql jdbc connection string to our backup databse  后⾯的test对应mysql中的test数据库ecshop4 怎么样
jdbc_connection_string => "jdbc:mysql://localhost:3306/costa-spider"
# the user we wish to excute our statement as
jdbc_user => "root"
jdbc_password => "123456"
# the path to our downloaded jdbc driver
jdbc_driver_library => "../lib/mysql-connector-java-5.1.47.jar"
sumifs在另一张表怎么求和# the name of the driver class for mysql
jdbc_driver_class => "sql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
#以下对应着要执⾏的sql的绝对路径。
statement => "SELECT * FROM main_material"
#定时字段各字段含义(由左⾄右)分、时、天、⽉、年,全部为*默认含义为每分钟都更新(测试结果,不同的话请留⾔指出)
schedule => "* * * * *"
#设定ES索引类型
}
}
output {
elasticsearch {免费模板ppt下载网站
hosts => "127.0.0.1:9200"
index => "main_material"
document_id => "%{id}"
}
stdout {
#以JSON格式输出
codec => json_lines
}
}
tips1:jdbc_connection_string,指明你要连接的数据库的url及端⼝号和库名。
tips2:jdbc_driver_liblary,需要指明mysql的jdbc驱动⽂件路径,这⾥mysql-connector-java需要⾃⼰去mvn仓库下载。
tips3: statement 这⾥可以指定你要把哪张表⾥的数据导⼊到es,以及是否实时同步跟新等,我这⾥仅演⽰最基础的,不触发更新.
tips4:index 名字可以随意取,对应的其实是es⾥的库名,在之后搜索时需要⽤到,我这⾥保持与MySQL库名⼀致.
tip5:document_id ⽂档的id,我这⾥与数据库⾥的id⼀⼀对应,以%{id}来表⽰即可.
②重启logstash,观察数据是否被导⼊,通过logstash的命令⾏观察到select * from *** 以及导⼊的数据会被打印出来基本可以确定数据是否已被导⼊.
③打卡head插件页⾯,通过查询验证⼀下:
可以发现数据已被成功从MySQL导⼊⾄ES中。
2.1.2与⾮关系型数据库同步

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。