转自mysql
小史是一个非科班的程序员,虽然学的是电子专业,可是经过本身的努力成功经过了面试,如今要开始迎接新生活了。程序员
随着央视诗词大会的热播,小史开始对诗词感兴趣,最喜欢的就是飞花令的环节。面试
可是因为小史好久没有背过诗词了,飞一个字很难说出一句,不少以前很熟悉的诗句也想不起来。sql
【倒排索引】数据库
吕老师:可是我让你说出带“前”字的诗句,因为没有索引,你只能遍历脑海中全部诗词,当你的脑海中诗词量大的时候,就很难在短期内获得结果了。json
【索引量爆炸】api
【搜索引擎原理】数据结构
【elasticsearch简介】架构
吕老师:可是lucene仍是一个库,必需要懂一点搜索引擎原理的人才能用的好,因此后来又有人基于lucene进行封装,写出了elasticsearch。app
【elasticsearch基本概念】
吕老师:类型是用来定义数据结构的,你能够认为是mysql中的一张表。文档就是最终的数据了,你能够认为一个文档就是一条记录。
吕老师:好比一首诗,有诗题、做者、朝代、字数、诗内容等字段,那么首先,咱们能够创建一个名叫poems的索引,而后建立一个名叫poem的类型,类型是经过mapping来定义每一个字段的类型,好比诗题、做者、朝代都是keyword类型,诗内容是text类型,而字数是integer类型,最后就是把数据组织成json格式存放进去了。
吕老师:这个问题问得好,这涉及到分词的问题,keyword类型是不会分词的,直接根据字符串内容创建反向索引,text类型在存入elasticsearch的时候,会先分词,而后根据分词后的内容创建反向索引。
吕老师:以前咱们说过,elasticsearch把操做都封装成了http的api,咱们只要给elasticsearch发送http请求就行。好比使用curl -XPUT 'http://ip:port/poems',就能创建一个名为poems的索引,其余操做也是相似的。
【elasticsearch分布式原理】
吕老师:没错,elasticsearch也是会对数据进行切分,同时每个分片会保存多个副本,其缘由和hdfs是同样的,都是为了保证分布式环境下的高可用。
吕老师:没错,在elasticsearch中,节点是对等的,节点间会经过本身的一些规则选取集群的master,master会负责集群状态信息的改变,并同步给其余节点。
吕老师:注意,只有创建索引和类型须要通过master,数据的写入有一个简单的routing规则,能够route到集群中的任意节点,因此数据写入压力是分散在整个集群的。
【elk系统】
吕老师:其实不少公司都用elasticsearch搭建elk系统,也就是日志分析系统。其中e就是elasticsearch,l是logstash,是一个日志收集系统,k是kibana,是一个数据可视化平台。
吕老师:分析日志的用处可大了,你想,假如一个分布式系统有1000台机器,系统出现故障时,我要看下日志,还得一台一台登陆上去查看,是否是很是麻烦?
吕老师:可是若是日志接入了elk系统就不同。好比系统运行过程当中,忽然出现了异常,在日志中就能及时反馈,日志进入elk系统中,咱们直接在kibana就能看到日志状况。若是再接入一些实时计算模块,还能作实时报警功能。
【笔记】
小史学完了elasticsearch,在笔记本上写下了以下记录:
一、反向索引又叫倒排索引,是根据文章内容中的关键字创建索引
二、搜索引擎原理就是创建反向索引
三、elasticsearch在lucene的基础上进行封装,实现了分布式搜索引擎
四、elasticsearch中的索引、类型和文档的概念比较重要,相似于mysql中的数据库、表和行
五、elasticsearch也是master-slave架构,也实现了数据的分片和备份
六、elasticsearch一个典型应用就是elk日志分析系统
写完,又高高兴兴背诗去了。
观书有感
朱熹
半亩方塘一鉴开,天光云影共徘徊。
问渠那得清如许?为有源头活水来。
猜你喜欢
欢迎关注本公众号:iteblog_hadoop:
回复 spark_summit_201806 下载 Spark Summit North America 201806 所有PPT
回复 spark_summit_eu_2018 下载 Spark+AI Summit europe 2018 所有PPT
回复 HBase_book 下载 2018HBase技术总结 专刊
回复 all 获取本公众号全部资料
0、回复 电子书 获取 本站全部可下载的电子书
一、Elasticsearch如何作到亿级数据查询毫秒级返回?
三、深刻理解 Spark Delta Lake 的诞生及其工做原理
十一、更多大数据文章欢迎访问https://www.iteblog.com及本公众号(iteblog_hadoop)十二、Flink中文文档:http://flink.iteblog.com1三、Carbondata 中文文档:http://carbondata.iteblog.com