大数据-第13章 elasticsearchL 概况

1.数据类型
答:
①结构化(关系型数据库:MySQL);
②非结构化:文本文档,图片;
③半结构化:json、xml。
2.elasticsearch
答:
elasticsearch是一个基于Lucene的实时的分布式搜索和分析引擎,设计用于云计算中,能够实现实时搜索、稳定、可靠、快速、安装使用方便。
3.ES与SOLR
答:
①接口:ES提供REST风格的访问接口;SOLR提供类似webservice的接口;
②分布式存储:SOLR 4.x才支持,ES是为分布式而生成的;③支持格式:SOLR支持XML、JSON,ES支持JSON。
4.REST简介
答:
一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件,它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更加简洁,更有层次,更易于实现缓存的机制。
5.REST操作分类
答:
①GET:获取对象的当前状态;
②PUT:改变对象的状态;
③POST:创建对象;
④DELETE:删除对象;
⑤HEAD:获取头信息;
⑥TAIL:获取除头部以外的信息。
6.ES内置REST接口
答:
/index/_search 搜索指定索引下的数据
/_aliases 获取或操作索引的别名
/index/ 查看指定索引的详细信息
/index/type/ 创建或操作类型
/index/_mapping 创建或操作mapping
/index/_settings 创建或操作设置(number_of_shards是不可以更改的)
/index/_open 打开指定被关闭的索引
/index/_close 关闭指定索引
/index/_refresh 刷新索引(是新加内容多搜索可见,不保证数据被写入磁盘)
/index/_flush 刷新索引(会触发Lucene提交)
7.cluster
答:
代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主节点对对集群内部来说的。Es的一个主要概念是去中心化,对就群内部来说的,从外部来看es集群,逻辑上一个整体,但是你与任何一个节点通信和与整个es集群通信是等价的,es主节点是负责管理集群状态,包括管理分布的状态和副本的状态,以及节点的发现和删除。Es集群默认情况下自动发现同一个网段内的节点,自动组成一个集群。
8.shards
答:
索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分多个,分布到不同节点上,构成分布式搜索,分片的数量只能在索引创建前指定,创建索引后不能更改,默认为5个分片(建立索引时,根据ID类型进行hash取余,余值相同的存入相同分片)。
8.replicas
答:
副本,ES可以给索引设置副本,副本的作用一是提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复,二是提高es的查询效率,es会自动对搜索请求进行负载均衡。默认情况下是2个副本。
9.recovery
答:
代表数据恢复或数据重新分布,es在有节点加入或退出是会根据机器的负载对索引分片进行重新分配,挂掉的节点重新启动是也会进行数据恢复。
10.gateway
答:
代表es持久化存储方式,es默认先把索引存放到内存中,当内存满了是在持久化到硬盘中,当es集群关闭在重新启动是会从gateway中读取索引数据。
11.discovery.zen
答:
代表es的自动发现节点机制,es是一个基于p2p的系统,它先通过广播找到存在的节点,在通过多播协议进行节点之间的通信,同时也支持点对点的交互。
12.trasport
答:
代表es内部节点或集群与客户端的交互方式,默认内部是使用TCP协议进行交互,同时支持http协议(JSON格式)、servlet等传输协议。
13.es脑分裂问题
答:
正常情况下,集群找中所有节点,应该对集群的master选择是一致的,这样获取的信息也是一致的,不一致的状态信息,说明不同的节点对master节点选择出现异常,这就是es脑分裂问题,将会导致节点失去集群的正确状态,导致集群不能正常工作。
14. es脑分裂问题原因
答:
①网络:由于网络通信问题造成某些节点认为master死掉,而另选master的可能性较小;
②节点负载:由于master节点和data节点都是混合在一起的,当负载均衡较大时,导致es实例响应停止,如果这台服务器正充当master节点,那么一部分节点会认为这个master节点失效,从而重新选取新的master。
15. es脑分裂问题解决方案
答:
主节点:node.master: true ; node.data: false
从节点:node.master: false ;node.data: true
所有节点:discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: [“master”, “slave1”, “slave2"]
16.es优化
答:
①调大系统的“最大打开文件数”;
②修改配置文件,调整es的JVM内存的大小;
③设置mlockall来锁定进程的物理内存地址;
④建立合适的分片,5-20个比较合作,分片过多,导致索引时会打开多个文件,分片过少,导致单个分片索引过大,都会导致检索速度慢;
⑤定时对索引进行优化;
⑥在Lucene中删除文档,数据不会马上在硬盘上除去,而是在lucene索引中产生一个.del的文件,而在检索过程中这部分数据也会参与检索,lucene在检索过程会判断是否删除了,如果删除了在过滤掉。这样也会降低检索效率。所以可以执行清除删除文档;
⑦如果在项目开始的时候需要批量入库大量数据的话,建议将副本数设置为0
因为es在索引数据的时候,如果有副本存在,数据也会马上同步到副本中,这样会对es增加压力。待索引完成后将副本按需要改回来。这样可以提高索引效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值