首页 > 资讯 > 正文
es集群相关知识整理
来源:六六短链 阅读量:
es为什么要实现集群
随着业务量的发展,索引文件在逐渐变大,单个es服务器由于物理条件受限承载整个索引。采用es集群的方式,将单个索引按不同的分片存储到不同的物理机器上,从而实现高可用与容错性。
为了实现高可用,分片分为主分片与副本分片,每个分片可以有1至多个副本,分配到多个服务器,负责容错与负载均衡,分片与副本不允许在同一个节点,否则就失去备份的意义。
 
 
Es集群原理
每个索引创建后被分成多个分片shards存储,默认是5个分片,分布式部署个多个节点上,这些分片是主分片,索引的主分片定义后,不能修改。
 
当客户端发起创建doc的时候,es需要确定这个doc放在该索引哪个shard上。这个过程就是数据路由。路由算法:shard = hash(doc) % number_of_primary_shards。


 
集群搭建
1、操作系统:cenos6,es版本6.4,jdk1.8
2、准备3台服务器192.168.10.11、192.168.10.12、192.168.10.13
3、安装es
tar xf elasticsearch-6.4.0.tar.gz -C /data/
vi elasticsearch.yml(config目录)
cluster.name: escluster    ###保证三台服务器节点集群名称相同
node.name: node-1   #### 每个节点名称不一样 其他两台为node-1 ,node-2
node.master: true  ###master服务器主要管理集群状态,负责元数据处理,比如索引增加删除分片分配等,数据存储和查询都不会走主节点,压力较小,jvm内存可分配较低一点
node.data: true  ###存储索引数据,三台都设为true即可
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
bootstrap.memory_lock: true   ##锁住物理内存,不使用swap内存,有swap内存的可以开启此项
bootstrap.system_call_filter: false
http.port: 9200
network.host: 0.0.0.0  #### 实际服务器ip地址
discovery.zen.minimum_master_nodes: 2 ##表示集群最少的master数,如果集群的最少master数据少于指定的数,将无法启动,官方推荐node master数设置为集群数/2+1,我这里三台ES服务器,配置最少需要两台master,整个集群才可正常运行
discovery.zen.ping_timeout: 3s   ###自动发现拼其他节点超时时间
discovery.zen.ping.unicast.hosts: ["192.168.10.11:9300","192.168.10.12:9300","192.168.10.13:9300"]  ##多个服务集群ip, 设置集群的初始节点列表,集群互通端口为9300
4、jvm调优
vim /data/elasticsearch/config/jvm.options
-Xms1g   修改为 ===>  -Xms2g
-Xmx1g   修改为 ===>  -Xmx2g
设置为物理内存一半最佳,可根据服务器内存去选择调。
5、设置权限
chown -R elasticsearch: /data/elasticsearch
6、操作系统调优(必须配置,否则ES起不来)
【1】内存优化
在/etc/sysctl.conf添加如下内容
fs.file-max=655360
vm.max_map_count=655360
sysctl -p生效
解释:
(1)vm.max_map_count=655360 ##系统最大打开文件描述符数
(2)vm.max_map_count=655360 ##限制一个进程拥有虚拟内存区域的大小
【2】修改vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
* soft memlock unlimited
* hard memlock unlimited
解释:
(nofile)最大开打开文件描述符
(nproc)最大用户进程数
(memlock)最大锁定内存地址空间
【3】修改/etc/security/limits.d/90-nproc.conf
将1024修改为65536
 
*soft    nproc     1024     修改前
*soft    nproc     65536   修改后
ctrl +d从进终端
ulimit -a查看
 
 
7、编写es启动脚本(见脚本文件)
查看启动
netstat -tlnp | egrep '9200|9300'
service elasticsearch status
8、监控API
GET 
/_cat/health查看集群健康状况
/_cat/nodes
/_cat/master
/_cat/indices
/_cat/allocation
/_cat/shards
/_cat/shards/{index}
/_cat/thread_pool
/_cat/segments
/_cat/segments/{index}
9、关闭防火墙
systemctl stop firewalld.service
9、重启es
service elasticsearch restart
 


上一篇抓住痛点降低广告成本 下一篇没有了

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.link66.cn/news/3076.html