【零】据说ES的分布式功能做的非常强~直接贴官方翻译
Elasticsearch致力于隐藏分布式系统的复杂性。以下这些操作都是在底层自动完成的:
- 将你的文档分区到不同的容器或者分片(shards)中,它们可以存在于一个或多个节点中。
- 将分片均匀的分配到各个节点,对索引和搜索做负载均衡。
- 冗余每一个分片,防止硬件故障造成的数据丢失。
- 将集群中任意一个节点上的请求路由到相应数据所在的节点。
- 无论是增加节点,还是移除节点,分片都可以做到无缝的扩展和迁移。
【一】基本概念
- 集群(cluster)里面有多个节点(node),节点里面有多个分片(Sharding);
- 一个节点是一个ES运行实例,ES节点创建的时候确定本节点中含有的分片个数
-
索引(index) —— 一个用来指向n个分片(shards)的“逻辑命名空间(logical namespace)
- 创建索引的时候会指定需要几个主分片、要几份复制分片,默认是5+1
- 存 储:集 群 => 节点=> 分片
- 数 据:索 引=> 类型=> 文档=> 字段
- 数据库:数据库 => 表=> 行数据=> 列数据
- 分片 = 主分片+复制分片,二者不再同一个节点上
【二】搭建集群环境
查看集群状态
curl -XGET http://ip:9200/_cluster/health?pretty { "cluster_name" : "my-es-cluster", "status" : "green", "timed_out" : false, "number_of_nodes" : 1,#总节点数 "number_of_data_nodes" : 1,#总数据节点数 "active_primary_shards" : 0,#集群内所有索引的主分片总数 "active_shards" : 0,#集群内所有索引的分片总数 "relocating_shards" : 0,#正在迁移中的分片数 "initializing_shards" : 0,#正在初始化的分片数 "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 }
集群状态有三种颜色取值:green(所有主要分片和复制分片都可用)、yellow(所有主要分片可用,但不是所有复制分片都可用)、 red(不是主要的所有分区都能用)
配置一个集群
1、修改elasticsearch配置文件
sudo vim elasticsearch/config/elasticsearch.yml
2、修改指定项
#集群名字一样 cluster.name: my-es-cluster #节点名字不一样 node.name: node-2 #节点ip,根据自己的机器来 network.host: 10.xx.xx.xxx #节点对外端口,不同的节点不一样,注意范围9200~9300 http.port: 9202 #默认寻找集群节点 discovery.zen.ping.unicast.hosts: ["10.xx.xx.xxx:9300"]
3、启动&检查
扫描二维码关注公众号,回复:
481445 查看本文章
./elasticsearch_1/bin/elasticsearch & ./elasticsearch_2/bin/elasticsearch & ./elasticsearch_3/bin/elasticsearch &
PUT /blogs { "settings" : { "number_of_shards" : 3,#本索引需要3个主分片 "number_of_replicas" : 1#每个主分片需要1个复制分片 } }
集群配置文件详解
http://www.cnblogs.com/hdflzh/p/4103226.html
http://www.cnblogs.com/yjf512/p/4865930.html
【三】集群管理
1、集群原始正常状态
2、集群丢失节点
3、集群自我修复
4、集群的增加节点也是同样的道理咯
相关推荐
ElasticSearch安装与基本使用