Elasticsearch笔记(3)

473 阅读6分钟

这是我参与8月更文挑战的第13天,活动详情查看:8月更文挑战

elasticearch.yml文件配置说明

Cluster集群配置

参数名称默认值说明
cluster.nameelasticsearch集群名称,只有具有相同集群名的节点才能组成一个逻辑集群

Node节点配置

参数名称默认值说明
node.name系统生成节点名称,同一集群的各节点名称必须不同,不配置则系统默认生成
node.attr.rack节点部落属性

Paths路径配置

参数名称默认值说明
path.conf配置文件路径
path.data数据存储位置,可以以逗号分隔配置多个存储位置,有利于提升安全性
path.work临时文件存储路径
path.logs日志文件存储路径

Memory内存配置

参数名称默认值说明
bootstrap.mlockalltrue当JVM开始写入交换空间时(swapping)ElasticSearch性能会低下,应该保证它不会写入交换空间,设置这个属性为true来锁定内存,同时也要允许elasticsearch的进程可以锁住内存

网络及http配置

参数名称默认值说明
network.bind_host0.0.0.0设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0
network.publish_host设置其它节点和该节点交互的ip地址,如果不设置它会自动设置,值必须是个真实的ip地址
network.host同时设置bind_host和publish_host上面两个参数
transport.tcp.port9300设置节点间交互的tcp端口,默认是9300
transport.tcp.compressfalse设置是否压缩tcp传输时的数据,默认为false,不压缩
http.port9200设置对外服务的http端口,默认为9200
http.max_content_length100Mb设置请求内容的最大容量,默认100mb
http.enabledfalse使用http协议对外提供服务,默认为true,开启
http.cors.enabledtrue使用head等插件监控集群信息,需要打开
http.cors.allow-origin“*”使用head等插件监控集群信息,需要打开
http.cors.allow-credentialstrue使用head等插件监控集群信息,需要打开

Geteway网关

参数名称默认值说明
gateway.typelocalgateway的类型,默认为local即为本地文件系统,可以设置为本地文件系统
gateway.recover_after_nodes1一个集群中的N个节点启动后,才允许进行恢复处理
gateway.recover_after_time5m设置初始化恢复过程的超时时间,超时时间从上一个配置中配置的N个节点启动后算起
gateway.expected_nodes2设置这个集群中期望有多少个节点.本地节点恢复会在这N个节点启动(并且recover_after_nodes也符合)加入集群之后开始执行。

Recovery集群恢复 → 集群高可用配置

参数名称默认值说明
cluster.routing.allocation.node_initial_primaries_recoveries4初始化数据恢复时,并发恢复线程的个数,默认为4
cluster.routing.allocation.node_concurrent_recoveries2添加删除节点或负载均衡时并发恢复线程的个数,默认为2
indices.recovery.max_bytes_per_sec0设置恢复时的吞吐量(例如:100mb,默认为0无限制.如果机器还有其他业务在跑的话还是限制一下的好)
indices.recovery.concurrent_streams5设置来限制从其它分片恢复数据时最大同时打开并发流的个数,默认为5

Discovery集群发现 → 集群的时候使用 主要是集群发现的配置

参数名称默认值说明
discovery.zen.minimum_master_nodes1设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点.默认为1,对于大的集群来说,可以设置大一点的值(2-4)
discovery.zen.ping.timeout3探查的超时时间,默认3秒,提高一点以应对网络不好的时候,防止脑裂
discovery.zen.ping.multicast.enabledtrue设置是否打开多播发现节点.默认是true, 当多播不可用或者集群跨网段的时候集群通信还是用单播吧
discovery.zen.ping.unicast.hosts这是一个集群中的主节点的初始列表,当节点(主节点或者数据节点)启动时使用这个列表进行探测

Cache缓存 → 关于缓存的配置

参数名称默认值说明
indices.cache.filter.size10%filter cache缓存的临界值,如1gb或20%等
index.cache.field.expire缓存过去时间
index.cache.field.max_size缓存的最大条数
index.cache.field.type缓存类型

Translog配置 → 事务操作的log配置

参数名称默认值说明
index.translog.flush_threshold_opsunlimited当发生多少次操作时进行一次flush
index.translog.flush_threshold_size512mb当translog的大小达到此值时会进行一次flush操作
index.translog.flush_threshold_period30m在指定的时间间隔内如果没有进行flush操作,会进行一次强制flush操作
index.translog.interval5s多少时间间隔内会检查一次translog,来进行一次flush操作.es会随机的在这个值到这个值的2倍大小之间进行一次操作
index.gateway.local.sync5s多少时间进行一次的写磁盘操作

ES操作(上)

索引相关操作(包括mapping与setting)

索引健康检查(不重要)可以通过ESheader完成

#  GET   _cluster/health   获取索引健康状况
#  GET http://192.168.123.64:9200/_cluster/health
###返回内容###
{
    #节点名称
    "cluster_name": "es-application",
    #响应信息中最重要的一块就是 status字段。状态可能是下列三个值之一
    #green:所有的主分片和副本分片都已分配。你的集群是 100% 可用的。
    #yellow:所有的主分片已经分片了,但至少还有一个副本是缺失的。不会有数据丢失,所以搜索结果依然是完整的。不过,你的高可用性在某种程度上被弱化。如果更多的分片消失,你就会丢数据了。把 yellow想象成一个需要及时调查的警告。
	#至少一个主分片(以及它的全部副本)都在缺失中。这意味着你在缺少数据:搜索只能返回部分数据,而分配到这个分片上的写入请求会返回一个异常。
    "status": "green",
    
    
    
  	#green/yellow/red状态是一个概览你的集群并了解眼下正在发生什么的好办法。剩下来的指标给你列出来集群的状态概要:
    
    
    
    "timed_out": false,
    
   #number_of_nodes和number_of_data_nodes 这个命名完全是自描述的。
    "number_of_nodes": 1,
    "number_of_data_nodes": 1,
    
    
    #指出你集群中的主分片数量。这是涵盖了所有索引的汇总值。
    "active_primary_shards": 0,
    
    
    #是涵盖了所有索引的_所有_分片的汇总值,即包括副本分片
    "active_shards": 0,
    
    
    #显示当前正在从一个节点迁往其他节点的分片的数量。通常来说应该是 0,不过在 Elasticsearch 发现集群不太均衡时,该值会上涨。比如说:添加了一个新节点,或者下线了一个节点。
    "relocating_shards": 0,
    
    
    #是刚刚创建的分片的个数。比如,当你刚创建第一个索引,分片都会短暂的处于 `initializing` 状态。这通常会是一个临时事件,分片不应该长期停留在 `initializing` 状态。你还可能在节点刚重启的时候看到 `initializing` 分片:当分片从磁盘上加载后,它们会从 `initializing` 状态开始
    "initializing_shards": 0,
    
    
    
    # 是已经在集群状态中存在的分片,但是实际在集群里又找不着。通常未分配分片的来源是未分配的副本。比如,一个有 5 分片和 1 副本的索引,在单节点集群上,就会有 5 个未分配副本分片。如果你的集群是 `red` 状态,也会长期保有未分配分片(因为缺少主分片)
    "unassigned_shards": 0,
    
    
    
    "delayed_unassigned_shards": 0,
    "number_of_pending_tasks": 0,
    "number_of_in_flight_fetch": 0,
    "task_max_waiting_in_queue_millis": 0,
    "active_shards_percent_as_number": 100.0
}

创建索引

#PUT     /{索引名}(自定义)
#PUT     http://192.168.123.64:9200/index_jacquesh
{
    "settings": {
        "index": {
            "number_of_shards": "2", #主分片数量
            "number_of_replicas": "0" #备份分片数量
        }
    }
}

#返回
{
    "acknowledged": true,
    "shards_acknowledged": true,
    "index": "index_jacquesh"
}
#创建成功

查看索引

# GET     _cat/indices?v

返回

image-20200904043708591.png

删除索引

#DELETE      /{索引名}(自定义)
#DELETE     http://192.168.123.64:9200/index_jacquesh1

#返回
{
    "acknowledged": true
}
#删除成功