**
ES集群搭建
**: 说明:首先要讨论搭建几个集群,集群搭建很简单,只需要配置做好就ok; 一 : 在搭建集群之前,我们首先要了解一个es中的相关内容
- cluster : 代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。
- shards : 代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。
二. 部署环境: 采用三台CentOS7.3部署Elasticsearch集群,部署Elasticsearch集群就不得不提索引分片,以下是索引分片的简单介绍。 系统 节点名 IP CentOS7.3 el01 172.182.68.11 CentOS7.3 el02 172.182.68.12 CentOS7.3 el03 172.182.68.13 ES集群中索引可能由多个分片构成,并且每个分片可以拥有多个副本。通过将一个单独的索引分为多个分片,我们可以处理不能在一个单一的服务器上面运行的大型索引,简单的说就是索引的大小过大,导致效率问题。不能运行的原因可能是内存也可能是存储。由于每个分片可以有多个副本,通过将副本分配到多个服务器,可以提高查询的负载能力。 三. 部署Elasticsearch集群 1.安装JDK Elasticsearch是基于Java开发是一个Java程序,运行在Jvm中,所以第一步要安装JDK es7.0以上都需要jdk1.8以上 tar -zxvf jdk-8u161-linux-x64.tar.gz
vim /etc/profile
添加如下内容:
export JAVA_HOME=/home/cloud/usr/jdk #自己解压的jdk路径
export JAVA_HOME
PATH=${JAVA_HOME}/bin:$PATH
export PATH
重启机器或者执行命令:
source /etc/profile
2.下载elasticsearch
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.1-linux-x86_64.tar.gz
解压
tar -zxvf elasticsearch-7.0.1-linux-x86_64.tar.gz
3.配置目录 安装完毕后会生成很多文件,包括配置文件日志文件等等,下面几个是最主要的配置文件路径 vim /home/cloud/elasticsearch/elasticsearch.yml # els的配置文件 vim /home/cloud/elasticsearch/jvm.options # JVM相关的配置,内存大小等等
4.创建用于存放数据与日志的目录
mkdir logs
mkdir data
5.集群配置
vim /config/elasticsearch.yml
cluster.name: my-elasticsearch # 集群名称
node.name: es01 # 节点名称,用于标清
path.data: /home/cloud/es/data # 数据的默认存放路径
path.logs: /home/cloud/es/logs # 日志的默认存放路径
network.host: 172.182.68.11 # 当前节点的IP地址
http.port: 9200 # 对外提供服务的端口,
transport.tcp.port: 9300 # 9300为集群服务的端口
discovery.seed_hosts:
- 172.182.68.11
- 172.182.68.12
- 172.182.68.13
cluster.initial_master_nodes:
- es01
- es02
- es03
discovery.zen.minimum_master_nodes: 节点数/2 向下取整加1
#剩下两台服务器的配置 , 只需要改 node.name: es02和node.name: es03 , 然后network.host: 172.182.68.112和network.host: 172.182.68.13 , 剩下配置不动即可(如下是某台服务器中的es的elasticsearch.yml配置,其他两台仿照即可)
6.JVM配置 由于Elasticsearch是Java开发的,所以可以通过/etc/config/jvm.options配置文件来设定JVM的相关设定。如果没有特殊需求按默认即可。
vim /config/jvm.options # JVM最大、最小使用内存
-Xms48g
-Xmx48g
7.es需要的系统配置(必须设置的)
/etc/security/limits.conf
增加
* soft nofile 65536
* hard nofile 65536
* soft nproc 10240
* hard nproc 10240
vim /etc/sysctl.conf 增加
vm.max_map_count=262144
一定要记得重启系统
8.启动Elasticsearch
./bin/elasticsearch
后台启动
./bin/elasticsearch -d -p pid
后台启动(nohub)
nohup ./bin/elasticsearch &
9.测试 Elasticsearch直接听过了http接口,所以直接使用curl命令就可以查看到一些集群相关的信息。 可以使用curl命令来获取集群的相关的信息, curl -XGET ‘http://172.182.68.11:9200/_cat/nodes?pretty’ 网页访问 172.182.68.11:9200/_cat/nodes?pretty
10.跨域访问(只需要在一台服务器山配置即可.使用此台服务器进行跨域访问)
在vim /config/elasticsearch.yml
#开启跨域访问支持,默认为false
http.cors.enabled: true
#跨域访问允许的域名地址,(允许所有域名)以上使用正则
http.cors.allow-origin: /.*/
11.由于项目甲方要求,将buckets设置为100万 查看es的buckets的http://192.168.12.161:9200/_cluster/settings { persistent: { search: { max_buckets: “10000” } }, transient: { } }
因为es的buckets的默认值是10000,不满足项目要求,项目要求要设置为100万,所以需要修改buckets的值:为100万 修改es的buckets值大小 curl -X PUT “192.168.12.161:9200/_cluster/settings?pretty” -H ‘Content-Type: application/json’ -d’{“persistent” : {“search.max_buckets” : 1000000}}’ 12. 设置es的查询条数超过一万条 当用elasticsearch进行深度分页查询时的size-from大于10000的时候,就会报错“”, 官方推荐是scroll查询返回结果是无序的不满足业务需求,所以还是通过设置最大返回结果数来达到我们的目的 然后我们可以通过以下方法设置: 第一种: curl -H “Content-Type: application/json” -XPUT http://192.168.12.161:9200/*/_settings -d ‘{ “index” : { “max_result_window” : 999999999}}’ 第一种:curl -XPUT http://127.0.0.1:9200/_settings -d '{ “index” : { “max_result_window” : 100000000}}‘ 第二种:在config/elasticsearch.yml文件中的最后加上index.max_result_window: 100000000,但是这种方法要注意在最前面加上空格
13.配上一个centos6.7版本的elasticsearch.yml的配置图 跟elasticsearch7.0.1的配置唯一的不同处:
discovery.zen.ping.unicast.hosts: ["192.168.12.148","192.168.12.149","192.168.12.150","192.168.12.151"]
使用elasticsearch7.3版本在一台主机上部署多个实例组建集群 https://blog.csdn.net/weixin_30381793/article/details/101661971 https://www.cnblogs.com/sanduzxcvbnm/p/11433741.html 添加链接描述
13. 垃圾回收机制:
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly
改为:
-XX:+UseG1GC
-XX:MaxGCPauseMillis=50
14.安装elasticsearch分词器 将elasticsearch-analysis-ik-6.7.1.zip 放到elasticsearch_19200/plugins下面,然后
unzip elasticsearch-analysis-ik-6.7.1.zip analysis-ik
15. Elasticsearch 设置节点
discovery.zen.minimum_master_nodes: nodes/2 向下取整 +1
|