文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

4 - 基于ELK的ElasticSearch 7.8.x技术整理

2016-01-07 21:12

关注

4 - 基于ELK的ElasticSearch 7.8.x技术整理

0、前言

另外:

4.12、文档搜索

4.12.1、不可变的倒排索引

4.12.2、可变的倒排索引

又想保留不可变性,又想能够实现倒排索引的更新,咋办?

这里还需要了解一个配套的按段搜索,玩过 Lucene 的可能听过。按段,每段也就可以理解为:补充索引,它的流程其实也很简单:

4.13、近实时搜索、文档刷新、文档刷写、文档合并

首先来看一下主副操作
image

image


	http://ip:port/index_name/_settings		# 请求方式:put

	# 请求体内容
	{
		"settings": {
			"refresh_interval": "60s"
		}
	}


	# 关闭自动刷新
	http://ip:port/users/_settings		# 请求方式:put

	# 请求体内容
	{ 
		"refresh_interval": -1 
	}

	# 每一秒刷新
	http://ip:port/users/_settings		# 请求方式:put
	# 请求体内容
	{ 
		"refresh_interval": "1s" 
	}

4.14、文档分析

在ES中有一个文档分析的过程,文档分析的过程也很简单:

在ES中,有提供好的内置分析器、我们也可以自定义、当然还有就是前面说的IK分词器也可以做到( 而重点需要了解的就是IK中文分词器 ,写到这里了,就突然想到一个事儿,牢骚一下:

在演示在前,先玩kibana吧,原本打算放在后面的,但是越早熟悉越好嘛,所以先把kibana说明了

4.14.1、kibana

kibana遵循的是rest风格( get、put、delete、post..... ),具体用法接下来玩分析器和后面都会慢慢熟悉

4.14.2、内置分析器

4.14.2.1、标准分析器 standard

	GET _analyze
	{
	  "analyzer": "standard", # analyzer 分析器  standard 标准分析器
	  "text": "my name is ZiXieQing" # text 文本标识   my name is ZiXieQing 自定义的文本内容
	}


	 # 响应内容
	{
	  "tokens" : [
		{
		  "token" : "my",		# 分词之后的词条
		  "start_offset" : 0,
		  "end_offset" : 2,		# start和end叫偏移量
		  "type" : "",
		  "position" : 0	# 当前词条在整个文本中所处的位置
		},
		{
		  "token" : "name",
		  "start_offset" : 3,
		  "end_offset" : 7,
		  "type" : "",
		  "position" : 1
		},
		{
		  "token" : "is",
		  "start_offset" : 8,
		  "end_offset" : 10,
		  "type" : "",
		  "position" : 2
		},
		{
		  "token" : "zixieqing",
		  "start_offset" : 11,
		  "end_offset" : 20,
		  "type" : "",
		  "position" : 3
		}
	  ]
	}

4.14.2.2、简单分析器 simple
4.14.2.3、空格分析器 whitespace
4.14.2.4、去词分析器 stop
4.14.2.5、不拆分分析器 keyword

4.14.3、IK中文分词器

image

4.14.4、自定义分析器

4.14.5、多玩几次kibana

4.15、文档控制( 了解即可 )

4.16、ES的优化

4.16.1、硬件方面

4.16.2、分片策略

所以分片和副本遵循下面的原则就可以了


PUT /_all/_settings
{
	"settings": {
		"index.unassigned.node_left.delayed_timeout": "5m"
	}
}

image

4.16.3、带路由查询

4.16.4、内存优化

4.17、附上一些配置说明

参数名 参数值 说明
cluster.name elasticsearch 配置 ES 的集群名称,默认值是 ES,建议改成与所存数据相关的名称, ES 会自动发现在同一网段下的 集群名称相同的节点
node.name node-1001 集群中的节点名,在同一个集群中不能重复。节点 的名称一旦设置,就不能再改变了。当然,也可以 设 置 成 服 务 器 的 主 机 名 称 , 例 如 node.name: ${hostname}
node.master true 指定该节点是否有资格被选举成为 Master 节点,默 认是 True,如果被设置为 True,则只是有资格成为 Master 节点,具体能否成为 Master 节点,需要通过选举产生
node.data true 指定该节点是否存储索引数据,默认为 True。数据的增、删、改、查都是在 Data 节点完成的
index.number_of_shards 1 设置索引分片个数,默认是 1 片。也可以在创建索引时设置该值,具体设置为多大值要根据数据量的大小来定。如果数据量不大,则设置成 1 时效率最高
index.number_of_replicas 1 设置默认的索引副本个数,默认为 1 个。副本数越多,集群的可用性越好,但是写索引时需要同步的数据越多
transport.tcp.compress true 设置在节点间传输数据时是否压缩,默认为 False
discovery.zen.minimum_master_nodes 1 设置在选举 Master 节点时需要参与的最少的候选主节点数,默认为 1。如果使用默认值,则当网络不稳定时有可能会出现脑裂。 合理的 数 值 为 ( master_eligible_nodes / 2 )+1 , 其 中 master_eligible_nodes 表示集群中的候选主节点数
discovery.zen.ping.timeout 3s 设置在集群中自动发现其他节点时 Ping 连接的超时时间,同时也是选主节点的延迟时间,默认为 3 秒。 在较差的网络环境下需要设置得大一点,防止因误判该节点的存活状态而导致分片的转移

4.18、SpringBoot集成ES

image

image

image



    org.elasticsearch.client
    elasticsearch-rest-high-level-client
    7.8.0


image

image

image

4.19、说一些另外的理论吧

4.19.1、ES的master主节点选举流程

4.19.2、ES的集群脑裂问题

导致的原因:

脑裂问题解决方案:

4.20、最后的最后

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯