【Elasticsearch 基础入门】Centos7下Elasticsearch 7.x安装与配置(单机)

Elasticsearch系列文章目录

  1. 【Elasticsearch 基础入门】一文带你了解Elasticsearch!!!
  2. 【Elasticsearch 基础入门】Centos7下Elasticsearch 7.x安装与配置(单机)

目录


前言

要理解 Elasticsearch,最好的方式就是去运行它,让我们开始吧!!!

我们将介绍如何在 CentOS 7 上安装和配置 Elasticsearch 7.17供开发和测试使用的单机模式。

单机模式

1. 安装 Java 依赖

Elasticsearch 是用 Java 编写的,因此需要 Java 环境。首先安装 JDK(版本 8 或更高版本)。

具体安装过程略

查看当前安装的java 版本

bash 复制代码
java -version

返回信息如下

bash 复制代码
java version "1.8.0_411"
Java(TM) SE Runtime Environment (build 1.8.0_411-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.411-b09, mixed mode)

2. 下载 Elasticsearch

前往 Elasticsearch 官网 下载最新版本的 Elasticsearch。

选择适合你系统的版本(Linux、Windows 等)。

下载并解压到合适的目录。例如,在 CentOS 上:

bash 复制代码
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.27-linux-x86_64.tar.gz
tar -xzf elasticsearch-7.17.27-linux-x86_64.tar.gz
cd elasticsearch-7.17.27/ 

3. 配置 Elasticsearch

对于单机模式,你可以稍微修改一下 elasticsearch.yml 配置文件,来指定网络地址和集群名称。

配置文件路径:config/elasticsearch.yml

bash 复制代码
vim config/elasticsearch.yml

修改以下项:

bash 复制代码
network.host: 0.0.0.0  # 默认是 127.0.0.1,只允许本地连接,如果希望 Elasticsearch 可供其他机器访问,可以改为 0.0.0.0 或者具体的 IP 地址,允许远程访问
cluster.name: my-cluster  # 集群的名字,默认为 elasticsearch。可以根据需要修改。
node.name: node-1  # 设置节点名称。默认为随机生成的名称,可以自定义。
cluster.initial_master_nodes: ["node-1"] # 在首次启动时指定初始主节点,用于集群发现。

4. 启动 Elasticsearch

启动 Elasticsearch 服务:

bash 复制代码
./bin/elasticsearch

5.启动报错 java.lang.RuntimeException: can not run elasticsearch as root

报错日志如下

bash 复制代码
[2025-01-26T08:25:59,843][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-1] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
	at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:173) ~[elasticsearch-7.17.27.jar:7.17.27]
	...

解决方式

错误提示表明 Elasticsearch 不能以 root 用户身份启动。为了安全性,Elasticsearch 不允许以 root 用户运行。你需要创建一个非 root 用户来运行 Elasticsearch。

  1. 创建一个新的用户: 你可以使用以下命令创建一个非 root 用户(例如:elasticsearch):
bash 复制代码
sudo useradd elasticsearch
sudo passwd elasticsearch  # 设置密码
  1. 更改 Elasticsearch 文件夹的拥有者: 需要将 Elasticsearch 的安装目录以及数据目录的权限更改为新用户。假设你安装 Elasticsearch 的路径为 /home/elasticsearch/elasticsearch-7.17.27,请执行以下命令:
bash 复制代码
sudo chown -R elasticsearch:elasticsearch /home/elasticsearch/elasticsearch-7.17.27
sudo chown -R elasticsearch:elasticsearch /home/elasticsearch/elasticsearch-7.17.27/data
sudo chown -R elasticsearch:elasticsearch /home/elasticsearch/elasticsearch-7.17.27/logs
  1. 以新用户身份启动 Elasticsearch: 切换到新创建的 elasticsearch 用户:
bash 复制代码
su - elasticsearch
  1. 然后,尝试启动 Elasticsearch:
bash 复制代码
./bin/elasticsearch

6. 后台启动 Elasticsearch

如果启动 Elasticsearch 服务成功,可以加上-d参数来后台启动:

bash 复制代码
./bin/elasticsearch -d

7.验证是否安装成功

bash 复制代码
curl http://localhost:9200

返回信息如下表示成功

bash 复制代码
{
  "name" : "node-1",
  "cluster_name" : "my-cluster",
  "cluster_uuid" : "lQQ3Qxd5SlmYpq20mq_YGA",
  "version" : {
    "number" : "7.17.27",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "0f88dde84795b30ca0d2c0c4796643ec5938aeb5",
    "build_date" : "2025-01-09T14:09:01.578835424Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.3",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

浏览器访问 http://localhost:9200

8.配置防火墙(如需远程访问)

如果你打算让其他机器也能访问 Elasticsearch,记得在防火墙中打开 9200 端口:

bash 复制代码
sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent
sudo firewall-cmd --reload

9.关闭elasticsearch

查看es进程

bash 复制代码
ps aux | grep elasticsearch

显示如下

bash 复制代码
elastic+ 23343  3.3 35.4 5741876 1376504 pts/0 Sl   08:44   0:23 /usr/java/jdk1.8.0-x64/bin/java  -cp /home/elasticsearch/elasticsearch-7.17.27/lib/* org.elasticsearch.bootstrap.Elasticsearch -d

10.停止后台进程

kill pid 停止 Elasticsearch

bash 复制代码
kill 23343

11.设置开机自启动

创建 systemd 服务文件

创建一个名为 elasticsearch.service 的服务文件,通常放置在 /etc/systemd/system/ 目录下。可以使用以下命令创建并编辑该文件:

bash 复制代码
sudo vim /etc/systemd/system/elasticsearch.service

在文件中添加以下内容:

bash 复制代码
[Unit]
Description=Elasticsearch
Documentation=http://www.elastic.co
After=network.target

[Service]
Type=simple
User=elasticsearch
ExecStart=/home/elasticsearch/elasticsearch-7.17.27/bin/elasticsearch
Restart=on-failure
LimitMEMLOCK=infinity
LimitNOFILE=65535
LimitNPROC=4096
TimeoutStartSec=75
TimeoutStopSec=75
WorkingDirectory=/home/elasticsearch/elasticsearch-7.17.27

[Install]
WantedBy=multi-user.target

重新加载 systemd 配置

创建完服务文件后,需要重新加载 systemd 的配置以识别新服务:

bash 复制代码
sudo systemctl daemon-reload

启动 Elasticsearch 服务

现在,你应该能够使用 systemctl 来管理 Elasticsearch 服务了。首先启动服务:

bash 复制代码
sudo systemctl start elasticsearch

启用服务开机自启动

bash 复制代码
sudo systemctl enable elasticsearch

停止 Elasticsearch 服务

bash 复制代码
sudo systemctl stop elasticsearch

查询 Elasticsearch 启动状态

bash 复制代码
sudo systemctl status elasticsearch

总结

通过本教程,你已经学习了如何在 CentOS 7 上安装和配置 Elasticsearch 7.17 版本的单机模式。我们从安装 Java 环境、下载并配置 Elasticsearch,到启动、排查常见错误、验证安装等方面进行了详细介绍。希望这篇文章能够帮助你顺利在本地环境中运行 Elasticsearch,为开发和测试提供便利。

如果你有任何疑问或遇到其他问题,欢迎在评论区留言。

相关推荐
武子康11 小时前
大数据-184 Elasticsearch Doc Values 机制详解:列式存储如何支撑排序/聚合/脚本
大数据·后端·elasticsearch
周杰伦_Jay14 小时前
【Elasticsearch】核心概念,倒排索引,数据操纵
大数据·elasticsearch·搜索引擎
cai_cai014 小时前
springAlibaba + ollama + es 完成RAG知识库功能
大数据·elasticsearch·搜索引擎
库库茯苓14 小时前
Kibana报错:Unable to retrieve version information from Elasticsearch nodes (解决方法)Window11环境
elasticsearch·kibana
nhdh14 小时前
ELK(elasticsearch-7.6.2,kibana-7-6-2,Logstash-7.6.2)单节点部署
大数据·elk·elasticsearch
新元代码14 小时前
Git在Windows环境下的安装与使用教程
大数据·elasticsearch·搜索引擎
小园子的小菜15 小时前
深入理解Elasticsearch内部线程池:类型与核心作用解析
大数据·elasticsearch·搜索引擎
ZePingPingZe19 小时前
SpringBoot整合Sharding-jdbc分库分表及ES搜索引擎解决无分片键查询
spring boot·elasticsearch·搜索引擎
Mr.wangh19 小时前
SpringCloudConfig(配置中心)
大数据·elasticsearch·搜索引擎·springcloud·config
小园子的小菜19 小时前
深度解析Elasticsearch网络通信原理:节点协同与链接机制
大数据·elasticsearch·搜索引擎