安装
Elasticsearch的运行环境为JDK 1.8+. 在写本文时,我们建议您使用Oracle JDK版本-1.8.0_131。
Java的安装因平台不同而有所差异,所以在这里我们不会介绍详细的安装细节。
Oracle推荐的安装文档可以在Oracle网站上找到。
在安装Elasticsearch之前,请先检查您的Java版本(也可根据需要来安装或升级):
java -version
echo $JAVA_HOME
安装好Java之后,我们就可以*载下**并安装Elasticsearch了.
二进制包可通过www.elastic.co/downloads 进行*载下**.
针对每个版本,你都可以在zip,tar,DEB,或RPM包中进行选择;
对于Windows,我们则提供了MSI安装包.
使用tar安装示例
为了简单起见,我们将使用tar文件安装.
先通过如下方式来*载下**Elasticsearch 6.0.0 tar:
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.tar.gz
然后像下面一样来解压:
tar -xvf elasticsearch-6.0.0.tar.gz
它会在当前目录中创建一堆文件和文件夹。然后进入bin目录:
cd elasticsearch-6.0.0/bin
现在我们就可以启动我们的单节点集群了:
./elasticsearch
使用Homebrew进行安装
在macOS上,我们可通过Homebrew来安装Elasticsearch:
brew install elasticsearch
MSI Windows Installer安装示例
对于Windows用户,我们建议使用MSI Installer package来安装Elasticsearch.
该包提供了一个图形用户界面(GUI)来指导安装过程.
首先通过https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.msi来*载下**Elasticsearch 6.0.0 MSI.
然后双击文件来运行GUI. 在第一个屏幕中,选择部署目录:





默认情况下,Elasticsearch会安装在%PROGRAMFILES%\Elastic\Elasticsearch.
进入此目录的bin目录:
使用命令提示行:
cd %PROGRAMFILES%\Elastic\Elasticsearch\bin
使用PowerShell:
cd $env:PROGRAMFILES\Elastic\Elasticsearch\bin
现在就可点击下面的exe来启动单节点集群了:
.\elasticsearch*ex.e**
验证安装
如果一切顺利安装,你应该看到一堆消息,如下所示:
[2016-09-16T14:17:51,251][INFO ][o.e.n.Node] [] initializing ...
[2016-09-16T14:17:51,329][INFO ][o.e.e.NodeEnvironment ] [6-bjhwl] using [1] data paths, mounts [[/ (/dev/sda1)]], net usable_space [317.7gb], net total_space [453.6gb], spins? [no], types [ext4]
[2016-09-16T14:17:51,330][INFO ][o.e.e.NodeEnvironment] [6-bjhwl] heap size [1.9gb], compressed ordinary object pointers [true]
[2016-09-16T14:17:51,333][INFO ][o.e.n.Node ] [6-bjhwl] node name [6-bjhwl] derived from node ID; set [node.name] to override
[2016-09-16T14:17:51,334][INFO ][o.e.n.Node] [6-bjhwl] version[6.0.0], pid[21261], build[f5daa16/2016-09-16T09:12:24.346Z], OS[Linux/4.4.0-36-generic/amd64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_60/25.60-b23]
[2016-09-16T14:17:51,967][INFO ][o.e.p.PluginsService] [6-bjhwl] loaded module [aggs-matrix-stats]
[2016-09-16T14:17:51,967][INFO ][o.e.p.PluginsService] [6-bjhwl] loaded module [ingest-common]
[2016-09-16T14:17:51,967][INFO ][o.e.p.PluginsService] [6-bjhwl] loaded module [lang-expression]
[2016-09-16T14:17:51,967][INFO ][o.e.p.PluginsService] [6-bjhwl] loaded module [lang-mustache]
[2016-09-16T14:17:51,967][INFO ][o.e.p.PluginsService] [6-bjhwl] loaded module [lang-painless]
[2016-09-16T14:17:51,967][INFO ][o.e.p.PluginsService] [6-bjhwl] loaded module [percolator]
[2016-09-16T14:17:51,968][INFO ][o.e.p.PluginsService] [6-bjhwl] loaded module [reindex]
[2016-09-16T14:17:51,968][INFO ][o.e.p.PluginsService] [6-bjhwl] loaded module [transport-netty3]
[2016-09-16T14:17:51,968][INFO ][o.e.p.PluginsService] [6-bjhwl] loaded module [transport-netty4]
[2016-09-16T14:17:51,968][INFO ][o.e.p.PluginsService] [6-bjhwl] loaded plugin [mapper-murmur3]
[2016-09-16T14:17:53,521][INFO ][o.e.n.Node] [6-bjhwl] initialized
[2016-09-16T14:17:53,521][INFO ][o.e.n.Node] [6-bjhwl] starting ...
[2016-09-16T14:17:53,671][INFO ][o.e.t.TransportService] [6-bjhwl] publish_address {192.168.8.112:9300}, bound_addresses {{192.168.8.112:9300}
[2016-09-16T14:17:53,676][WARN ][o.e.b.BootstrapCheck] [6-bjhwl] max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
[2016-09-16T14:17:56,731][INFO ][o.e.h.HttpServer] [6-bjhwl] publish_address {192.168.8.112:9200}, bound_addresses {[::1]:9200}, {192.168.8.112:9200}
[2016-09-16T14:17:56,732][INFO ][o.e.g.GatewayService][6-bjhwl] recovered [0] indices into cluster_state
[2016-09-16T14:17:56,748][INFO ][o.e.n.Node] [6-bjhwl] started
从上面的输出可以看出,名为"6-bjhwl"的节点已经启动了,并且它还将自己选举为了单集群的master.现在您不用担心master的含义,您只需要了解集群已启动了1个节点就行了。
如前所述,我们可覆盖集群或节点名称。 例如,启动Elasticsearch时可通过如下命令来覆盖:
./elasticsearch -Ecluster.name=my_cluster_name -Enode.name=my_node_name
另外,请注意标记有http的行,它含有可以访问节点的HTTP地址(192.168.8.112)和端口(9200)的信息。
默认Elasticsearch使用端口9200来提供REST API访问。 如有必要,也可以修改此端口。