[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]