如何在 CentOS 8 / RHEL 8 上安装 Elasticsearch

[ad_1]

弹性搜索 是一个基于开源搜索引擎 Apache Lucene 提供实时分布式全文搜索引擎,带有 HTTP Web 界面和无模式 JSON 文档。

Elasticsearch 是用 Java 开发的。 Elasticsearch 的开源版本发布于 Apache 2.0 License,商业版在Elastic License下发布。 目前,它是最受欢迎的企业搜索引擎 Apache 索尔。

这篇文章将帮助您在 CentOS 8 / RHEL 8 上安装 Elasticsearch。

先决条件

Elasticsearch 是使用 Java 构建的,并且该软件包包含一个捆绑版本的 OpenJDK,这意味着您无需单独安装 Java 来安装 Elasticsearch。 捆绑的 OpenJDK 位于 Elasticsearch 主目录的 JDK 目录中 /usr/share/elasticsearch.

安装 Java

要使用您自己的 Java 版本,请安装 Java 的 LTS 版本并设置 JAVA_HOME 系统上的环境变量。

: 如何在 CentOS 8 / RHEL 8 上安装 Java

验证系统上安装的 Java 版本。

java -version

输出:

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

JAVA_HOME 使用以下命令。

export JAVA_HOME=<JAVA_PATH>

在您的系统集上安装 Elasticsearch 之后 JAVA_HOME 在里面 /etc/sysconfig/elasticsearch 文件让 Elasticsearch 使用自定义 Java 版本。

设置 Elasticsearch 存储库

松紧带 为 RHEL 及其衍生产品提供了一个预先构建的二进制 (rpm) 包。 下载并安装 Elastic 的公共签名密钥。

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

免费版

这个包是免费使用的。 它包含开源、免费和付费的商业功能。 安装软件包时,您将收到一个基本许可证。 您可以访问 订阅页面 列出免费和商业版本中包含的所有功能。

你可以开始一个 30天试用 尝试所有付费功能。 在试用期结束时,商业功能在 降级模式. 您可以将许可证恢复为基本许可证、延长试用期或 购买订阅.

cat << EOF > /etc/yum.repos.d/elasticsearch.repo 
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

开源版本

此软件包可免费使用,并且仅包含在 Apache 2.0 许可证。

cat << EOF > /etc/yum.repos.d/elasticsearch.repo 
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

安装 Elasticsearch

使用以下命令安装 Elasticsearch (v7.x)。

免费版

yum install -y elasticsearch

开源版本

yum install -y elasticsearch-oss

启用 Elasticsearch 在系统启动期间自动启动。

systemctl daemon-reload

systemctl enable elasticsearch

systemctl start elasticsearch

启动 Elasticsearch 服务后,请等待至少一分钟以使其完全启动。 否则,测试将失败。

Elastisearch 现在应该监听 9200 端口以处理 HTTP 请求。 用 curl 得到回应。

curl -X GET 'https://localhost:9200'

你应该得到如下回复。

{
  "name" : "centos8.itzgeek.local",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "s6PwCJnoS7e7Pb3QMzkINg",
  "version" : {
    "number" : "7.4.0",
    "build_flavor" : "oss",
    "build_type" : "rpm",
    "build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
    "build_date" : "2019-09-27T08:36:48.569419Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

配置 Elasticsearch

Elasticsearch 配置文件位于 /etc/elasticsearch/ 目录。 弹性搜索.yml 是 Elasticsearch 的主要配置文件,包含运行开发集群的默认设置。 Elasticsearch 日志存储在 /var/log/elasticsearch 目录。

集群名称

那个设定 集群名称 用于发现节点并自动加入其他节点。 如果同一网络上的一组 Elasticsearch 节点具有相同的集群名称,它们将相互发现并形成集群。

更改 Elasticsearch 节点的默认集群名称,以避免与同一网络上的其他节点自动加入。 确保您使用唯一的集群名称。

编辑 弹性搜索.yml 文件。

vi /etc/elasticsearch/elasticsearch.yml

代替 集群 使用您的 Elasticsearch 集群名称。

cluster.name: els-cluster

节点名称

节点名 就像 Elasticsearch 服务器的主机名,在服务启动期间动态生成。 您可以通过更新以下行来设置节点名称。 代替 els-cluster-node01 使用您的 Elasticsearch 节点名称。

node.name: els-cluster-node01

收听地址

默认情况下,Elasticsearch 绑定到 localhost (127.0.0.1) 并在端口号 9200 上侦听 HTTP 流量。 它使用端口号 9300 – 9400 用于集群内节点之间的通信。

组建多节点Elasticsearch集群或将Elasticsearch节点用于生产,让应用访问Elasticsearch节点,需要配置Elasticsearch监听系统IP地址。

### Listening on particular IPv4 ###

network.host: 192.168.0.10

或者

### Listen on All IP Address ###

network.host: 0.0.0.0

您还需要使用您的系统 IP 地址更新以下设置。

discovery.seed_hosts: ["192.168.0.10"]

重启 Elasticsearch 服务。

systemctl restart elasticsearch

重新启动 Elasticsearch 服务后,请等待至少一分钟,让 Elasticsearch 完全启动。

检查 Elasticsearch 是否正在侦听所有 IP 地址或特定 IP 地址上的端口 9200 网络统计 命令。

在 CentOS 8 / RHEL 8 上找不到 netstat 命令

 netstat -antup | grep -i 9200

输出:

tcp6       0      0 :::9200                 :::*                    LISTEN      2143/java

使用 curl.

curl -X GET 'https://192.168.0.10:9200'

你应该得到如下回复。

{
  "name" : "els-cluster-node01",
  "cluster_name" : "els-cluster",
  "cluster_uuid" : "s6PwCJnoS7e7Pb3QMzkINg",
  "version" : {
    "number" : "7.4.0",
    "build_flavor" : "oss",
    "build_type" : "rpm",
    "build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
    "build_date" : "2019-09-27T08:36:48.569419Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

使用 Elasticsearch

让我们向 Elasticsearch 添加一些数据。 您可以使用 curl 命令使用 RESTful API 通过端口 9200 读取、添加、删除和更新数据到 Elasticsearch。

文档按以下格式存储

Elasticsearch ⇒ 索引 ⇒ 类型 ⇒ 文档 ⇒ 字段

指数: 复数个索引,存放Elasticsearch的数据。

类型: 它包含多个文档,就像数据的类型。

文件: 它包含数据字段。

领域: 实际数据。

添加数据

使用以下 curl 命令将数据添加到我们的 Elasticsearch。

curl -XPUT 'https://localhost:9200/itzgeek/howtos/1' -H 'Content-Type: application/json' -d '
{ 
    "Title" : "Install Elasticsearch On RHEL 8", 
    "Date"  : "May 2019", 
    "Tag"   : "RHEL"
}'

您应该得到以下带有“result”的响应:“created”。

{"_index":"itzgeek","_type":"howtos","_id":"1","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}

在哪里,

网友: Elasticsearch 集群的索引。

使用方法: 文件类型

1: howtos 和 itzgeek 索引下的条目的 id。

读取数据

使用以下命令查询 Elasticsearch 上的数据。

curl -X GET 'https://localhost:9200/itzgeek/howtos/1'

附加 ?漂亮=真 到上述命令以获取格式化输出。

curl -X GET 'https://localhost:9200/itzgeek/howtos/1?pretty=true'

输出将如下所示。

{
  "_index" : "itzgeek",
  "_type" : "howtos",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 0,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "Title" : "Install Elasticsearch On RHEL 8",
    "Date" : "May 2019",
    "Tag" : "RHEL"
  }
}

更新数据

使用以下命令更新数据。

curl -XPUT 'https://localhost:9200/itzgeek/howtos/1' -H 'Content-Type: application/json' -d '
{ 
    "Title" : "Install Elasticsearch On RHEL 8", 
    "Date"  : "May 2019", 
    "Tag"   : "RHEL"
}'

索引、类型和文档不会有任何变化。 但是,字段将修改数据。

响应应如下所示,包含 “_version”:2“结果”:“更新” 这意味着文档已更新。

{"_index":"itzgeek","_type":"howtos","_id":"1","_version":2,"result":"updated","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":1,"_primary_term":1}

删除数据

使用以下命令删除文档。

curl -X DELETE 'https://localhost:9200/itzgeek/howtos/1'

响应将如下所示。 如果找到该文件,您将获得 “结果”:“已删除”.

{"_index":"itzgeek","_type":"howtos","_id":"1","_version":3,"result":"deleted","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":2,"_primary_term":1}

如果未找到该文件,您将得到 “结果”:“未找到”.

{"_index":"itzgeek","_type":"howtos","_id":"1","_version":4,"result":"not_found","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":3,"_primary_term":1}

结论

我希望你学会了如何在 CentOS 8 / RHEL 8 上安装 Elasticsearch 以及如何在 Elasticsearch 中添加、读取、删除和更新数据。 您还可以设置多节点 Elasticsearch 集群来处理大量数据。

[ad_2]

Related Posts