安装
Elasticsearch需要至少Java 8。明确的说,截至本文写作时,推荐使用Oracle JDK 1.8.0_131版本。Java的安装在不同的平台下是不一样,所以在这里就不再详细介绍。你可以在Oracle官网找到官方推荐的安装文档。所以说,当你在安装Elasticsearch之前,请先通过以下命令检查你的Java版本(然后根据需要安装或升级)。
java -version
echo $JAVA_HOME
一旦Java准备就绪,然后我们就可以下载并运行Elasticsearch。我们可以从这个页面http://www.elastic.co/downloads 获取所有发行版本的二进制安装包。每一个版本都对应有zip和tar压缩包,还有deb和rpm安装包,还有Windows下用的msi安装包。
Linux tar包安装示例
为了简单,让我们使用tar包来安装。
使用如下命令下载Elasticsearch 6.1.1的tar包:
curl -L -O https://artifacts.elastic.co/...
使用如下命令解压:
tar -xvf elasticsearch-6.1.1.tar.gz
上述操作将会在你的当前目录下创建很多文件和文件夹。然后我们通过如下命令进入bin目录:
cd elasticsearch-6.1.1/bin
接下来我们就可以启动我们的单节点集群:
./elasticsearch
MacOS使用Homebrew安装
在macOS上,我们可以通过Homebrew来安装Elasticsearch:
brew install elasticsearch
Windows上使用MSI安装
对于Windows用户,我们推荐使用MSI安装包进行安装。这个安装包使用图形用户界面来引导你进行安装。
首先,从这里https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.msi下载Elasticsearch 6.1.1的MSI安装包。
然后双击下载好的安装包文件启动图形化安装程序,在第一个界面,选择安装目录:
然后选择是否将Elasticsearch安装为一个系统服务,为了和用tar包安装示例保持一致,我们选择不安装为系统服务,根据自己需要手动启动:
然后到了配置页面,这里就简单的使用默认的配置值:
进入插件安装页面,同样为了跟tar包安装示例保持一致,将所有的选择去掉,不安装任何插件:
然后点击安装按钮,Elasticsearch将会被安装:
默认情况下,Elasticsearch将会被安装在%PROGRAMFILES%\Elastic\Elasticsearch
。进入这个目录并且切换到bin目录下:
使用命令提示符:
cd %PROGRAMFILES%ElasticElasticsearchbin
使用PowerShell:
cd $env:PROGRAMFILESElasticElasticsearchbin
接下来我们就可以启动我们的单节点集群了:
.elasticsearch.exe
成功运行节点
如果安装过程顺利的话,你应该会看到如下的信息输出:
[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.1.1], 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是什么意思。这里我们主要关心的重点是我们启动了一个单节点的集群。
在前面我们提到过,我们可以覆盖集群或者是节点的名称。这个操作可以通过如下方式启动Elasticsearch完成。
./elasticsearch -Ecluster.name=my_cluster_name -Enode.name=my_node_name
还有就是通过上面启动时的输出信息我们可以看到,我们可以通过IP地址(192.168.8.112
)和端口号(9200
)来访问我们的节点。默认情况下,Elasticsearch使用9200
端口提供REST API访问。这个端口可以根据需要自定义。
注意!为安全起见,Elasticsearch被设置为不允许使用root用户运行。所以运行之前首先需要创建新用户并赋予权限。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。