因为Elasticsearch在工做中用的愈来愈多,平时是边学边用,不多记录,读到一些很好的文章时间久了就忘记了。app
因此,在此记录一下,但愿对更多人的学习有帮助,知识在于分享!分布式
===============================================学习
随着央视诗词大会的热播,小史开始对诗词感兴趣,最喜欢的就是飞花令的环节搜索引擎
可是因为小史好久没有背过诗词了,飞一个字很难说出一句,不少以前很熟悉的诗句也想不起来。spa
吕老师:可是我让你说出带“前”字的诗句,因为没有索引,你只能遍历脑海中全部诗词,当你的脑海中诗词量大的时候,就很难在短期内获得结果了。.net
吕老师:好比一首诗,有诗题、做者、朝代、字数、诗内容等字段,那么首先,咱们能够创建一个名叫 Poems 的索引,而后建立一个名叫 Poem 的类型,类型是经过 Mapping 来定义每一个字段的类型。3d
好比诗题、做者、朝代都是 Keyword 类型,诗内容是 Text 类型,而字数是 Integer 类型,最后就是把数据组织成 Json 格式存放进去了。日志
吕老师:没错,Elasticsearch 也是会对数据进行切分,同时每个分片会保存多个副本,其缘由和 HDFS 是同样的,都是为了保证分布式环境下的高可用。索引
吕老师:没错,在 Elasticsearch 中,节点是对等的,节点间会经过本身的一些规则选取集群的 Master,Master 会负责集群状态信息的改变,并同步给其余节点。ci
吕老师:注意,只有创建索引和类型须要通过 Master,数据的写入有一个简单的 Routing 规则,能够 Route 到集群中的任意节点,因此数据写入压力是分散在整个集群的。
吕老师:其实不少公司都用 Elasticsearch 搭建 ELK 系统,也就是日志分析系统。其中 E 就是 Elasticsearch,L 是 Logstash,是一个日志收集系统,K 是 Kibana,是一个数据可视化平台
吕老师:分析日志的用处可大了,你想,假如一个分布式系统有 1000 台机器,系统出现故障时,我要看下日志,还得一台一台登陆上去查看,是否是很是麻烦?
吕老师:可是若是日志接入了 ELK 系统就不同。好比系统运行过程当中,忽然出现了异常,在日志中就能及时反馈,日志进入 ELK 系统中,咱们直接在 Kibana 就能看到日志状况。若是再接入一些实时计算模块,还能作实时报警功能。