runoops.com

启动并运行Elasticsearch

在Elasticsearch Service上创建部署时,将自动设置一个主节点和两个数据节点。通过从tar或zip存档安装,您可以在本地启动Elasticsearch的多个实例,以查看多节点集群的行为。

在Linux, macOS或Windows上运行Elasticsearch

下载:

Linux下载地址:elasticsearch-7.7.0-linux-x86_64.tar.gz

或:

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.0-linux-x86_64.tar.gz

macOS下载地址: elasticsearch-7.7.0-darwin-x86_64.tar.gz

或:

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.7.0-darwin-x86_64.tar.gz

Windows: elasticsearch-7.7.0-windows-x86_64.zip

解压文件:

Linux:

 tar -xvf elasticsearch-7.7.0-linux-x86_64.tar.gz

macOs:

tar -xvf elasticsearch-7.7.0-darwin-x86_64.tar.gz

Windows:

用解压工具打开即可


bin目录启动Elasticsearch :

Linux and macOS:

cd elasticsearch-7.7.0/bin
./elasticsearch

Windows:

cd elasticsearch-7.7.0\bin
.\elasticsearch.bat

现在,您已经建立并运行了一个单节点Elasticsearch集群!

启动另外两个Elasticsearch实例

以便您可以看到典型的多节点集群的行为。您需要为每个节点指定唯一的数据和日志路径。

Linux and macOS:

./elasticsearch -Epath.data=data2 -Epath.logs=log2
./elasticsearch -Epath.data=data3 -Epath.logs=log3

Windows:

.\elasticsearch.bat -E path.data=data2 -E path.logs=log2
.\elasticsearch.bat -E path.data=data3 -E path.logs=log3

为其他节点分配了唯一的ID。因为您在本地运行所有三个节点,所以它们会自动与第一个节点一起加入集群。

查看运行状态

使用cat health API验证三节点集群是否正在运行。cat API以比原始JSON更易于阅读的格式返回有关集群和索引的信息。

您可以通过向Elasticsearch REST API提交HTTP请求来直接与集群交互。如果已安装并正在运行Kibana,则也可以打开Kibana并通过开发控制台提交请求。

查看健康状况:

GET /_cat/health?v

该响应应表明elasticsearch集群的状态为,green并且它具有三个节点:

epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1565052807 00:53:27  elasticsearch green           3         3      6   3    0    0        0             0                  -                100.0%

如果您仅运行单个Elasticsearch实例,则集群状态将保持黄色。单节点群集具有完整的功能,但是无法将数据复制到另一个节点以提供弹性。副本分片必须可用,群集状态为绿色。如果群集状态为红色,则某些数据不可用。


使用cURL命令操作

本指南中的大多数示例使您能够复制适当的cURL命令并将请求从命令行提交到本地Elasticsearch实例。

对Elasticsearch的请求包含与任何HTTP请求相同的部分:

curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'

本示例使用以下变量:

<VERB>
适当的HTTP方法或动词。例如,GETPOST, PUTHEAD,或DELETE
<PROTOCOL>
无论是httphttps。如果您在Elasticsearch前面有一个HTTPS代理,或者您使用Elasticsearch安全功能来加密HTTP通信,请使用后者。
<HOST>
Elasticsearch集群中任何节点的主机名。或者, localhost用于本地计算机上的节点。
<PORT>
运行Elasticsearch HTTP服务的端口,默认为9200
<PATH>
API端点,可以包含多个组件,例如 _cluster/stats_nodes/stats/jvm
<QUERY_STRING>
任何可选的查询字符串参数。例如,?pretty 将漂亮地打印 JSON响应以使其更易于阅读。
<BODY>
JSON编码的请求正文(如有必要)。

如果启用了Elasticsearch安全功能,则还必须提供有权运行API的有效用户名(和密码)。例如,使用 -u--ucURL命令参数。

Elasticsearch使用HTTP状态代码(例如)响应每个API请求200 OK。除HEAD请求外,它还返回JSON编码的响应正文。