Aldebaran

人生最棒的感觉,就是你做到别人说你做不到的事。

0%

安装Elasticsearch

三田寺円

前言

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