文章标题

来源:互联网 发布:货运物流软件 编辑:程序博客网 时间:2024/06/05 10:41

ElasticSearch常用配置
1.Cluster
cluster.name: elasticsearch
设置ElasticSearch集群的名字,默认的集群名字为elasticsearch,如果想要让某一ElasticSearch节点加入集群只需指定cluster.name
2. Node
node.name: “Franz Kafka“,设置ElasticSearch节点的名字
node.master: true,设置节点是否为主节点
node.data: true,设置节点是否存储索引分片
3. Index
index.number_of_shards: 5,设置索引的分片数,默认为5个分片
index.number_of_replicas: 1,设置索引的副本数,默认为1个副本
4. Paths
path.data: /data/esdata,设置索引数据的存储路径
path.logs: /data/eslogs,设置日志数据的存储路径
集群健康
以基本的健康检查作为开始,可以利用它来查看我们集群的状态。此过程中,我们使用curl,当然,你也可以使用任何可以创建HTTP/REST调用的工具。我们假设我们还在我们启动Elasticsearch的节点上并打开另外一个shell窗口。
要检查集群健康,我们将使用_cat API。需要事先记住的是,我们的节点HTTP的端口是9201:
curl ‘localhost:9201/_cat/health?v’
ElasticSearch常用命令
_cat系列 _cat系列提供了一系列查询elasticsearch集群状态的接口。你可以通过执行 curl -XGET localhost:9201/_cat 获取所有_cat系列的操作 http://47.94.18.202:9201/ /_cat/allocation ?v /_cat/shards ?v /_cat/shards/{index} ?v /_cat/master ?v /_cat/nodes ?v /_cat/indices ?v /_cat/indices/{index} ?v /_cat/segments ?v /_cat/segments/{index} ?v /_cat/count ?v /_cat/count/{index} ?v /_cat/recovery ?v /_cat/recovery/{index} ?v /_cat/health ?v /_cat/pending_tasks ?v /_cat/aliases ?v /_cat/aliases/{alias} ?v /_cat/thread_pool ?v /_cat/plugins ?v /_cat/fielddata ?v /_cat/fielddata/{fields} ?v 你也可以后面加一个v,让输出内容表格显示表头,举例
_cluster系列 1、查询设置集群状态 curl -XGET localhost:9201/_cluster/health?pretty=true pretty=true表示格式化输出 level=indices 表示显示索引状态 level=shards 表示显示分片信息 2、curl -XGET localhost:9201/_cluster/stats?pretty=true 显示集群系统信息,包括CPU JVM等等 3、curl -XGET localhost:9201/_cluster/state?pretty=true 集群的详细信息。包括节点、分片等。 3、curl -XGET localhost:9201/_cluster/pending_tasks?pretty=true

_nodes系列 1、查询节点的状态 curl -XGET ‘http://localhost:9201/_nodes/stats?pretty=true’ curl -XGET ‘http://localhost:9201/_nodes/192.168.1.2/stats?pretty=true’ curl -XGET ‘http://localhost:9201/_nodes/process’ curl -XGET ‘http://localhost:9201/_nodes/_all/process’ curl -XGET ‘http://localhost:9201/_nodes/192.168.1.2,192.168.1.3/jvm,process’ curl -XGET ‘http://localhost:9201/_nodes/192.168.1.2,192.168.1.3/info/jvm,process’ curl -XGET ‘http://localhost:9201/_nodes/192.168.1.2,192.168.1.3/_all curl -XGET ‘http://localhost:9201/_nodes/hot_threads
ES集群脑裂可能导致的原因: 1. 网络: 由于是内网通信, 网络通信问题造成某些节点认为 master 死掉, 而另选 master的可能性较小; 进而检查 Ganglia 集群监控, 也没有发现异常的内网流量, 故此原因可以排除。内网一般不会出现es集群的脑裂问题,可以监控内网流量状态。外网的网络出现问题的可能性大些。

  2. 节点负载: 由于 master 节点与 data 节点都是混合在一起的, 所以当工作节点的负载较大( 确实也较大) 时, 导致对应的 ES 实例停止响应, 而这台服务器如果正充当着 master节点的身份, 那么一部分节点就会认为这个 master 节点失效了, 故重新选举新的节点, 这时就出现了脑裂; 同时由于 data 节点上 ES 进程占用的内存较大, 较大规模的内存回收操作也能造成 ES 进程失去响应。 所以, 这个原因的可能性应该是最大的。   
  3、回收内存
  由于data节点上es进程占用的内存较大,较大规模的内存回收操作也能造成es进程失去响应。
如果发生了脑裂, 如何解决?   当脑裂发生后, 唯一的修复办法是解决这个问题并重启集群。 这儿有点复杂和可怕。 当elasticsearch 集群启动时, 会选出一个主节点( 一般是启动的第一个节点被选为主) 。 由于索引的两份拷贝已经不一样了, elasticsearch 会认为选出来的主保留的分片是“主拷贝”并将这份拷贝推送给集群中的其他节点。 这很严重。 让我们设想下你是用的是 node 客户端并且一个节点保留了索引中的正确数据。 但如果是另外的一个节点先启动并被选为主, 它会将一份过期的索引数据推送给另一个节点, 覆盖它, 导致丢失了有效数据。
Elasticsearch中的所有的查询都会触发相关度得分的计算。对于那些我们不需要相关度得分的场景下,Elasticsearch以过滤器的形式提供了另一种查询功能。过滤器在概念上类似于查询,但是它们有非常快的执行速度,这种快的执行速度主要有以下两个原因:
过滤器不会计算相关度的得分,所以它们在计算上更快一些
过滤器可以被缓存到内存中,这使得在重复的搜索查询上,其要比相应的查询快出许多。
为了理解过滤器,我们先来介绍“被过滤”的查询,这使得你可以将一个查询(像是match_all,match,bool等)和一个过滤器结合起来。作为一个例子,我们介绍一下范围过滤器,它允许我们通过一个区间的值来过滤文档。这通常被用在数字和日期的过滤上。
爬虫程序属该系统中组件基础的一个模块,其中包括了,为了使同学们的重点放在搜索引擎方面,爬虫数据从Mysql中直接接入。

原创粉丝点击