Centos 上如何安装 Elasticsearch
Elasticsearch 是一款基于 Java 开发的开源搜索引擎,因此需要安装 Java 运行环境才能正常运行。
具体来说,Elasticsearch 是基于 Apache Lucene 构建的分布式搜索引擎,它使用 Java 实现了底层的数据存储、索引和搜索等核心功能,提供了强大的全文搜索和实时数据分析能力。因此,要在服务器上运行 Elasticsearch,必须先安装 Java 运行环境。
需要注意的是,不同版本的 Elasticsearch 对 Java 的要求可能不同,因此在安装 Elasticsearch 之前,应该先查看 Elasticsearch 的官方文档,了解所需的 Java 版本和配置要求。同时,建议使用 Oracle JDK 或 OpenJDK 等官方提供的 Java 实现,以确保 Elasticsearch 的稳定性和性能。
前期准备
1. 安装Java:
Elasticsearch需要Java 8或更高版本。我们可以使用以下命令安装Java 8:
$ sudo yum install java-1.8.0-openjdk -y
2. 配置Java环境变量:
我们需要在系统环境变量中配置Java路径,以便 Elasticsearch 能够找到Java。在 /etc/profile 文件中添加以下内容:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$PATH:$JAVA_HOME/bin
3. 配置内核参数:
在CentOS上,Elasticsearch需要一些内核参数的调整以实现最佳性能。可以通过编辑 /etc/sysctl.conf 文件来配置内核参数:
$ sudo vim /etc/sysctl.conf
添加以下内容:
vm.max_map_count=262144
fs.file-max=65536
然后保存文件并执行以下命令以使更改生效:
$ sudo sysctl -p
4. 验证Java和内核参数的配置:
我们可以使用以下命令验证Java是否已正确安装:
$ java -version
如果返回Java版本,则Java已成功安装。
我们可以使用以下命令验证内核参数是否已正确配置:
$ sudo sysctl -a | grep vm.max_map_count
$ sudo sysctl -a | grep fs.file-max
如果返回与我们在 /etc/sysctl.conf 文件中设置的值相同的值,则内核参数已成功配置。
这些步骤将确保 Elasticsearch 在 CentOS 上正常运行并实现最佳性能。
安装 Elasticsearch
1. 添加Elasticsearch仓库:
使用以下命令下载并安装Elasticsearch的公共密钥:
$ sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
然后使用以下命令添加Elasticsearch仓库:
$ sudo vim /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
2. 安装Elasticsearch:
使用以下命令安装Elasticsearch:
$ sudo yum install elasticsearch -y
3. 编辑Elasticsearch配置文件:
编辑 /etc/elasticsearch/elasticsearch.yml 文件,设置以下参数:
cluster.name: <your_cluster_name>
node.name: <your_node_name>
network.host: <your_server_ip>
其中,<your_cluster_name>
为我们的集群名称,<your_node_name>
为我们的节点名称,<your_server_ip>
为我们的服务器IP地址。
4. 启动Elasticsearch服务并启用开机启动:
使用以下命令启动Elasticsearch服务:
$ sudo systemctl enable elasticsearch
$ sudo systemctl start elasticsearch
5. 验证Elasticsearch是否已正确安装:
我们可以使用以下命令验证Elasticsearch是否已正确安装:
$ curl -X GET "http://localhost:9200/"
如果返回以下类似的输出,则Elasticsearch已成功安装:
{
"name" : "your_node_name",
"cluster_name" : "your_cluster_name",
"cluster_uuid" : "sDFsLc9XQTyDYp_KBz50tA",
"version" : {
"number" : "7.11.2",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "3e5a16cfec50876d20ea77b075070932c6464c7d",
"build_date" : "2021-03-06T05:54:38.141101Z",
"build_snapshot" : false,
"lucene_version" : "8.8.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
启动 Elasticsearch 错误
安装完成,在启动 Elasticsearch 时我们可能会遇到报错 Job for elasticsearch.service failed because a fatal signal was delivered to the control process
这个错误可能是因为 Elasticsearch 在启动时占用了太多的内存,导致 Linux 系统向 Elasticsearch 进程发送了一个致命信号,使其停止运行。
我们可以尝试通过以下方式来解决这个问题:
1. 分配更多内存给 Elasticsearch
可以尝试将 Elasticsearch JVM 堆内存限制增加到一个更高的值,以便 Elasticsearch 可以使用更多的内存。可以编辑 Elasticsearch 的配置文件 /etc/elasticsearch/jvm.options ,找到以下两个参数:
-Xms1g
-Xmx1g
将其改为较大的值,例如:
-Xms4g
-Xmx4g
这将把 Elasticsearch 的最小和最大堆内存限制都设置为 4GB。修改后需要重启 Elasticsearch。
2. 降低 Elasticsearch 的资源使用
如果我们的系统资源有限,或者我们无法为 Elasticsearch 分配更多的内存,则可以尝试通过以下方法来减少 Elasticsearch 对系统资源的使用:
- 禁用未使用的插件
- 压缩和归档旧的 Elasticsearch 日志文件
- 删除旧的 Elasticsearch 索引
- 调整索引设置,以便 Elasticsearch 使用较少的内存和磁盘空间
3. 检查系统资源使用情况
可以使用 top
或 htop
命令查看系统资源的使用情况,以确定是否存在任何资源瓶颈。
如果以上方法仍然不能解决问题,请检查 Elasticsearch 日志文件中的其他错误信息,从而获取更多有价值的内容。
相关文章
在 Linux 中安装 MySQL 客户端
发布时间:2023/05/09 浏览次数:72 分类:MySQL
-
在 Linux 中安装 MySQL 客户端的命令。Linux 和 Unix 等环境作为命令行界面工作,仅在命令的帮助下运行。
在 Linux 中更新 YUM
发布时间:2023/05/04 浏览次数:82 分类:操作系统
-
本文介绍了 Linux 中的 yum update 命令。本文将教我们如何在 Linux 中更新 YUM,以及如何在 Linux 系统上安装、更新、删除、查找和管理包。
在 Linux 中安装 Deb 文件
发布时间:2023/05/04 浏览次数:130 分类:操作系统
-
本文介绍如何在 Linux 中安装 deb 文件。在这篇 Linux 文章中,我们将学习如何在 Linux 系统上安装 .deb(Debian 软件包)文件。 我们还将看到如何在安装后删除 .deb 文件。
Linux 中的 lsof 命令
发布时间:2023/05/04 浏览次数:82 分类:操作系统
-
在这篇 Linux 文章中,我们将了解 Linux 操作系统中的 lsof 命令。 我们将看到如何在 Linux 中将此命令用于不同目的。
Linux 解决不能执行二进制文件问题
发布时间:2023/05/04 浏览次数:187 分类:操作系统
-
在本文中,我们将学习如何在 Linux 中执行二进制文件。 如果 Linux 无法执行二进制文件,我们还将学习如何解决错误。
Linux 中错误 Mesg: Ttyname Failed: Inappropriate Ioctl for Device Error
发布时间:2023/05/04 浏览次数:145 分类:操作系统
-
本文介绍如何在 Linux 中解决 mesg: ttyname failed: inappropriate ioctl for device 错误。在 Linux 中,这个错误是由于默认的 vagrant 配置 config.ssh.shell 与 bash -l 交互导致的。
Linux 中的 ps aux 命令
发布时间:2023/05/04 浏览次数:69 分类:操作系统
-
本篇文章将讨论 Linux 中的 ps aux 命令。如果将 aux 快捷方式与 ps 命令一起使用,它将显示用户需要的最多信息,并可以为您提供系统运行进程的当前状态。
Linux 中的 NTP
发布时间:2023/05/04 浏览次数:137 分类:操作系统
-
本篇文章将讨论 Linux 中的 ntp。NTP 是大多数 IT 基础设施使用的核心协议。 使用它的目的是同步日期和时间信息。
在 Linux 中计算文件中的唯一行
发布时间:2023/05/04 浏览次数:70 分类:操作系统
-
计算文件中的唯一行是 Linux 中的一项常见任务,可以使用多种不同的工具和方法来执行此操作。使用 sort 和 uniq 命令计算文件中的唯一行数