ElasticSearch2-官方文档翻译(分布式,集群,docker篇)

版权声明:fromZjy QQ1045152332 https://blog.csdn.net/qq_36762677/article/details/88845143

Elasticsearch为分布式而生,而且它的设计隐藏了分布式本身的复杂性。

1. exploring your cluster 分布式

以下这些操作都是在底层自动完成的:
将你的文档分区到不同的容器或者分片(shards)中,它们可以存在于一个或多个节点中。
将分片均匀的分配到各个节点,对索引和搜索做负载均衡。
冗余每一个分片,防止硬件故障造成的数据丢失。
将集群中任意一个节点上的请求路由到相应数据所在的节点。
无论是增加节点,还是移除节点,分片都可以做到无缝的扩展和迁移。

2. exploring your cluster 探索集群

ES集群中的节点有三种不同的类型:

  1. 主节点:负责管理集群范围内的所有变更,例如增加、删除索引,或者增加、删除节点等。 主节点并不需要涉及到文档级别的变更和搜索等操作。可以通过属性node.master进行设置。
  2. 数据节点:存储数据和其对应的倒排索引。默认每一个节点都是数据节点(包括主节点),可以通过node.data属性进行设置。
  3. 协调节点:如果node.master和node.data属性均为false,则此节点称为协调节点,用来响应客户请求,均衡每个节点的负载。

配置文件存放在config/elasticsearch.yml

节点A:
cluster.name:elasticsearch-cluster-203
node.name:es-node-1
bootstrap.mlockall:true
network.host:172.16.203.1
discovery.zen.ping.unicast.hosts:["172.16.203.2"]
节点B:
cluster.name:elasticsearch-cluster-203
node.name:es-node-2
bootstrap.mlockall:true
network.host:172.16.203.2
discovery.zen.ping.unicast.hosts:["172.16.203.1"]

2.1 Cluster Health

2.1.1 To check the cluster health,using the _cat API.

curl -X GET localhost:9200/_cat/health?v

结果 cluster named “elasticsearch”

epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1475247709 17:01:49  elasticsearch green           1         1      0   0    0    0        0             0                  -                100.0%

Green means everything is good (cluster is fully functional)
yellow means all data is available but some replicas副本 are not yet allocated分配 (cluster is fully functional)
red means some data is not available for whatever reason.

2.1.2 get a list of nodes in our cluster as follows(如下所示)

ip           heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.17.42.16           10          97   0    0.00    0.01     0.05 mdi       *      gnFFrIm
Es调优
第一

vim/etc/profile增加环境变量
ES_HEAP_SIZE
jvm堆内存设为当前内存的一半。

ES_HEAP_SIZE=4096m
export ES_HEAP_SIZE
第二

elasticsearch.yml配置文件

bootstrap.mlockall:true

设置为true来锁住内存。因为当jvm开始swapping时es的效率会降低,所以要保证它不swap

使用docker部署es
  1. 远程拉取镜像
docker search elasticsearch
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.6.2
  1. 启动容器
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.6.2
  1. 配置跨域
docker exec -it es /bin/bash

es监控工具

grafana

猜你喜欢

转载自blog.csdn.net/qq_36762677/article/details/88845143