前言
Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。Elasticsearch是用Java开发的,并在Apache许可证下作为开源软件发布。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。[5]根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。
Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。
Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。[5]”Elasticsearch是分布式的,这意味着索引可以被分成分片,每个分片可以有0个或多个副本。每个节点托管一个或多个分片,并充当协调器将操作委托给正确的分片。再平衡和路由是自动完成的。“[5]相关数据通常存储在同一个索引中,该索引由一个或多个主分片和零个或多个复制分片组成。一旦创建了索引,就不能更改主分片的数量。
准备
Elasticsearch至少需要Java 8.具体到撰写本文时(2018-7-19 11:2:28),建议您使用Oracle JDK版本1.8.0_131。
Java安装因平台而异,因此我们不会在此处详细介绍。可以在Oracle的网站上找到Oracle推荐的安装文档。可以说,在安装Elasticsearch之前,请先运行检查Java版本(然后根据需要进行相应的安装/升级):
$ java -version
$ echo $ JAVA_HOME
安装
可以在 官网 上下载过去发布的所有版本一起提供。对于每个版本,您可以选择zip或tar存档,包DEB或RPM包,或Windows MSI安装包。
以elasticsearch-6.3.1为例。
1. Install Elasticsearch with RPM
Import the Elasticsearch PGP Key
下载并安装公钥
$ rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Installing from the RPM repository(可选)
基于RedHat的发行版在/etc/yum.repos.d/ 创建一个elasticsearch.repo文件; 基于OpenSuSE的发行版在/etc/zypp/repos.d/创建一个elasticsearch.repo文件。
其中包含:
$ vim /etc/yum.repos.d/elasticsearch.repo [elasticsearch-6.x] name=Elasticsearch repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
安装Elasticsearch:
$ sudo yum makecache $ sudo yum install elasticsearch ## Fedora和其他新的Red Hat分发应该使用dnf。 $ sudo dnf install elasticsearch ## 基于OpenSUSE的发行版应该使用zypper。 $ sudo zypper install elasticsearch
Download and install the RPM manually(可选)
也可以直接从网站下载并安装.
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.rpm $ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.rpm.sha512 $ shasum -a 512 -c elasticsearch-6.3.1.rpm.sha512 $ sudo rpm --install elasticsearch-6.3.1.rpm
Running Elasticsearch
安装后Elasticsearch不会自动启动。如何启动和停止Elasticsearch取决于您的系统是使用SysV init还是 systemd(由较新的发行版使用)。您可以通过运行此命令来判断正在使用哪个:
$ ps -p 1
Running Elasticsearch with SysV init(可选)
使用此chkconfig命令将Elasticsearch配置为在系统启动时自动启动:
$ sudo chkconfig --add elasticsearch
可以使用以下service命令启动和停止Elasticsearch :
$ sudo -i service elasticsearch start $ sudo -i service elasticsearch stop
如果Elasticsearch因任何原因无法启动,它将打印STDOUT失败的原因。可以在/var/log/elasticsearch/中找到日志文件。
Running Elasticsearch with systemd(可选)
要将Elasticsearch配置为在系统启动时自动启动,请运行以下命令:
$ sudo /bin/systemctl daemon-reload $ sudo /bin/systemctl enable elasticsearch.service
Elasticsearch可以按如下方式启动和停止:
$ sudo systemctl start elasticsearch.service $ sudo systemctl stop elasticsearch.service
这些命令不提供有关Elasticsearch是否成功启动的反馈。相反,此信息将写入位于/var/log/elasticsearch/的日志文件中。
默认情况下,Elasticsearch服务不会在systemd 日记中记录信息。如果要启用journalctl日志记录,必须从文件elasticsearch.service中的ExecStart命令中删除该选项–quiet。
当systemd启用了日志记录,查看日志信息可以使用journalctl的命令:
$ sudo journalctl -f $ sudo journalctl --unit elasticsearch $ sudo journalctl --unit elasticsearch --since "2016-10-30 18:17:16"
2. Install Elasticsearch with Debian Package
Import the Elasticsearch PGP Key
下载并安装公钥
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Installing from the APT repository(可选)
$ sudo apt-get install apt-transport-https
将存储库定义保存到 /etc/apt/sources.list.d/elastic-6.x.list:
$ echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
add-apt-repository由于以下几个原因,这些说明不使用:
add-apt-repository添加记录到系统/etc/apt/sources.list文件而不是在/etc/apt/sources.list.d创建一个干净的存储库文件
add-apt-repository 不是许多发行版上的默认安装的一部分,并且需要许多非默认依赖项。
旧版本add-apt-repository总是添加一个deb-src会导致错误的条目,因为我们不提供源包。如果您添加了该deb-src条目,则在删除该deb-src行之前,您将看到如下所示的错误:Unable to find expected entry ‘main/source/Sources’ in Release file(Wrong sources.list entry or malformed file)
你可以使用以下命令安装Elasticsearch Debian软件包:
$ sudo apt-get update && sudo apt-get install elasticsearch
Download and install the Debian package manually(可选)
可以从网站下载Elasticsearch v6.3.1的Debian软件包,安装如下:
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.deb $ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.deb.sha512 $ shasum -a 512 -c elasticsearch-6.3.1.deb.sha512 $ sudo dpkg -i elasticsearch-6.3.1.deb
Running Elasticsearch
安装后Elasticsearch不会自动启动。如何启动和停止Elasticsearch取决于您的系统是使用SysV init还是 systemd(由较新的发行版使用)。你可以通过运行此命令来判断正在使用哪个:
$ ps -p 1
Running Elasticsearch with SysV init(可选)
使用此update-rc.d命令将Elasticsearch配置为在系统启动时自动启动:
$ sudo update-rc.d elasticsearch defaults 95 10
可以使用以下service命令启动和停止Elasticsearch :
$ sudo -i service elasticsearch start $ sudo -i service elasticsearch stop
如果Elasticsearch因任何原因无法启动,它将打印STDOUT失败的原因。可以在/var/log/elasticsearch/中找到日志文件。
Running Elasticsearch with systemd(可选)
要将Elasticsearch配置为在系统启动时自动启动,请运行以下命令:
$ sudo /bin/systemctl daemon-reload $ sudo /bin/systemctl enable elasticsearch.service
Elasticsearch可以按如下方式启动和停止:
$ sudo systemctl start elasticsearch.service $ sudo systemctl stop elasticsearch.service
这些命令不提供有关Elasticsearch是否成功启动的反馈。相反,此信息将写入位于/var/log/elasticsearch/的日志文件中。
默认情况下,Elasticsearch服务不会在systemd 日记中记录信息。如果要启用journalctl日志记录,必须从文件elasticsearch.service中的ExecStart命令中删除该选项–quiet。
当systemd启用了日志记录,查看日志信息可以使用journalctl的命令:
$ sudo journalctl -f $ sudo journalctl --unit elasticsearch $ sudo journalctl --unit elasticsearch --since "2016-10-30 18:17:16"
参考链接
https://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html