当前位置:   article > 正文

Elasticsearch集群搭建_elasticsearch 集群搭建

elasticsearch 集群搭建


一、什么是elasticsearch?

	es是一个分布式搜索和分析引擎。es存储的是序列化为json文档的复杂数据结构,而不是以列行数据的形式存储信息,当集群中有多个es节点时,存储的文档分布在整个集群中,可以从任何节点访问。
	es能够处理大量数据,并允许用户进行复杂的查询和聚合操作.它提供了丰富的API和工具,方便用户进行搜索、分析、监控、可视化等操作,还具有高可扩展性、可靠性。
	es节点的自动发现与故障转移的实现是基于Zen发现机制来实现的,Zen使用GossIp协议实现节点之间的信息交换,以尽可能快速的检测到新节点和丢失的节点
  • 1
  • 2
  • 3

二、elasticsearch工作原理?

 - 索引和文档存储: 在es中数据通过索引和文档进行存储和组织,索引可以看作是一个容器,用于存储相关文档,而文档则包含了需要被索引和搜索的数据。
 - 分词和倒排索引: 当数据被存储到es中时,它会被分解为一系列词项,这个过程叫做分词.分词后会被用于构建倒排索引,根据词项来查找包含该词项的文档。
 - 搜索和查询: 当用户提交一个查询请求时,es会通过查询语句来匹配索引中符合条件的文档,并计算每个文档与查询的相关度得分.然后将文档按照得分从高到低排序,呈现给用户。
 - 分片和副本: es支持将索引划分为多个分片,以实现水平扩展和负载均衡.每个分片还可以设置一个或多个副本,以提高可用性和故障恢复能力。
 - 集群通信和协调: 在es集群中,所有节点都可以互相通信和协调,通过GossIp协议来交换集群状态,并使用选举算法来选举主节点来协调集群的一些操作。例如分片的重新分配和副本的同步等。
 总之,es基于分布式系统的思想,利用倒排索引和分布式计算等技术,实现高性能、高可用、高扩展性的搜索和分析功能。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

三、部署elasticsearch集群

1.服务器调优

 - 首先准备三台2c4g服务器,并修改机器名称并安装jdk,并做免密,安装jdk及免密不在叙述。
	192.168.10.11 es1
	192.168.10.12 es2
	192.168.10.12 es2
	验证jdk是否安装,执行已下命令
	java --version
	返回以下结果代表安装成功
	java version "1.8.0_201"
	Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
	Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

 - 修改文件限制
 	vi /etc/security/limits.conf
		* hard nofile 65536
		* soft nproc 2048
		* hard nproc 4096
		* soft memlock unlimited
		* hard memlock unlimited
 - 调整进程数
 	vi /etc/security/limits.d/20-nproc.conf
	*          soft    nproc     4096
	root       soft    nproc     unlimited
 - 调整虚拟内存&&最大连接数
	vi /etc/sysctl.conf
	vm.max_map_count=655360
	fs.file-max=655360
	执行sysctl -p命令进行加载
 
 - 关闭selinux及防火墙
 	vim /etc/selinux/config 
 		SELINUX=disabled #设置为disables
 		
 	systemctl stop firewalld #停止防火墙
 	systemctl disable firewalld #禁止开机自启动

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

2.部署集群

1、下载官网es安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.13-linux-x86_64.tar.gz
  • 1
  • 2
2、创建es启动用户,并修改安装目录的属主属组、解压并安装
tar -zxvf elasticsearch-6.8.13-linux-x86_64.tar.gz -C /export/server/

创建es启动用户 (es必须使用普通用户启动,采用超管root用户启动会报错)
useradd elasticsearch

修改安装目录的属主属组
chown -R elasticsearch.elasticsearch -R /export/server/elasticserch-6.8.13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
3、修改配置文件elasticsearch.yml和jvm.options文件

	进入到安装目录下 cd /export/server/elasticsearch-6.8.13

	进入配置文件目录 cd config/

	打开配置文件并进行修改  vim elasticsearch.yml
	cluster.name: test #指定es集群名称
	node.name: es1 #节点名称 三台节点各自命名,不可相同
	path.data: /export/server/elasticsearch-6.8.13/data #es数据存放目录
	path.logs: /export/server/elasticsearch-6.8.13/logs #es日志存放目录
	network.host: 192.168.10.11 #本机ip地址 三台机器各自的IP地址
	http.port: 9200
	discovery.zen.ping.unicast.hosts: ["192.168.10.11,192.168.10.12,192.168.10.13"] #监听哪些节点
	
	打开jvm.options文件,主要修改以下两行配置:
	vim jvm.options 
		-Xms2g  #根据服务器内存大小进行设置
		-Xmx2g
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
4、其余两台机器按照步骤1、2安装es,并将第一台修改好的配置文件拷贝到其余两台机器上进行替换,并修改node.name和network.host两处
	#第二台机器
	scp -p /export/server/elasticsearch-6.8.13/config/elasticsearch.yml 192.168.10.12: /export/server/elasticsearch-6.8.13/config/elasticsearch.yml
	scp -p /export/server/elasticsearch-6.8.13/config/jvm.options 192.168.10.12: /export/server/elasticsearch-6.8.13/config/jvm.options
	#第三台机器
	scp -p /export/server/elasticsearch-6.8.13/config/elasticsearch.yml 192.168.10.13: /export/server/elasticsearch-6.8.13/config/elasticsearch.yml
	scp -p /export/server/elasticsearch-6.8.13/config/jvm.options 192.168.10.13: /export/server/elasticsearch-6.8.13/config/jvm.options
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
5、启动es集群
	三台es节点分别执行以下命令
		su elasticsearch #切换到创建的es用户
		/export/server/elasticsearch-6.8.13/bin/elasticsearch -d #执行启动命令

	停止es集群命令
		ps -ef |grep elasticsearch 查看进程的pid号
		kill es进程pid即可
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
6、检查三台es机器是否分别成功启动es,及集群是否创建成功
	分别执行以下命令:
		ps -ef |grep elasticsearch 或者 netstat -lntp |grep 9200
	
	检查es集群是否创建成功以及检查es集群健康状态:
		1、使用命令查看节点是否已加入到集群中:
		 curl http://192.168.10.11:9200/_cat/nodes?v
		 ip             heap.percent ram.percent cpu load_1m load_5m   load_15m  node.role master name
		192.168.10.11        24          74      45    1.20    1.44     0.4        xxx     *     192.168.10.11
		192.168.10.12        23          44      34   1.10    1.20      0.9        xxx     *     192.168.10.12
		192.168.10.13        21          24      33    0.20   1.10     0.6        xxx     *      192.168.10.13
		2、检查集群健康状态:
		curl http://192.168.56.130:9200/_cat/health?v
		查看返回值中status状态,这个状态有三个分别是green、yellow、red,依次对应健康、亚健康、不健康状态
		只有status为green或yellow时,集群方可使用.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

总结

至此,es集群搭建完成。且es集群的节点要求书必须为1、3、5..奇数个节点,方便集群重新选举master。通过此次搭建,不仅了解到了搭建es集群前服务器的调优,还针对es的启动做出了优化。并对整体的搭建流程有了更清楚的思路。不管是arm架构还是x86_64架构,搭建流程如法炮制即可。
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/962692
推荐阅读
相关标签
  

闽ICP备14008679号