Centos安装Elasticsearch教程

devtools/2024/11/19 20:57:49/

网上相关的安装教程有很多,基本是官网下载、解压、启动完事了,本文主要记录个人在实际安装过程终于到的问题,如果你刚好也刷到了这篇文档,希望对你有所帮助。

		操作系统版本:Centos7Elasticsearch版本:7.9.3

为了方便启动,这里我添加了启动脚本start-elasticsearch.sh,将启动日志输出到指定的日志文件中,内容如下:

#!/bin/bash
cd /opt/software/elasticsearch/elasticsearch-7.9.3/bin
nohup ./elasticsearch>/opt/software/elasticsearch/logs/start-elasticsearch.log 2>&1 &
elasticsearch_as_root_11">问题1:can not run elasticsearch as root

执行脚本后,日志文件输出了错误提示:

[2024-11-14T14:45:03,392][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

这意思很明显了,不能使用root账户启动,ok,那我们通过如下添加子用户并给其赋予权限:

adduser elasticsearchpasswd elasticsearch密码:rooteschown -R elasticsearch /opt/software/elasticsearch/
问题2:提示日志文件目录不存在

切换到子账户继续启动后提示日志目录不存在,这个比较好解决。通过mkdir 创建即可。修改后我们继续尝试启动,结果日志文件里仍然存在错误提示。

elasticsearch_process_is_too_low_increase_to_at_least_65535_33">问题3:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]]

文件描述符是操作系统用来追踪打开文件和网络连接的资源。Elasticsearch 作为一个需要处理大量文件和网络连接的服务,对文件描述符的需求可能会非常高,我们通过如下命令增加文件描述符的限制。

vim /etc/security/limits.conf
# 在文件的最后加上两行,关闭保存文件重启ES
elasticsearch soft nofile 65535
elasticsearch hard nofile 65535
问题4: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

错误信息提示你的系统虚拟内存区域的最大数量(vm.max_map_count)设置过低,这可能会影响 Elasticsearch 的性能,因为它需要创建大量的内存映射来存储其数据。vm.max_map_count 参数限制了进程可以拥有的虚拟内存区域(VMA)的数量,这包括内存映射文件和其他类型的VMA。
我们通过如下命令进行修改:

vim /etc/sysctl.conf
# 在文件最后添加一行
vm.max_map_count = 262144
# 应用该配置
sysctl -p
# 验证配置是否生效
sysctl vm.max_map_count
# 这里会输出262144
问题5:the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

这个错误信息是 Elasticsearch 在启动时的一个警告,提示你当前的发现设置不适合生产环境使用。在生产环境中,你需要配置集群发现设置,以确保 Elasticsearch 节点能够相互发现并形成集群。以下是一些关键的配置项,你需要至少配置其中之一:

  1. discovery.seed_hosts:这是一个列表,包含用于发现的初始节点的地址。这些节点将被用来启动集群发现过程。
  2. discovery.seed_providers:这是一个列表,包含用于发现的种子提供者。种子提供者可以是云服务提供商,如AWS、GCE 或 Azure。
  3. cluster.initial_master_nodes:这是一个列表,包含初始的主节点(master-eligiblenodes)的地址。这些节点将被选举为集群的初始主节点。
    我这里只是单机测试,所以将配置文件精简如下:
# 节点名称
node.name: node-1# 集群名称
cluster.name: my-application# 禁用自动发现
discovery.type: single-node# 单节点发现设置
discovery.seed_hosts: ["localhost", "127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]# HTTP 端口
http.port: 9200# 绑定到所有接口
network.host: 0.0.0.0# 禁用跨集群请求
cluster.remote.connect: false

修改后再执行启动脚本,日志没有错误提示了,这时打开浏览器,输入对应ip:9200,会看到如下信息

{"name": "node-1","cluster_name": "my-application","cluster_uuid": "lKSKlOoQT0SHUVv0Lnfv0g","version": {"number": "7.9.3","build_flavor": "default","build_type": "tar","build_hash": "c4138e51121ef06a6404866cddc601906fe5c868","build_date": "2020-10-16T10:36:16.141335Z","build_snapshot": false,"lucene_version": "8.6.2","minimum_wire_compatibility_version": "6.8.0","minimum_index_compatibility_version": "6.0.0-beta1"},"tagline": "You Know, for Search"
}

http://www.ppmy.cn/devtools/135294.html

相关文章

Springboot集成ElasticSearch实现minio文件内容全文检索

一、docker安装Elasticsearch (1)springboot和Elasticsearch的版本对应关系如下,请看版本对应: 注意安装对应版本,否则可能会出现一些未知的错误。 (2)拉取镜像 docker pull elasticsearch:7…

计算机网络基础——针对实习面试

目录 计算机网络基础OSI七层模型TCP/IP四层模型为什么网络要分层?常见网络协议 计算机网络基础 OSI七层模型 开放系统互连参考模型(Open Systems Interconnection Reference Model,简称OSI模型)是一个概念性模型,用于…

Prompt设计技巧和高级PE

目录 PD and PE:INTRODUCTION AND ADVANCED METHODS 1.Instructions 2.Basic Knowledge - Prompt 2.1 Prompt 2.2 Prompt Cases 2.3 Prompt Engineering 3. LLM 的局限 4. Prompt 设计技巧和方法 4.1 Chain of thought prompting 4.2 Encouraging the model to be fa…

鸿蒙next版开发:使用HiDebug获取调试信息(ArkTS)

在HarmonyOS 5.0中,HiDebug是一个提供应用调试功能的工具,它可以帮助开发者获取系统的CPU使用率、内存信息等关键性能数据。这对于性能分析和问题诊断至关重要。本文将详细介绍如何在ArkTS中使用HiDebug获取调试信息,并提供示例代码进行说明。…

小程序-基于java+SpringBoot+Vue的智能小程序商城设计与实现

项目运行 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

大模型基础BERT——Transformers的双向编码器表示

大模型基础BERT——Transformers的双向编码器表示 整体概况 BERT:用于语言理解的深度双向Transform的预训练 论文题目:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding Bidirectional Encoder Representations from…

分布式IO模块:汽车产线注塑设备的智能化升级

在汽车制造这一日新月异的行业中,高效、精准的生产线是实现产品高质量与低成本的关键。特别是在注塑设备环节,对精确控制和高效率的追求从未停歇。注塑设备是汽车零配件制造中不可或缺的一环,用于生产如车灯、保险杠等关键部件。传统的注塑生…

OpenGL 进阶系列14 - 曲面细分着色器

一:概述 OpenGL 曲面细分着色器(Tessellation Shader)是一种用于图形渲染的高级着色器,旨在对图形进行细分处理。它使得开发者能够将粗糙的模型细分成更精细的网格,从而实现更加平滑和细致的表面。曲面细分着色器通过引入两个主要阶段来实现细分:控制着色器、细分着色器和…