大家好,我是jackxu,es大家都听过,现在也是越来越火了,用到的公司越来越多。中文官网:https://www.elastic.co/cn/ 。
es的特点:
es是基于lucene开发的,封装了许多lucene底层功能,提供简单易用的restful api接口和许多语言的客户端,如java的高级客户端和底层客户端
包含一个或多个启动着es实例的机器群。通常一台机器起一个es实例。同一网络下,集名一样的多个es
实例自动组成集群,自动均衡分片等行为。默认集群名为“elasticsearch”。
每个es实例称为一个节点。节点名自动分配,也可以手动配置。
包含一堆有相似结构的文档数据。索引创建规则:
es中的最小数据单元。一个document就像数据库中的一条记录。通常以json格式显示。多个
document存储于一个索引(Index)中。例如:
就像数据库中的列(Columns),定义每个document应该有的字段。
每个索引里都可以有一个或多个type,type是index中的一个逻辑数据分类,一个type下的
document,都有相同的fifield。7.x版本正式被去除。
ES的版本演变:
index数据过大时,将index里面的数据,分为多个shard,分布式的存储在各个服务器上面。可以支持海量数据和高并发,提升性能和吞吐量,充分利用多台机器的cpu。
在分布式环境下,任何一台机器都会随时宕机,如果宕机,index的一个分片没有,导致此index不能搜索。所以,为了保证数据的安全,我们会将每个index的分片进行备份,存储在另外的机器上。保证少数机器宕机es集群仍可以搜索。能正常提供查询和插入的分片我们叫做主分片(primary shard),其余的我们就管他们叫做备份的分片(replica shard)。
倒排索引的概念是数据存储时,进行分词建立term索引库。下面是百度百科中的说明:
倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。
大家看概念的话可能会抽象一点,下面我画图来讲解一下。假设有一张书籍表,现在我要对书名进行查找,比如说找出包含java的书,我们正常的写法就是:
首先,很多的同学在部署安装es的时候总是会出现各种各样的错误,包括可能看到网上非常多的教程却不能成功部署,而且大多数是在虚拟机中操作的,跟生产环境其实是有区别的,这里我买了三台云服务器,下面是我用这三台进行搭建的IP和端口的分配图。
1、新建一个es的文件夹
2、下载包
这是官网的下载地址,https://www.elastic.co/cn/downloads/elasticsearch ,我这里采用的是华为镜像站的方式
3、解压
4、指定JDK(可选)
elasticsearch是用java语言开发的,如果你的机器centOS里面已经安装了JDK就用机器的,如果没安装可以用es7.x提供的内置JDK,但是需要配置一下
5、配置文件修改
有的配置文件里面已经有了只需要修改下,没有的配置就自己添加
这里我买的是云服务器,需要把network.host 设置成0.0.0.0,network.publish_host 设置成云服务器的公网IP,否则会连接到内网地址上,这是一个坑,我也是百度了很多久。如果还是连接不上,检查一下防火墙是否关闭,以及云服务器的控制台端口是否开放。
6、配置ES内存
按照自己的服务器设置,我这里是1核2G的,所以设置为1G
下面是《Elasticsearch: 权威指南》节选,https://www.elastic.co/guide/cn/elasticsearch/guide/current/hardware.html
如果有一种资源是最先被耗尽的,它可能是内存。排序和聚合都很耗内存,所以有足够的堆空间来应付它们是很
重要的。即使堆空间是比较小的时候, 也能为操作系统文件缓存提供额外的内存。因为 Lucene 使用的许多数
据结构是基于磁盘的格式,Elasticsearch 利用操作系统缓存能产生很大效果。64 GB 内存的机器是非常理想的, 但是32 GB 和16 GB 机器也是很常见的。少于8 GB 会适得其反(你最终需>要很多很多的小机器),大于64 GB 的机器也会有问题, 我们将在堆内存:大小和交换 中讨论。
7、切换用户
es是不允许使用root账户启动的,所以我们要新建一个用户es。
8、启动
后台启动,如果不后台启动的话,退出es就直接挂掉了
9、报错
10、再次启动
访问9200端口发现已经启动成功了
输入jps也能看到启动成功
修改配置文件
启动一下,访问集群状态信息 http://42.192.77.73:9200/_cat/health?v 成功
我们这时候可以看到节点已经变成了两台
修改配置文件
启动一下,访问集群状态信息 http://1.15.146.169:9200/_cat/health?v 成功
我们这时候可以看到节点已经变成了3台,至此,elasticsearch7.x集群搭建成功
1、创建文件夹
2、下载kibana
这里依旧选择华为镜像下载,
3、解压
4、修改配置文件
5、启动Kibana
后台启动的命令:
6、访问一下
很高兴,看到这个页面的时候代表Kibana已经安装成功了
这是一个大的概览页,我们能够看到es的版本号,分片以及文档信息等等,点击节点
ES在主节点上产生分歧,产生多个主节点,从而使集群分裂,使得集群处于异常状态。这个现象叫做脑
裂。
举个例子,比如有es集群, a b c d 四台机器。
本文到这里就结束了,本文可以说是全网最新最全的es搭建教程,我看了网上很多的文章,有的版本比较老,一些参数也不适用了,其次是很多都是在虚拟机中搭建的,和在云服务器中搭建方法和步骤其实是不一样的,我平时在安装学习中都是在云服务器操作的,这样也能更加的贴近生产实战,下面是我用云服务器做的一些事情,非常的有意思。
《初识docker》
《教你三分钟用docker compose搭建一个自己的个人博客网站》
《RocketMQ高可用架构及二主二从异步集群部署》
本文没讲es java api的使用以及restful方式进行crud操作的步骤,这些都很简单,网上找几篇博客就能看懂了,而真正难的是es里面的原理,存储,索引,集群发现,乐观锁等等,这些需要翻阅大量的书籍去查阅去研究,我也还是小菜鸟,还在保持学习,大家共同探讨成长。
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.bhha.com.cn/news/1353.html