当前位置: 首页 > article >正文

Centos安装Elasticsearch教程

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

		操作系统版本:Centos7
		Elasticsearch版本: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 &
问题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 elasticsearch

passwd elasticsearch

密码:rootes

chown -R elasticsearch /opt/software/elasticsearch/
问题2:提示日志文件目录不存在

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

问题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.kler.cn/a/394978.html

相关文章:

  • Vue3之Pinia
  • 三元和二元序列出现的频率降序病可视化条形图——统计excel某个分组列
  • 前端开放性技术面试—面试题
  • 【从零开始入门unity游戏开发之——C#篇21】C#面向对象的封装——`this`扩展方法、运算符重载、内部类、`partial` 定义分部类
  • 设计模式の享元模板代理模式
  • leetcode45.跳跃游戏II
  • Leetcode 791 Custom Sort String
  • 零碎01-登录验证
  • 基于SpringBoot的“生鲜交易系统”的设计与实现(源码+数据库+文档+PPT)
  • 电脑软件:推荐一款非常好用的PDF编辑、拆分、合并、对比工具
  • C# IEnumerator,IEnumerable ,Iterator
  • python解析网页上的json数据落地到EXCEL
  • Unity3D实现视频和模型融合效果
  • springboot整合websocket实现复制目录进度推送
  • Git服务部署教程
  • C#各版本汇总
  • C#从入门到放弃
  • 计算机视觉和机器人技术中的下一个标记预测与视频扩散相结合
  • 家政服务小程序,家政行业数字化发展下的优势
  • 深度学习:利用随机数据更快地测试一个新的模型在自己数据格式很复杂的时候
  • layui的table组件中,对某一列的文字设置颜色为浅蓝怎么设置
  • anzocapital 昂首资本:外汇机器人趋势判断秘籍
  • 108. UE5 GAS RPG 实现地图名称更新和加载关卡
  • 爱普生机器人EPSON RC
  • python贪心算法实现(纸币找零举例)
  • DNS解析 附实验:DNS正反向解析