ES集群安装搭建

ES集群安装搭建,第1张

ES版本依赖: https://www.elastic.co/cn/support/matrix

三台服务器:

现在完成后上传至Linux服务器。比如通过ssh rz 命令上传到home目录

这里选择 ElasticHD ,解压即可使用。

有关ES可视化工具,参见下面附录

报错如下,切换至非root用户即可

ES未来的把版本要求匹配JDK 11,这里可以忽略。

启动检查失败,这里有三个错误。

[1] es进程的最大文件描述符[4096]太低,请至少增加到[65535]

[2] 用户[es]的最大线程数[3795]太低,请至少增加到[4096]

[3] 最大虚拟内存区域[65530]太低,请至少增加到[262144]

修改limits.conf配置 vim /etc/security/limits.conf 在末尾添加如下内容:

修改sysctl.conf配置 vim /etc/sysctl.conf 在末尾添加如下内容:

修改保存之后重新加载配置

查看防火墙状态,看防火墙是未开启此端口。

直接关闭防火墙(比较暴力)

或者开启端口

浏览器可以成功访问: http://192.168.200.101:9200

日志不停的打印警告,主节点没有发现,原因是9300端口防火墙没有放开,因为节点通信、发现、选举master,默认使用9300端口。

ES官网: https://www.elastic.co/cn/elasticsearch

官网文档: https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

中文社区: https://elasticsearch.cn/

ES常用工具清单: https://blog.csdn.net/laoyang360/article/details/80645710

上一篇文章:ES的索引管理 https://www.jianshu.com/p/3cb80dcf514f

ES通常以集群方式工作,这样做不仅能够提高 ES的搜索能力还可以处理大数据搜索的能力,同时也增加了系统的容错能力及高可用,ES可以实现PB级数据的搜索。

下图是ES集群结构的示意图:

从上图总结以下概念:

1、结点

ES集群由多个服务器组成,每个服务器即为一个Node结点(该服务只部署了一个ES进程)。

2、分片

当我们的文档量很大时,由于内存和硬盘的限制,同时也为了提高ES的处理能力、容错能力及高可用能力,我们将索引分成若干分片,每个分片可以放在不同的服务器,这样就实现了多个服务器共同对外提供索引及搜索服务。

一个搜索请求过来,会分别从各各分片去查询,最后将查询到的数据合并返回给用户。

3、副本

为了提高ES的高可用同时也为了提高搜索的吞吐量,我们将分片复制一份或多份存储在其它的服务器,这样即使当前的服务器挂掉了,拥有副本的服务器照常可以提供服务。

4、主结点

一个集群中会有一个或多个主结点,主结点的作用是集群管理,比如增加节点,移除节点等,主结点挂掉后ES会重新选一个主结点。

5、结点转发

每个结点都知道其它结点的信息,我们可以对任意一个结点发起请求,接收请求的结点会转发给其它结点查询数据。

下边的例子实现创建一个2结点的集群,并且索引的分片我们设置2片,每片一个副本

主结点:master节点主要用于集群的管理及索引 比如新增结点、分片分配、索引的新增和删除等。 数据结点:data 节点上保存了数据分片,它负责索引和搜索 *** 作。 客户端结点:client 节点仅作为请求客户端存在,client的作用也作为负载均衡器,client 节点不存数据,只是将请求均衡转发到其它结点。

通过下边两项参数来配置结点的功能:

node.master: #是否允许为主结点

node.data: #允许存储数据作为数据结点

node.ingest: #是否允许成为协调节点,

四种组合方式:

master=true,data=true:即是主结点又是数据结点

master=false,data=true:仅是数据结点

master=true,data=false:仅是主结点,不存储数据

master=false,data=false:即不是主结点也不是数据结点,此时可设置ingest为true表示它是一个客户端

解压elasticsearch-6.2.1.zip

结点1对外服务的http端口是:9200

集群管理端口是9300

配置elasticsearch.yml

结点名:xc_node_1

elasticsearch.yml内容如下

*** 作与节点1一样

1)使用head连上其中一个结点

上图表示两个结点已经创建成功。

2)下边创建索引库,共2个分片,每个分片一个副本

上图可以看到共有4个分片,其中两个分片是副本。

3)每个结点安装IK分词器

通过访问 GET /_cluster/health 来查看Elasticsearch 的集群健康情况。

用三种颜色来展示健康状态: green 、 yellow 或者 red 。

green:所有的主分片和副本分片都正常运行。

yellow:所有的主分片都正常运行,但有些副本分片运行不正常。

red:存在主分片运行不正常。

1)创建映射并写入文档

连接 其中任意一台结点,创建映射写入文档。

2)搜索

向其它一个结点发起搜索请求,查询全部数据。

3)关闭一个结点

ES会重新选中一个主结点(前提在配置结点时允许它可以为主结点)

此时向活的结点发起搜索请求,仍然正常。

elasticsearch.yml 服务配置文件

参数:

配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。

设置默认索引分片个数,默认为5片。Since elasticsearch 5.x index level settings can NOT be set on the nodes configuration like the elasticsearch.yaml, in system properties or command line arguments.In order to upgrade all indices the settings must be updated via the /${index}/_settings API. Unless all settings are dynamic all indices must be closed

in order to apply the upgradeIndices created in the future should use index templates

to set default values.

Please ensure all required values are updated on all indices by executing:

curl -XPUT ' http://localhost:9200/_all/_settings?preserve_existing=true ' -d '{

"index.number_of_replicas" : "1",

"index.number_of_shards" : "7"

}'

设置默认索引副本个数,默认为1个副本。 5.X版本以上不支持在配置文件里面配置。

节点名,默认随机指定一个name列表中名字,该列表在es的jar包中config文件夹里name.txt文件中,其中有很多作者添加的有趣名字。

指定该节点是否有资格被选举成为node,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。

指定该节点是否存储索引数据,默认为trues

禁止自动创建索引

这个设置使删除只限于特定名称指向的数据,而不允许通过指定_all 或通配符来删除指定索引库。

设置配置文件的存储路径,默认是es根目录下的config文件夹。

设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开,例:

path.data:/path/to/data1,/path/to/data2

设置临时文件的存储路径,默认是es根目录下的work文件夹。

设置日志文件的存储路径,默认是es根目录下的logs文件夹

设置插件的存放路径,默认是es根目录下的plugins文件夹

设置为true来锁住内存。因为当jvm开始swapping时es的效率会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。同时也要允许elasticsearch的进程可以锁住内存,Linux下可以通过 ulimit-l unlimited 命令。

设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0。

设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。

这个参数是用来同时设置bind_host和publish_host上面两个参数。

设置节点间交互的tcp端口,默认是9300。

设置是否压缩tcp传输时的数据,默认为false,不压缩。

设置对外服务的http端口,默认为9200。

设置内容的最大容量,默认100mb

是否使用http协议对外提供服务,默认为true,开启。

gateway的类型,默认为local即为本地文件系统,可以设置为本地文件系统,分布式文件系统,Hadoop的HDFS,和amazon的s3服务器,其它文件系统的设置方法下次再详细说。

设置这个集群中节点的数量,默认为2,一旦这N个节点启动,就会立即进行数据恢复。

预期在群集中的主节点数。一旦预期的主节点数加入集群,就会开始恢复本地分片。默认为0

预期在群集中的数据节点数。一旦预期数量的节点已加入群集,就会启动本地分片的恢复。默认为0

如果未达到预期的节点数,则恢复过程将等待配置的时间量,然后再尝试恢复。

设置初始化数据恢复进程的超时时间,默认是5分钟。

如果recover_after_time 持续时间超时,只要满足以下条件,恢复就会开始:

设置集群中N个节点启动时进行数据恢复,默认为1。意味着至少有一个节点,该集群才可用。

只要此许多数据或主节点已加入群集,即可恢复。

只要这么多主节点已加入群集,就可以恢复。

只要这么多数据节点已加入群集,就可以恢复。

初始化数据恢复时,并发恢复线程的个数,默认为4。

添加删除节点或负载均衡时并发恢复线程的个数,默认为4。

设置数据恢复时限制的带宽,如入100mb,默认为0,即无限制。

设置这个参数来限制从其它分片恢复数据时最大同时打开并发流的个数,默认为5。

设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)

设置集群中自动发现其它节点时ping连接超时时间,默认为3秒,对于比较差的网络环境可以高点的值来防止自动发现时出错。

设置是否打开多播发现节点,默认是true。

设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7471285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存