一、索引、别名、分片、副本之间的关系?文字或者图示
1、索引 & 别名 & 分片 & 副本 & 图解 & 增删索引操作
index: 索引是个虚拟空间,类型数据库中的table
一个索引由至少1个分片组成,
一个索引可以由主分片与副本分片组成
aliases:
索引别名就是在索引上的又一层映射
可以指向一个或者多个索引
1) 在正在运行的集群上的一个索引和另一个索引之间透明切换
2)对多个索引进行分组组个
(如:last_three_months索引别名:是过去3个月索引logstash_201903, logstash_201904, logstash_201905的组合)
shard: 单台机器无法存储大量数据,es可以将一个索引中的数据切分为多
个shard,有了shard就可以横向扩展,存储更多数据,让搜索和分析等操作
分布到多台服务器上去执行,提示吞吐量和性能。每个shard都是一个lucene index
replica: 任何一个服务器随时可能故障或宕机,此时shard可能就会丢失,因此可以为
每个shard创建多个replica副本。replica可以在shard故障时提供备用服务,保证数据
不丢失,多个replica还可以提升搜索操作的吞吐量和性能。
# 分片数量
索引分片数量不超过节点数量
1个索引40个分片等同于40个1分片索引
# 副本数量
索引副本数量少于节点数量
副本数量可多可少
# 分片容量
分片数据容量上限不超过50GB,建议20GB-40GB
# 数据条数
单分片不超过2的32次方-1(21亿条)
查询现有所有索引以及别名
GET /_aliases
删除与增加别名
POST / _aliases
{
"actions": [{
"remove": {
"index": "my_index_v1",
"alias": "my_index"
}
},
{
"add": {
"index": "my_index_v2",
"alias": "my_index"
}
}
]
}
# 聚合多索引别名查询 (只能查询 不能修改)
POST /_aliases
{
"actions": [
{
"add": {
"index": "my_index_1",
"alias": "my_index_alias"
}
},
{
"add": {
"index": "my_index_2",
"alias": "my_index_alias"
}
}
]
}
GET /my_index_alias/_search
{
}
二、在已有的集群上创建索引,要求4个分片+3个副本+绑定别名
1)首先需要集群增加到四个节点,因为分片数不能超过节点数
2)遇到小问题 索引名字不能用大写字母,但是别名可以用大写字母
3) 集群copy问题: 如直接copy原有集群节点 ,需要删除data目录数据,有节点数据影响,以及清除log无用日志 否则会启动失败
PUT /test_static_shardandreplica
{
"settings":{
"number_of_shards":4,
"number_of_replicas":5,
"refresh_interval": "1s"
},
"aliases": {
"test_SAndR": {}
}
}
酒店基础数据
POST /test_hotelinfo/_doc/hotelId200014
{
"hotelName":"上海吴中路酒店",
"code":2,
"type":"hotel",
"locaotin":{
"lat": 121.54545,
"lon": 31.5454
},
"isDelete": 0,
"cityInfo":{
"cityName":"上海",
"cityCode":"310000"
}
}
收起↑