Elasticsearch

一、基本概念
1、接近实时 NRT
2、集群 cluster:一个集群是由一个或多个节点组织在一起,它们共同持有你整个的数据,并一起提供索引和搜索功能。节点通过指定集群的名字来加入集群,默认为“elasticsearch”。
3、节点 node:结点用来存储数据,参与集群的索引和搜索功能,当只有一个节点时,会默认创建并加入一个集群“elasticsearch”。
4、索引 index:索引是一个拥有几分相似特征的集合。
5、类型 type:在一个索引中,可以定义多个类型,类型是索引的逻辑上的分类。
6、文档 document:文档是可以被索引的基础信息单元。
7、分片与复制 shards & replicas:当索引太大的时候,可以引入分片,在创建索引的时候,设置分片的数量。(创建之后分片的数量不可以改变)分片的分布、聚合搜索请求都由elasticsearch管理。复制是创建分片的一个副本,可以满足高可用以及扩展吞吐量

二、基本配置

#配置集群名称
cluster.name: elasticsearch
#配置节点名称
node.name: “Franz Kafka”
#设置节点是否为master,默认为true
node.master: true
#指定节点是否存储数据,默认为true
node.data: true
#设置索引分片数量
index.number_of_shards: 5
#设置索引副本数量,默认为1个副本
index.number_of_replicas:
#设置配置文件的存储路径,默认为es根目录下的config文件夹
path.conf: /path/to/conf
#设置索引数据的存储路径,默认为es根目录下的data文件夹,多个路径之间用,分割
path.data:/path/to/data1,/path/to/data2
#设置临时文件存储路径
path.work:/path/to/work
#日志文件存储路径
path.logs: /path/to/logs
#插件存储路径
path.plugins: /path/to/plugins
#设为true可以锁住内存。
#因为当jvm开始swapping时es的效率会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。同时也要允许elasticsearch的进程可以锁住内存,linux下可以通过ulimit -l unlimited命令。
bootstrap.mlockall: true
#设置绑定ip
network.bind_host: 192.168.0.1
#设置其他节点和该节点交互的ip,不设置时会自动判断
network.publish_host: 192.168.0.1

#设置节点之间交互的tcp端口,默认是9300。
transport.tcp.port: 9300
#设置是否压缩tcp传输时的数据,默认为false,不压缩。
transport.tcp.compress: true
#设置对外服务的http端口,默认为9200。
http.port: 9200
#设置内容的最大容量,默认100mb
http.max_content_length: 100mb
#是否使用http协议对外提供服务,默认为true
http.enabled: false
#gateway的类型,默认为local
gateway.type: local
#设置集群中N个节点启动时进行数据恢复,默认为1。
gateway.recover_after_nodes: 1
#设置初始化数据恢复进程的超时时间,默认是5分钟
gateway.recover_after_time: 5m
#设置这个集群中节点的数量,默认为2
gateway.expected_nodes: 2
#初始化数据恢复时,并发恢复线程的个数,默认为4
cluster.routing.allocation.node_initial_primaries_recoveries: 4
#添加删除节点或负载均衡时并发恢复线程的个数,默认为4
cluster.routing.allocation.node_concurrent_recoveries: 2
#设置数据恢复时限制的带宽,如入100mb,默认为0,即无限制。
indices.recovery.max_size_per_sec: 0
#设置这个参数来限制从其它分片恢复数据时最大同时打开并发流的个数,默认为5
indices.recovery.concurrent_streams: 5
#设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1
discovery.zen.minimum_master_nodes: 1
#设置集群中自动发现其它节点时ping连接超时时间,默认为3秒
discovery.zen.ping.timeout: 3s
#设置是否打开多播发现节点,默认是true
discovery.zen.ping.multicast.enabled: false
#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
discovery.zen.ping.unicast.hosts: [“host1”, “host2:port”, “host3 [portX-portY] “]

QA
1、索引数据太多了如何调优
可以大致分为三个层面: 1、动态索引层面,比如可以加上每天的时间戳,好处是不至于数量激增导致某个索引数据量巨大。
2、存储层面使用冷热数据分开存储,即几天前的数据可以分开存储、定期压缩。
3、部署层面elasticsearch支持动态扩展。

2、es如何实现主节点选举
首先,只有候选主节点才有机会成为mater节点,当确认候选主节点数(discovery.zen.minimum_master_nodes)达标后,先比较,判定该节点是否具备master资格,具备资格的将优先返回,若多个节点成为候选主节点,则id小的会成为主节点,(最小主节点数(min_master_nodes)的目的是防止脑裂)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值