1 ES安装
1.1 安装Java
ES需要Java 6或更高版本,但建议安装Java 7及以上版本。
1.2 安装ES
1.2.1 Window
在Window系统中安装ES特别方便,下载ES安装包后,直接解压即可。这里下载的是截止目前的最新版本elasticsearch-5.1.1.zip,直接解压到D盘根目录,如下图:
1.2.2 Linux
2 ES目录结构
3 ES配置与运行
打开ES配置文件目录config,可以看到有个名称为elasticsearch.yml的配置文件,打开该文件并修改如下如下:
其中,集群名称用来区分不同的集群,配置相同集群名字的节点则属于同一个集群,节点名称用来标识集群中的一个节点。
进入ES脚本目录bin,根据操作系统来运行不同的脚本命令,Window下为双击elasticsearch.bat,Linux下为./elasticsearch。
这里在Window下运行,如果双击后没有任何反应,查看服务也没有启动,则说明有错误,但好像这个版本没有log文件生成,目前不知道为何。所以可以通过命令行去执行elasticsearch.bat,如图:
可以看到没有足够空间的错误导致没法启动Java虚拟机,故而导致ES无法启动,所以这里需要设定一下关联到单个ES实例的JVM的堆内存限制,对于小型部署来说默认内存限制1024M足够,但如果是大型应用则需要设置的更大一些,但通常不应该分配超过系统总内存的50%。
可是查完配置文件后,配置文件中配置的是2G,配置为4G同样报这个错误,是不是因为太大的缘故,所以修改为1G,该错误消失。配置如图:
再次运行命令,报错如下:
这是因为较高版本的JDK编译的Java class文件试图在较低版本的JVM上运行产生的错误,我电脑默认配置的java版本为JDK7,所以我尝试了一下用JDK8的版本jdk1.8.0_66来运行,结果却是启动正常,配置elasticsearch-5.1.1\bin\elasticsearch.bat如下:
看来随着ES版本的升级,编译时所需要的JDK版本也在一直上升,为了证实这一点,可以去官网说明文档中查看,果真如此,文档提示如下:
Elasticsearch requires at least Java 8. Specifically as of this writing, it is recommended that you use the Oracle JDK version 1.8.0_73.(ES至少需要Java 8,特别是在编写该文档时,建议使用Oracle JDK version 1.8.0_73版本。)
再次运行启动脚本,结果ES成功启动,如下图:
为了进一步尝试启动是否成功,可以打开浏览器,输入http://localhost:9200/,如果出现下面的结果,则说明启动成功。
- {
- "name" : "FC01",
- "cluster_name" : "FirstCluster",
- "cluster_uuid" : "jMJhGirhSRa9Iw2fQtjJ5A",
- "version" : {
- "number" : "5.1.1",
- "build_hash" : "5395e21",
- "build_date" : "2016-12-06T12:36:15.409Z",
- "build_snapshot" : false,
- "lucene_version" : "6.3.0"
- },
- "tagline" : "You Know, for Search"
- }
至此,ES服务器搭建成功,你搭建好了么^_^。
但是有没有注意到,这是在前台运行,如果关闭了命令行窗口,则ES服务器会停止,照样访问不了,所以建议用后台启动方式,步骤如下:
首先安装ES服务器后台启动服务,如图:
然后用后台方式启动ES服务器,如下:
也可以直接在Window系统的服务列表中找到安装的服务,然后右键启动。
4 ES交互工具
4.1 安装
与ES交互的主要接口是基于HTTP协议和REST的,可以用WEB浏览器来完成基本的查询和请求,对于复杂情况,则另外需要命令行工具,如curl。
如果是Linux系统,curl命令应该可以直接使用了,但对于Windows系统,则需要自己安装该工具。
备注:curl的官网地址为:https://curl.haxx.se/download.html。
安装过程也很简单,下载zip包,解压到目录即可。我这里下载的是curl-7.52.1-win32-mingw版本,也是目前最新版,直接解压到了D盘根目录。
4.2 命令测试
用检查集群健康度的命令来测试该工具是否好用:
可以试试改变上面命令为如下,结果如何变化:
curl -XGET http://localhost:9200/_cluster/health
curl -XGET http://localhost:9200/
其它一些命令:
查看集群状态:curl -XGET http://localhost:9200/_cat/health?v
查看集群节点:curl -XGET http://localhost:9200/_cat/nodes?v
查询索引列表:curl -XGET http://localhost:9200/_cat/indices?v
创建索引:curl -XPUT http://localhost:9200/customer?pretty
查询索引:curl -XGET http://localhost:9200/customer/external/1?pretty
删除索引:curl -XDELETE http://localhost:9200/customer?pretty
5 ES停服与重启
5.1 停止ES服务器
如果是前台启动,直接Ctrl+Z或者直接关掉命令行窗口,则服务器立即停止。
如果是通过后台启动的ES服务,则需要用如下命令停止服务器:
也可以直接在Window系统的服务列表中找到安装的服务,然后右键停止。
另外,还可以通过curl工具来关掉整个集群或者集群中的指定节点,命令如下:
关掉集群:curl -XPOST http://localhost:9200/-cluster/nodes/_shutdown。
关掉指定的节点,节点标识符为jMJhGirhSRa9Iw2fQtjJ5A:curl -XPOST http://localhost:9200/_cluster/nodes/jMJhGirhSRa9Iw2fQtjJ5A/_shutdown。
5.2 重启ES服务器
如果是想再次重启已经启动的ES服务,可以在Window系统的服务列表中找到安装的服务,然后右键重新启动即可。
未完,持续更新中。。。