用音响时把耳机win10拔下耳机没声音 用耳机把音响win10拔下耳机没声音 好麻烦 求大神🈶️没有什么

Elasticsearch集群配置和管理教程-服务器安全-操作系统-壹聚教程网Elasticsearch集群配置和管理教程
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。
ElasticSearch集群服务器配置一、安装ElasticSearch是基于Lence的,而Lence是用Java编写的开源库,需要依赖Java的运行环境。现在使用的ELasticSearch版本是1.6,它需要jdk1.7或以上的版本。本文使用的是linux系统,安装配置好Java环境,把download下来,解压后直接执行启动就可以了。1.安装启动elasticsearch:cd到elasticsearch-1.6.0.tar.gz 放置的目录,解压 tar -xvf elasticsearch-1.6.0.tar.gz 启动 ./elasticsearch-1.6.0/bin/elasticsearch,查看启动信息,会提到http的默认端口是9200,transport的默认端口是9300,这个非常重要。接下来可以在Terminal输入一下命令,查看一些基本信息查看集群curl 'localhost:9200/_cat/health?v'查看节点curl 'localhost:9200/_cat/nodes?v'查看索引curl 'localhost:9200/_cat/indices?v'以上这些信息均可在安装head插件后,在http://localhost:9200/_plugin/head/中查看2. 安装head插件cd到elasticsearch-1.6.0/bin目录,运行./plugin -install mobz/elasticsearch-head,安装并启动elasticsearch后,在浏览器打开http://localhost:9200/_plugin/head/,即可看到es的集群、节点、索引、数据等等的信息。二、启动1.自带脚本启动1)bin/elasticsearch,不太任何参数,默认在前端启动2)bin/elasticsearch-d,带参-d,表示在后台作为服务线程启动还可以设置更多的参数:bin/elasticsearch-Xmx2g-Xms2g-Des.index.store.type=memory--node.name=my-node注意:如果是在局域网中运行elasticsearch集群也是很简单的,只要cluster.name设置一致,并且机器在同一网段下,启动的es会自动发现对方,组成集群。2.elasticsearch-servicewrapper1)安装到github,htt:///elastic/elasticsearch-servicewrapper下载,把service拷贝到ES_HOME/bin目录下。2)使用ES_HOME/bin/service/elasticsearch + console/start/stop...ParameterDescriptionconsoleRunthe elasticsearch in the foreground.startRunelasticsearch in the background.stopStopselasticsearch if its running.installInstallelasticsearch to run on system startup (init.d / service).removeRemoveselasticsearch from system startup (init.d / service).在service目录下有个elasticsearch.conf配置文件,主要是设置一些java运行环境参数,其中比较重要的是下面的参数:#es的home路径,不用用默认值就可以set.default.ES_HOME=&Pathto ElasticSearch Home&#分配给es的内存大小set.default.ES_HEAP_SIZE=1024#启动等待超时时间(以秒为单位)wrapper.startup.timeout=300#关闭等待超时时间(以秒为单位)wrapper.shutdown.timeout=300#ping超时时间(以秒为单位)wrapper.ping.timeout=300三、配置浅涉elasticsearch的config文件夹里面有两个配置文件:elasticsearch.yml和logging.yml,第一个是es的基本配置文件,第二个是日志配置文件,es也是使用log4j来记录日志的,所以logging.yml里的设置按普通log4j配置文件来设置就行了。下面主要讲解下elasticsearch.yml这个文件中可配置的东西。cluster.name:elasticsearch配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。node.name:&FranzKafka&节点名,默认随机指定一个name列表中名字,该列表在es的jar包中config文件夹里name.txt文件中,其中有很多作者添加的有趣名字。node.master:true指定该节点是否有资格被选举成为node,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。node.data:true指定该节点是否存储索引数据,默认为true。index.number_of_shards:5设置默认索引分片个数,默认为5片。index.number_of_replicas:1设置默认索引副本个数,默认为1个副本。path.conf:/path/to/conf设置配置文件的存储路径,默认是es根目录下的config文件夹。path.data:/path/to/data设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开,例:path.data:/path/to/data1,/path/to/data2path.work:/path/to/work设置临时文件的存储路径,默认是es根目录下的work文件夹。path.logs:/path/to/logs设置日志文件的存储路径,默认是es根目录下的logs文件夹path.plugins:/path/to/plugins设置插件的存放路径,默认是es根目录下的plugins文件夹bootstrap.mlockall:true设置为true来锁住内存。因为当jvm开始swapping时es的效率会降低,所以要保证它不swap,可以把ES_MIN_MEM和ES_MAX_MEM两个环境变量设置成同一个值,并且保证机器有足够的内存分配给es。同时也要允许elasticsearch的进程可以锁住内存,linux下可以通过`ulimit-l unlimited`命令。network.bind_host:192.168.0.1设置绑定的ip地址,可以是ipv4或ipv6的,默认为0.0.0.0。network.publish_host:192.168.0.1设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址。network.host:192.168.0.1这个参数是用来同时设置bind_host和publish_host上面两个参数。transport.tcp.port:9300设置节点间交互的tcp端口,默认是9300。press:true设置是否压缩tcp传输时的数据,默认为false,不压缩。http.port:9200设置对外服务的http端口,默认为9200。http.max_content_length:100mb设置内容的最大容量,默认100mbhttp.enabled:false是否使用http协议对外提供服务,默认为true,开启。gateway.type:localgateway的类型,默认为local即为本地文件系统,可以设置为本地文件系统,分布式文件系统,hadoop的HDFS,和amazon的s3服务器,其它文件系统的设置方法下次再详细说。gateway.recover_after_nodes:1设置集群中N个节点启动时进行数据恢复,默认为1。gateway.recover_after_time:5m设置初始化数据恢复进程的超时时间,默认是5分钟。gateway.expected_nodes:2设置这个集群中节点的数量,默认为2,一旦这N个节点启动,就会立即进行数据恢复。cluster.routing.allocation.node_initial_primaries_recoveries:4初始化数据恢复时,并发恢复线程的个数,默认为4。cluster.routing.allocation.node_concurrent_recoveries:2添加删除节点或负载均衡时并发恢复线程的个数,默认为4。indices.recovery.max_size_per_sec:0设置数据恢复时限制的带宽,如入100mb,默认为0,即无限制。indices.recovery.concurrent_streams:5设置这个参数来限制从其它分片恢复数据时最大同时打开并发流的个数,默认为5。discovery.zen.minimum_master_nodes:1设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)discovery.zen.ping.timeout:3s设置集群中自动发现其它节点时ping连接超时时间,默认为3秒,对于比较差的网络环境可以高点的值来防止自动发现时出错。discovery.zen.ping.multicast.enabled:false设置是否打开多播发现节点,默认是true。discovery.zen.ping.unicast.hosts:[&host1&, &host2:port&,&host3[portX-portY]&]设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点四、集群配置多个节点1.概述本例子的集群将部署4个节点:10.0.0.11 es110.0.0.209 es210.0.0.206 es310.0.0.208 es42.集群配置上文提到过,只要集群名相同,且机器处于同一局域网同一网段,es会自动去发现其他的节点。2.1es2的配置vimES_HOME/config/elasticsearch.yml在文件尾部添加一下内容:cluster.name:elasticsearch #集群的名称,同一个集群该值必须设置成相同的node.name:&es2& #该节点的名字node.master:true #该节点有机会成为master节点node.data:true #该节点可以存储数据node.rack:rack2 #该节点所属的机架index.number_of_shards:5 #shard的数目index.number_of_replicas:3 #数据副本的数目network.bind_host:0.0.0.0 #设置绑定的IP地址,可以是IPV4或者IPV6network.publish_host:10.0.0.209 #设置其他节点与该节点交互的IP地址network.host:10.0.0.209 #该参数用于同时设置bind_host和publish_hosttransport.tcp.port:9300 #设置节点之间交互的端口号press:true #设置是否压缩tcp上交互传输的数据http.port:9200 #设置对外服务的http端口号http.max_content_length:100mb #设置http内容的最大大小http.enabled:true #是否开启http服务对外提供服务discovery.zen.minimum_master_nodes:2 #设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)discovery.zen.ping.timeout:120s #设置集群中自动发现其他节点时ping连接的超时时间discovery.zen.ping.multicast.enabled:true #设置是否打开多播发现节点discovery.zen.ping.unicast.hosts:[&10.0.0.209:9300&,&10.0.0.206:9300&,&10.0.0.208:9300&] #设置集群中的Master节点的初始列表,可以通过这些节点来自动发现其他新加入集群的节点2.2es3的配置相似地,在206的机子上vimES_HOME/config/elasticsearch.yml在文件尾部添加一下内容:cluster.name:elasticsearch #集群的名称,同一个集群该值必须设置成相同的node.name:&es3& #该节点的名字node.master:true #该节点有机会成为master节点node.data:true #该节点可以存储数据node.rack:rack3 #该节点所属的机架index.number_of_shards:5 #shard的数目index.number_of_replicas:3 #数据副本的数目network.bind_host:0.0.0.0 #设置绑定的IP地址,可以是IPV4或者IPV6network.publish_host:10.0.0.206 #设置其他节点与该节点交互的IP地址network.host:10.0.0.206 #该参数用于同时设置bind_host和publish_hosttransport.tcp.port:9300 #设置节点之间交互的端口号press:true #设置是否压缩tcp上交互传输的数据http.port:9200 #设置对外服务的http端口号http.max_content_length:100mb #设置http内容的最大大小http.enabled:true #是否开启http服务对外提供服务discovery.zen.minimum_master_nodes:2 #设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)discovery.zen.ping.timeout:120s #设置集群中自动发现其他节点时ping连接的超时时间discovery.zen.ping.multicast.enabled:true #设置是否打开多播发现节点discovery.zen.ping.unicast.hosts:[&10.0.0.209:9300&,&10.0.0.206:9300&,&10.0.0.208:9300&] #设置集群中的Master节点的初始列表,可以通过这些节点来自动发现其他新加入集群的节点2.3 208的机子上的es配置就参考上面两个节点的2.4验证结果启动节点:ES_HOME/bin/service/elasticsearchstart成功启动各个节点后,浏览器打开http://10.0.0.209:9200/_plugin/head/,界面会列出各个节点的信息。3.节点添加和删除3.1添加节点非常简单,几乎与上面设置节点的步骤一致。在10.0.0.11机子上,vimES_HOME/config/elasticsearch.ymlcluster.name:elasticsearch #集群的名称,同一个集群该值必须设置成相同的node.name:&es5& #该节点的名字node.master:false #该节点有机会成为master节点node.data:true #该节点可以存储数据node.rack:rack5 #该节点所属的机架index.number_of_shards:5 #shard的数目index.number_of_replicas:3 #数据副本的数目network.bind_host:0.0.0.0 #设置绑定的IP地址,可以是IPV4或者IPV6network.publish_host:10.0.0.11 #设置其他节点与该节点交互的IP地址network.host:10.0.0.11 #该参数用于同时设置bind_host和publish_hosttransport.tcp.port:9300 #设置节点之间交互的端口号press:true #设置是否压缩tcp上交互传输的数据http.port:9200 #设置对外服务的http端口号http.max_content_length:100mb #设置http内容的最大大小http.enabled:true #是否开启http服务对外提供服务discovery.zen.minimum_master_nodes:2 #设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)discovery.zen.ping.timeout:120s #设置集群中自动发现其他节点时ping连接的超时时间discovery.zen.ping.multicast.enabled:true #设置是否打开多播发现节点discovery.zen.ping.unicast.hosts:[&10.0.0.209:9300&,&10.0.0.206:9300&,&10.0.0.208:9300&] #设置集群中的Master节点的初始列表,可以通过这些节点来自动发现其他新加入集群的节点写好配置,启动此es节点。查看集群的状态:&&& http://10.0.0.11:9200/_nodeselasticsearch采用广播的方式自动发现节点,需要等待一段时间才能发现新的节点:耐心等待...最后可以在此界面看到各个节点的信息。3.2节点删除在想要删除节点的机子上,运行ES_HOME/bin/service/elasticsearchstop,等待一会后,查看集群状态,会发现该节点没有了。Elasticsearch集群管理ES通过设置【节点的名字】和【集群的名字】,就能自动的组织相同集群名字的节点加入到集群中,并使很多的技术对用户透明化。如果用户想要管理查看集群的状态,可以通过一些REST API来实现。其他的ES文档翻译参考:Elasticsearch文档总结REST API用途ES提供了很多全面的API,大致可以分成如下几种:1 检查集群、节点、索引的健康情况2 管理集群、节点,索引数据、元数据3 执行CRUD,创建、读取、更新、删除 以及 查询4 执行高级的查询操作,比如排序、脚本、聚合等查看集群状态可以通过CURL命令发送REST命令,查询集群的健康状态:curl 'localhost:9200/_cat/health?v'Localhost是主机的地址,9200是监听的端口号,ES默认监听的端口号就是9200.这里需要注意的是,windows下安装的CURL有可能不支持单引号,如果有报错,还请改成双引号,内部使用转义字符转义。得到的相应结果:epoch&&&&& timestamp cluster&&&&&& status node.total node.data shards pri relo init unassign 14:28:09& elasticsearch green&&&&&&&&&& 1&&&&&&&& 1&&&&& 0&& 0&&& 0&&& 0&&&&&&& 0可以看到集群的名字是默认的&elasticsearch&,集群的状态时&green&。这个颜色之前也有说过:1 绿色,最健康的状态,代表所有的分片包括备份都可用2 黄色,基本的分片可用,但是备份不可用(也可能是没有备份)3 红色,部分的分片可用,表明分片有一部分损坏。此时执行查询部分数据仍然可以查到,遇到这种情况,还是赶快解决比较好。上面的结果还可以看到,目前有一个节点,但是没有分片,这是因为我们的ES中还没有数据,一次也就没有分片。&当使用elasticsearch作为集群名字时,会使用单播,查询本机上是否还运行着其他的节点。如果有,则组成一个集群。(如果使用其他的名字作为集群名字,那么就可能采用多播了!这个在工作中,经常会遇到,大家使用的是一个集群名字,分片总是被搞在一起,导致有人的机器下线后,自己的也无法使用)&通过下面的命令,可以查询节点的列表:curl 'localhost:9200/_cat/nodes?v'得到的结果如下:curl 'localhost:9200/_cat/nodes?v'host&&&&&&&& ip&&&&&&& heap.percent ram.percent load node.role master namemwubuntu1&&& 127.0.1.1&&&&&&&&&&& 8&&&&&&&&&& 4 0.00 d&&&&&&&& *&&&&& New Goblin查看所有的索引在ES中索引有两个意思:1 动词的索引,表示把数据存储到ES中,提供搜索的过程;这期间可能正在执行一个创建搜索的过程。2 名字的索引,它是ES中的一个存储类型,与类似,内部包含type字段,type中包含各种文档。通过下面的命令可以查看所有的索引:curl 'localhost:9200/_cat/indices?v'得到的结果如下:curl 'localhost:9200/_cat/indices?v'health index pri rep docs.count docs.deleted store.size pri.store.size由于集群中没有任何的数据,上面的结果中也就只包含列的信息了。创建索引下面是创建索引,以及查询索引的例子:curl -XPUT 'localhost:9200/customer?pretty'{& &acknowledged& : true}curl 'localhost:9200/_cat/indices?v'health index&&& pri rep docs.count docs.deleted store.size pri.store.sizeyellow customer&& 5&& 1&&&&&&&&& 0&&&&&&&&&&& 0&&&&&& 495b&&&&&&&&&& 495b上面的结果中,customer索引的状态是yellow,这是因为此时虽然有5个主分片和一个备份。但是由于只是单个节点,我们的分片还在运行中,无法动态的修改。因此当有其他的节点加入到集群中,备份的节点会被拷贝到另一个节点中,状态就会变成green。索引和搜索文档之前说过,索引里面还有类型的概念,在索引文档之前要先设置类型type。执行的命令如下:curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '{& &name&: &John Doe&}'执行成功后会得到如下的信息:{& &_index& : &customer&,& &_type& : &external&,& &_id& : &1&,& &_version& : 1,& &created& : true}注意2.0版本的ES在同一索引下,不同的类型,相同的字段名字,是不允许字段类型不一致的。上面的例子中,为我们创建了一个文档,并且id自动设置为1.ES不需要再索引文档前,不需要明确的创建索引,如果执行上面的命令,索引不存在,也会自动的创建索引。执行下面的命令查询,返回信息也如下:curl -XGET 'localhost:9200/customer/external/1?pretty'{& &_index& : &customer&,& &_type& : &external&,& &_id& : &1&,& &_version& : 1,& &found& : true, &_source& : { &name&: &John Doe& }}这里会新增两个字段:1 found 描述了请求信息2 _source 为之前索引时的数据删除索引执行下面的命令就可以删除索引:curl -XDELETE 'localhost:9200/customer?pretty'返回结果:{&&& &acknowledged&: true}总结总结上面涉及到的命令大致如下:curl -XPUT 'localhost:9200/customer'//创建索引//插入数据curl -XPUT 'localhost:9200/customer/external/1'-d '{& &name&: &John Doe&}'curl 'localhost:9200/customer/external/1'//查询数据curl -XDELETE 'localhost:9200/customer'//删除索引
上一页: &&&&&下一页:相关内容摘要: 在Elasticsearch中的可以创建快照,它创建单个索引或整个群集到一个远程的存储库中。在以前的版本中,系统只支持共享存储的快照创建,最新的版本可以通过插件支持更多的方式。在执行快照操作前,需要在Elasticsearch中进行注册快照仓库。
&&&&在Elasticsearch中的可以创建快照,它创建单个索引或整个群集到一个远程的存储库中。在以前的版本中,系统只支持共享存储的快照创建,最新的版本可以通过插件支持更多的方式。在执行快照操作前,需要在Elasticsearch中进行注册快照仓库。注册仓库的设置需要执行仓库类型,例如:
请求:PUT /_snapshot/my_backup
&&"type":&"fs",
&&"settings":&{
&&&&&&&&...&repository&specific&settings&...
&&&&当注册后,可以通过查询来得到之前注册的信息。当然系统也支持用逗号分开来查询多个注册,支持通配符查询多个注册,甚至可以使用_all查询所有注册。
请求:GET /_snapshot/my_backup
&&"my_backup":&{
&&&&"type":&"fs",
&&&&"settings":&{
&&&&&&"compress":&"true",
&&&&&&"location":&"/mount/backups/my_backup"
&&&&共享文件系统存储("type": "fs")使用共享文件系统来存储快照。为了注册共享的文件系统存储库,必须将同一个共享文件系统安装到所有主节点和数据节点上相同的位置上。这个位置(或它的父目录)必须在所有主节点数据节点上设置path.repo参数。假设共享文件系统安装在/mount/backups/my_backup目录下,在elasticsearch.yml文件中的设置应增加:
path.repo: ["/mount/backups", "/mount/longterm_backups"]
备注:path.repo设置支持微软Windows UNC路径,只要服务器名和共享名称进行正确的设置,例如:
path.repo: ["\\\\MY_SERVER\\Snapshots"]
&&&&只有当所有的节点都重新启动后,使用以下面的命令可以为名称为my_backup的共享文件系统库进行快照和恢复,例如:
请求:PUT http://localhost:9200/_snapshot/my_backup
&&&&"type":&"fs",
&&&&"settings":&{
&&&&&&&&"location":&"/mount/backups/my_backup",
&&&&&&&&"compress":&true
&&&&系统支持相对路径的,如果存储位置指定为相对路径,则不需要写具体的全路径,例如:
请求:PUT http://localhost:9200/_snapshot/my_backup
&&&&"type":&"fs",
&&&&"settings":&{
&&&&&&&&"location":&"my_backup",
&&&&&&&&"compress":&true
系统支持一下参数:
location:快照位置,必须要有。
compress:打开快照文件的压缩。压缩仅适用于元数据文件,数据文件不进行压缩。默认为true。
chunk_size:如果需要可以把大的文件分解成不同的快照。块的大小可以指定字节例如1G,10m,5K。默认值为null表示无限的块大小。
max_restore_bytes_per_sec:使每个节点的恢复的速度。默认为40MB每秒。
max_snapshot_bytes_per_sec:每个节点生成的快照的速度。默认为40MB每秒。
readonly:使存储库只读。默认为false。
&&&&URL仓库("type": "url")被用在共享文件系统库中创建只读方式数据仓库。在url参数中指定指向共享的文件系统存储库的根节点,支持以下设置:
url:强制性的快照位置。
&&&&&url参数支持以下协议:"http", "https", "ftp", "file" , "jar",在http:, https:, and ftp: 这些协议中,可以支持白名单,白名单的设置在&repositories.url.allowed_urls 参数中,例如:
repositories.url.allowed_urls: ["http://www.example.org/root/*", "https://*./*?*#*"]
存储库可以通过插件支持更多的方式,比如:
AWS云插件的S3存储库,Hadoop的HDFS插件环境,Azure云存储库插件。
&&&&当一个存储库被注册时,它立即被验证在所有主节点和数据节点上,以确保它在群集中的所有节点上都可以使用。验证参数可用于在注册或更新存储库时显式禁用,例如:
请求:PUT /_snapshot/s3_repository?verify=false
&&"type":&"s3",
&&"settings":&{
&&&&"bucket":&"my_s3_bucket",
&&&&"region":&"eu-west-1"
验证过程也可以通过运行以下命令来手动执行:
POST /_snapshot/s3_repository/_verify
它返回一个节点列表,如果验证过程失败,则会成功验证或错误消息。
本文由赛克 蓝德(secisland)原创,转载请标明作者和出处。
&&&&一个存储库可以包含同一个群集的多个快照。快照在集群内的名称是唯一的。在一个库中创建名称为snapshot_1快照可以执行下面的命令:
PUT /_snapshot/my_backup/snapshot_1?wait_for_completion=true
&&&&wait_for_completion参数指定快照初始化后立即返回(默认)还是等待快照完成后返回。在快照初始化时,所有以前的快照信息加载到内存,这意味着创建一个大的库快照可能需要几秒钟(甚至几分钟)。所以有时候wait_for_completion参数设置为false也是需要等待一会的。
&&&&默认情况下所有打开的快照和在集群中开始索引时创建,此行为可以通过指定快照请求中的索引列表来改变,例如:
请求:PUT /_snapshot/my_backup/snapshot_1
&&"indices":&"index_1,index_2",
&&"ignore_unavailable":&"true",
&&"include_global_state":&false
&&&&可以使用支持多索引语法的索引参数来指定快照的索引列表。快照请求也支持ignore_unavailable选项,将它设置为true时可以在快照创建过程中把不存在的索引忽略掉。默认情况下,当ignore_unavailable选项不设置或者设置为false的时候,如果不存在索引,索引的快照请求将失败。通过设置include_global_state为false可以防止集群全局状态被被存储为快照的一部分。默认情况下,如果有一个或多个索引没有可用的主分片整个快照会失败,这种行为可以通过设置部分来改变。
&&&&索引快照处理是渐进的。在索引快照的过程中Elasticsearch会分析索引文件的列表是否已存储在存储库中,同时复制上次创建的快照或更改的文件。这允许在一个紧凑形式的存储库中保存多个快照,快照的过程是非阻塞的方式执行。当对索引正在执行快照时所有的索引和搜索操作可以继续执行。然而,快照执行的数据是在快照创建时的时间点确定的,所以在快照过程开始后添加到索引中的记录将不会再快照中出现。在1.2.0之前版本之前,如果群集有迁移或者在索引中初始化分片时会失败,在1.2.0之后,快照的操作会等待这些完成后再操作。一个快照除了创建集群的副本外,还可以存储全局群集元数据,其中包括持久性群集设置和模板。临时设置和注册的快照库不会存储为快照的一部分。
&&&&在任何时间只有一个快照过程在集群中被执行。而一个特定的快照被创建分片时,这分片不能移动到另一个节点,它可能干扰再平衡过程和过滤操作。一次快照完成Elasticsearch只能移动一块到另一个节点(根据当前配置过滤设置和调整算法)。一旦一个快照完成,关于这个快照的信息,可以使用以下命令来获得:
GET /_snapshot/my_backup/snapshot_1
类似的仓库,对多个快照信息可以通过一次进行查询,以及支持通配符,或者用_all查询所有:
GET /_snapshot/my_backup/snapshot_*,some_other_snapshot
&&&&如果一些快照不可用,该命令将失败。布尔参数ignore_unvailable可用于返回所有目前可用的快照。可以使用以下命令查询当前正在运行的快照:
GET localhost:9200/_snapshot/my_backup/_current
快照可以从使用下列命令的存储库中删除:
DELETE /_snapshot/my_backup/snapshot_1
&&&&当快照是从库中删除时,Elasticsearch将删除与快照关联的和其他快照也不使用的所有文件,如果执行快照创建的过程中同时删除快照,则快照创建的过程会停止,同时删除相关的文件。因此,删除快照操作可以用来取消被错误启动的长时间运行快照操作。使用下面的命令可以删除存储库:
DELETE /_snapshot/my_backup
&&&&当一个库被删除,Elasticsearch仅删除存储库的位置的引用,快照本身并没有被删除。
使用以下命令可恢复快照:
POST /_snapshot/my_backup/snapshot_1/_restore
&&&&默认情况下,快照中的所有索引以及群集状态将被恢复,在恢复include_global_state选项时,可以指定具体的索引和集群状态被恢复。索引的列表支持多索引语法。rename_pattern和rename_replacement选项也可用于重命名索引,可以使用正则表达式,该表达式支持引用原始文本。设置include_aliases为假可以防止相关索引的别名被一起恢复,例如:
请求:POST /_snapshot/my_backup/snapshot_1/_restore
&&"indices":&"index_1,index_2",
&&"ignore_unavailable":&"true",
&&"include_global_state":&false,
&&"rename_pattern":&"index_(.+)",
&&"rename_replacement":&"restored_index_$1"
&&&&恢复操作可以在一个功能集群上执行。在快照索中有相同数量分片的索引如果是关闭的,则只能恢复。如果索引是关闭的则恢复操作会自动打开索引,如果索引在集群中不存在,恢复操作将会创建新的索引,如果恢复群集状态,则在该群集中不存在的模板将被添加,已恢复的模板会替换为具有相同名称的现有模板。恢复中的设置被添加到现有的设置中。
&&&&部分恢复,默认情况下,如果一个或更多的索引如果没有可用的快照碎片,整个恢复操作将失败。如果一些碎片没有快照,通过设置partial为true,仍可以恢复部分索引。请注意,在这种情况下只有有分片的索引会被正确恢复,没有的索引会建立空的索引。
&&&&在恢复过程中改变索引设置,在恢复过程中大多数索引的设置可以被覆盖。例如,下面的命令将不创建任何副本而切换回默认刷新间隔的恢复索引index_1:
请求:POST /_snapshot/my_backup/snapshot_1/_restore
&&"indices":&"index_1",
&&"index_settings":&{
&&&&"index.number_of_replicas":&0
&&"ignore_index_settings":&[
&&&&"index.refresh_interval"
请注意,一些设置,如index.number_of_shards在恢复操作期间是无法更改的。
&&&&恢复到不同的集群,快照中存储的信息不依赖于特定的群集或群集名称。因此,它有可能恢复从一个群集到另一个群集的快照。仅要求注册存储库中包含快照,并启动恢复过程,新的群集不具有相同的大小或拓扑结构。如果一个集群有的空间比较小,需要考虑的事情有:首先,要确保新的集群有足够的容量来存储快照中的所有索引。在还原的过程中,可以改变索引设置,以减少复制的次数,这可以帮助将快照恢复到较小的群集,也可以选择使用索引参数。在版本1.5.0之前,Elasticsearch没有检查恢复持续的设置使得有可能恢复出错,参数discovery.zen.minimum_master_nodes 禁用一个小集群直到添加所需的主节点数。从版本1.5.0此的设置将被忽略。如果在原始集群的索引被分配到特定的节点,使用过滤分片配置,同样的规则将在新的集群执行。因此,如果新的群集不包含具有已有属性的节点,则该恢复的索引可以被分配,除非这些索引分配设置在恢复操作期间改变,否则不会恢复成功。
快照statusedit
使用以下命令可获得当前运行快照的详细状态信息列表:
GET /_snapshot/_status
下面的命令将返回有关当前正在运行的快照的信息。通过指定一个存储库的名称,可以将结果限制为特定的存储库:
GET /_snapshot/my_backup/_status
如果指定了存储库名称和快照标识,该命令将返回给定快照的详细状态信息:
GET /_snapshot/my_backup/snapshot_1/_status
同样支持多个id的查询,例如:
GET /_snapshot/my_backup/snapshot_1,snapshot_2/_status
监控快照恢复过程
&&&&当快照的进度和恢复正在运行有几种方法来监视它们过程。wait_for_completion参数会阻止客户端直到操作完成。这是最简单的方法,可以用来获得有关操作完成的通知。
快照操作还可以定期对快照信息进行监视,例如:
GET /_snapshot/my_backup/snapshot_1
&&&&请注意,快照信息的操作使用相同的资源和线程池作为快照操作。所以,当大的分片被快照会导致快照操作,在返回结果之前在等待可用资源,所以这种会占用很多的时间。为了获得更直接的快照状态的完整信息,可以使用快照状态命令来查询,例如:
GET /_snapshot/my_backup/snapshot_1/_status
&&&&快照信息方法在处理过程中返回快照的基本信息,快照状态返回在快照中每个分片的当前状态。
&&&&在恢复操作时,Elasticsearch的集群通常会进入红色状态。这是因为还原操作开始恢复的索引主要碎片。在这个操作时,主分片变得不可用,这体现在红色状态。一旦碎片恢复完成Elasticsearch是转换为标准的复制过程,创建所需数量的副本这时集群切换到黄色状态。一旦所有所需的复制品被创建,群集切换到绿色状态。群集健康操作仅为恢复过程的高层次状态。通过使用索引恢复和精简api可以获得更详细的恢复过程中的状态。
停止当前正在运行的快照和恢复操作
&&&&快照和恢复操作允许一次只运行一个快照或一次恢复。如果一个当前运行的快照被错误地执行,或者需要很长的时间,可以使用快照删除操作来终止它。快照删除时是会进行检查,如果删除快照正在运行,则停止此次删除。
&&&&还原操作使用标准的分片恢复机制。因此,可以通过删除索引来取消恢复的操作。请注意,在这种情况下所有已删除索引的数据将被从集群中移除。
&&&&快照和恢复操作对集群块的影响,快照和恢复操作都受集群和索引块的影响。例如,注册和注销库需要通过编写全局元数据来进行访问。快照操作需要所有的索引和元数据以及全局元数据都是可读的。恢复操作需要全局元数据是可写的,但是索引水平块将被忽略,因为在恢复的过程中索引是重建的。请注意,存储库内容不是群集的一部分,因此群集块不影响内部存储库操作,例如已注册的存储库中的列表或删除快照。
& &&赛克蓝德(secisland)后续会逐步对Elasticsearch的最新版本的各项功能进行分析,近请期待。也欢迎加入secisland公众号进行关注。
阅读(...) 评论()}

我要回帖

更多关于 win10拔下耳机没声音 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信