elasticsearch-1.7.1 (es Windows 64)
https://blog.csdn.net/qq_27093465/article/details/53544541
elastic adj.有弹力的;可伸缩的;灵活的
restful adj.平静的,悠闲的,让人得到休息的;安生
RESTful API
为了建立 Elasticsearch ,第一步是确保正确安装Java 环境。我就默认安装了,因为我确实安装了,jdk 1.8版本的。
这个安装完全不需要配置,只需要把下载的东西解压,直接可以用。
我提供某度云盘,具体如下。
链接:http://pan.baidu.com/s/1c1JfIjY 密码:zcpm
包括 elasticsearch-1.7.1 和 elasticsearch-2.3.4 两个版本的压缩包。其中1.7版本的里面有2个插件。head和bigdesk。下面介绍2个插件:
head
用于在浏览器中管理索引,查询数据等
地址:http://192.168.1.233:9200/_plugin/head
Bigdesk
用于实时监控索引的性能状态
地址:http://192.168.1.233:9200/_plugin/bigdesk
安装,启动ES。
运行完之后,就安装好了。不需要安装,不需要配置,就可以用了。
打开这个网址,http://localhost:9200/?pretty,看到如下概览信息。
看到上面的信息,说明就启动OK了,简单,只要你的Java环境是OK的。
这个图,是因为,我的plugins文件夹下面已经有2个插件了,head和bigdesk。看到这个是head。可以提供方便的搜索方式吧。
目录概览:
bin :运行Elasticsearch实例和插件管理所需的脚本
confg: 配置文件所在的目录
lib : Elasticsearch使用的库
data : Elasticsearch使用的所有数据的存储位置
logs : 关于事件和错误记录的文件
plugins: 存储所安装插件的地方
work : Elasticsearch使用的临时文件,这个文件我这暂时好像没有,可以根据配置文件来 配置这些个文件的目录位置,比如上面的data,logs,
data文件夹里面具体,如下,有2个文件夹,第一个是刚刚默认配置启动时,生成的集群和节点,第二个是我修改了集群和节点的默认值又启动后生成的。
config配置文件夹修改配置文件
可以看到两个文件:elasticsearch.yml(或elasticsearch.json,如果有的话会被使用)和logging.yml。第一个文件负责设置服务器的默认配置值。重要的是,因为一些配置值可以在运行时更改,也可作为集群状态的一部分被保留,所以这个文件中的值可能不准确。有两个值不能在运行时更改,分别是cluster.name和node.name。日志的配置文件一般不需要修改。暂不作了解。
bin文件夹下的文件,我做了个简单的测试,可能有点蠢啊。就看看吧。
上面配置完之后,就可以直接在浏览器里面打开
localhost:9200/_plugin/head/index.html
这个地址,看到如下图的信息。
先了解2个概念。
集群和节点
节点(node)是一个运行着的Elasticsearch实例。
集群(cluster)是一组具有相同cluster.name的节点集合,他们协同工作,共享数据并提供故障转移和扩展功能,当然一个节点也可以组成一个集群。
关于 cluster.name 的解释:
这个在config配置文件 elasticsearch.yml 里面可以自己修改,我的集群就叫lixuekai,具体看上面的图。配置完,然后重启ELasticsearch 就OK了。
停止就是Ctrl + C,然后yes就停止了。
解释URL里面的 ?pretty 。
http://localhost:9200/_cluster/health?pretty,这个url可以查看集群的健康状况。cluster 这个单词就是集群的意思,注意识得这个单词,也就明白这个URL的意思了。在head插件里面,集群名字后面的绿色部分,可以直接看到,要是没这个插件,也可这么看。API返回的JSON对象信息里,换行符是被省略的,在请求中加上pretty参数是强制Elasticsearch在响应中加上换行符,使之更可读。下面给不带参数的测试图。
一个节点也是可以叫集群的,现在弄2个节点的集群。
现在看到的是一个节点,现在把 elasticsearch-1.7.1 这个目录整个复制到其他任意个地方,然后,先修改下 配置文件里面的节点配置,我修改为 lxk_test2 ,然后再次启动。启动完之后,就有如下图:贴出关键部分文字。看到。检测到了之前运行的实例 lxk_test1 的节点,这2个节点就共同组成一个集群。
[html] view plain copy
[2016-12-07 18:03:08,867][INFO ][discovery ] [lxk_test2] lixuekai
/89cMZWiCQ32UrETZ33pflQ
[2016-12-07 18:03:11,968][INFO ][cluster.service ] [lxk_test2] detected
_master [lxk_test1][GMizXVJ9QKiYDXsdRg-_UQ][King-PC][inet[/192.168.1.134:9300]],
added {[lxk_test1][GMizXVJ9QKiYDXsdRg-_UQ][King-PC][inet[/192.168.1.134:9300]],
}, reason: zen-disco-receive(from master [[lxk_test1][GMizXVJ9QKiYDXsdRg-_UQ][Ki
ng-PC][inet[/192.168.1.134:9300]]])
[2016-12-07 18:03:12,159][INFO ][http ] [lxk_test2] bound_ad
dress {inet[/0:0:0:0:0:0:0:0:9201]}, publish_address {inet[/192.168.1.134:9201]}
[2016-12-07 18:03:12,160][INFO ][node ] [lxk_test2] started
然后,再看 http://localhost:9200/_plugin/head/index.html 这个head的插件的显示如下,可以看到确实节点就变成2个了,还是在同一个集群里面。
关闭ES
1。上面介绍的ctrl+c是简单的关闭单个节点的方法。
2。杀掉服务器进程也是可以的,(参考Linux上的kill命令和Windows上的任务管理器)
3。下面看如何关闭整个集群。
可以执行以下命令来关掉整个集群:
curl -XPOST http://localhost:9200/_cluster/nodes/_shutdown
上面这个命令,我看到别人在mac上测试,可以关闭集群。
以下命令来关掉单个节点:假设:节点标识符是BlrmMvBdSKiCeYGsiHijdg,说的不是节点的name
curl –XPOST http://localhost:9200/_cluster/nodes/BlrmMvBdSKiCeYGsiHijdg/_shutdown
上面的这个是在mac的命令行操作的吧。但是我测试的时候,一直是失败。
获得nodes的信息的get请求如下:
http://localhost:9200/_cluster/state/nodes?pretty
head插件上,可以在页面直接操作,关闭节点。但是集群的关闭是没有直接提供快捷操作按钮的。
Elasticsearch 作为系统服务运行
在Windows上运行系统服务
转到Elasticsearch的安装目录,到bin子目录下,执行:
service.bat install
如果你想看看所有被service.bat脚本文件暴露出来的命令,在相同目录下执行:
service.bat
例如,为了启动Elasticsearch,可执行如下命令:
service.bat start
然后启动任务管理器,看到出现了elasticsearch的服务已经出现了。因为刚刚已经启动了。所以,在head插件的页面看到这个节点变成了2个。
注意,因为我上面演示建多个节点的集群,把原来的安装的,又复制到其他地方了,这个操作,在哪个bin目录下都是可以的。没有试过,能不能把2个都给整成系统服务。目测也是可以的。