elasticsearch集群搭建及参数详解

介绍

elasticsearch集群的搭建教程很多。网上一搜都是,但是,搭建不难。更重要的是明白集群原理,性能以及运维知识点。所以,本文将从这些点着重介绍。

配置参数详解

elasticsearch配置文件中有以下这些参数,将逐一介绍(其实配置文件中英文描述已经非常清楚):

  • cluster.name
    集群名,自定义集群名,默认为elasticsearch,建议修改,因为低版本多播模式下同一网段下相同集群名会自动加入同一集群,如生产环境这样易造成数据运维紊乱。

  • node.name
    节点名,同一集群下要求每个节点的节点名不一致,起到区分节点和辨认节点作用

  • node.master
    是否为主节点,选项为true或false,当为true时在集群启动时该节点为主节点,在宕机或任务挂掉之后会选举新的主节点,恢复后该节点依然为主节点

  • node.data
    是否处理数据,选项为true或false。负责数据的相关操作

  • path.data
    默认数据路径,可用逗号分隔多个路径

  • path.logs
    默认日志路径

  • bootstrap.mlockall
    内存锁,选项为true或false,用来确保用户在es-jvm中设置的ES_HEAP_SIZE参数内存可以使用一半以上而又不溢出

  • network.host
    对外暴露的host,0.0.0.0时暴露给外网

  • http.port
    对外访问的端口号,默认为9200,所以外界访问该节点一般为http://ip:9200/

  • transport.tcp.port
    集群间通信的端口号,默认为9300

  • discovery.zen.ping.unicast.hosts
    集群的ip集合,可指定端口,默认为9300,如 ["192.168.1.101","192.168.1.102"]

  • discovery.zen.minimum_master_nodes
    最少的主节点个数,为了防止脑裂,最好设置为(总结点数/2 + 1)

  • discovery.zen.ping_timeout
    主节点选举超时时间设置

  • gateway.recover_after_nodes
    值为n,网关控制在n个节点启动之后才恢复整个集群

  • node.max_local_storage_nodes
    值为n,一个系统中最多启用节点个数为n

  • action.destructive_requires_name
    选项为true或false,删除indices是否需要现实名字

理解主节点、副节点、分片与复制分片

关系

起初创建节点与分片的关系,设置shards=2,replicas=1

elasticsearch节点与分片的关系图.png

解析

  • node-master主节点
    集群中用于元数据(metadata)的请求处理,比如确定分片位置,索引的新增、删除请求分配等

  • node
    包括client nodedata node

1. `client node` node.master=true,node.data=false 用于转发请求,起到平衡负载的作用
2. `data node` node.master=flase,node.data=true
> 节点上保存了数据分片。它负责数据相关操作,比如分片的 CRUD,以及搜索和整合操作。这些操作都比较消耗 CPU、内存和 I/O 资源
  • shards 分片
    在设置索引时默认(5)或自己设置的分片数量,即indices(1)--shards(n),而每插入一条数据都会在唯一主分片中,即Document(n)--shards(1)

  • replicas 复制分片
    同样在设置索引时会默认(1)或自定义复制分片数量,该数量对应关系为每个主分片对应的复制分片,即shards(1)--replicas(n)

要点

  1. 当集群健康状态为yello表示存在复制分片未被分配(unassigned)到节点中(或者分配的复制节点个数少于设置的个数),这时如果硬件有故障将无法找回数据。
  2. 在同一个节点上既保存原始数据又保存副本是没有意义的,因为一旦失去了那个节点,我们也将丢失该节点上的所有副本数据。
  3. 主分片数量一般是在建立索引时就固定的,一般是不作修改的,如果减少分片数量意味着数据将要丢失
  4. 复制分片一定意义上可以起到负载的功能,提高数据的冗余量。但如果只是在相同节点数目的集群上增加更多的副本分片并不能提高性能,因为每个分片从节点上获得的资源会变少。 你需要增加更多的硬件资源来提升吞吐量

节点与分片模型

同样设置shards=2,replicas=1

elasticsearch节点与分片可分配关系图.png

elasticsearch节点与分片正常存储关系图.png

分布式文档存储的关系原理

这个由于在官网指南中写的很清楚了,直接贴出章节。
分布式文档存储

集群搭建

配置集群

修改配置文件

# vi /etc/elasticsearch/elasticsearch.yml

# 统一的集群名
cluster.name: syncwt-es
# 当前节点名
node.name: syncwt-es-node-1
# 对外暴露端口使外网访问
network.host: 0.0.0.0
# 对外暴露端口
http.port: 9200
# ...还有很多可以设置,这些是基础的。具体看上面的配置参数说明

重启并查看集群健康状态:

# sudo systemctl start elasticsearch.service
# curl -XGET 'http://localhost:9200/_cat/health?v'

集群可视化插件安装elasticsearch-head

# cd ${elasticsearch_HOME}
# ./plugin install mobz/elasticsearch-head

页面访问效果(单节点):
http://119.29.248.199:9200/_plugin/head/

elasticsearch_head效果图.png

注意

  1. 集群中es的版本应保持一致,最好内网部署,外网不是很稳定。
  2. 可用容器(如docker)封装统一部署集群各节点以保持配置一致性
  3. 可在一台机器上运行多个节点来构建集群,只是性能会和机器配置相关

总结

  1. 集群中节点选型策略。node-data节点(随着数据增加而增加),note-client(随着查询压力而增加)节点
  2. 集群节点数量上升时,多关注配置参数,如gateway.recover_after_nodes等,会带来很多效率的提高
  3. 当集群数量较大时,建议横向扩展集群。单纯增加es节点的内存和CPU不会有很大提升,建议多增加节点

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容