【centos7安装ElasticSearch】

news2024/11/16 9:23:54

概述

最近工作中有用到ES ,当然少不了自己装一个服务器捣鼓。本文的ElasticSearch 的版本:
7.17.3

一、下载 ElasticSearch

点此下载
在这里插入图片描述
在这里插入图片描述
下载完成后上传至 Linux 服务器,本文演示放在: /root/ 下,进行解压:

tar -zxvf elasticsearch-7.17.3-linux-x86_64.tar.gz

二、配置 JDK 环境

ES比较耗内存,建议虚拟机4G或以上内存,jvm1g以上的内存分配。运行Elasticsearch,需安装并配置JDK。 各个版本对Java的依赖
Elasticsearch 7.0开始,内置了Java环境。ES的JDK环境变量生效的优先级配置顺序ES_JAVA_HOME>JAVA_HOME>ES_HOME

  1. ES_JAVA_HOME:这个环境变量用于指定Elasticsearch使用的Java运行时环境的路径。在启动Elasticsearch时,它会检查ES_JAVA_HOME环境变量并使用其中的Java路径。
  2. ES_HOME:这个环境变量指定Elasticsearch的安装路径。它用于定位Elasticsearch的配置文件、插件和其他相关资源。
    设置ES_HOME环境变量可以让您在命令行中更方便地访问Elasticsearch的目录结构和文件。
vim /etc/profile

#设置ES_JAVA_HOME和ES_HOME的路径
export ES_JAVA_HOME=/root/elasticsearch-7.17.3/jdk/
export ES_HOME=/root/elasticsearch-7.17.3
# 保存并退出

#执行以下命令使配置生效
source /etc/profile

三、配置ElasticSearch

修改elasticsearch.yml配置:

cd /root/elasticsearch-7.17.3
vim config/elasticsearch.yml

#开启远程访问  
network.host: 0.0.0.0

#单节点模式  初学者建议设置为此模式 
discovery.type: single-node 

注意:此文件为yml 格式的配置文件,键和值中间的冒号需要用英文,且中间需要用英文空格隔开,配置项的开头也要用空格隔开,否则在启动es 的时候会报错(如下)在这里插入图片描述
其它一些配置参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/important-settings.html

  • cluster.name
    当前节点所属集群名称,多个节点如果要组成同一个集群,那么集群名称一定要配置成相同。默认值elasticsearch,生产环境建议根据ES集群的使用目的修改成合适的名字。不要在不同的环境中重用相同的集群名称,否则,节点可能会加入错误的集群。
  • node.name
    当前节点名称,默认值当前节点部署所在机器的主机名,所以如果一台机器上要起多个ES节点的话,需要通过配置该属性明确指定不同的节点名称。
  • path.data
    配置数据存储目录,比如索引数据等,默认值 $ES_HOME/data,生产环境下强烈建议部署到另外的安全目录,防止ES升级导致数据被误删除。
  • path.logs
    配置日志存储目录,比如运行日志和集群健康信息等,默认值 $ES_HOME/logs,生产环境下强烈建议部署到另外的安全目录,防止ES升级导致数据被误删除。
  • bootstrap.memory_lock
    配置ES启动时是否进行内存锁定检查,默认值true。
    ES对于内存的需求比较大,一般生产环境建议配置大内存,如果内存不足,容易导致内存交换到磁盘,严重影响ES的性能。所以默认启动时进行相应大小内存的锁定,如果无法锁定则会启动失败。
    非生产环境可能机器内存本身就很小,能够供给ES使用的就更小,如果该参数配置为true的话很可能导致无法锁定内存以致ES无法成功启动,此时可以修改为false。
  • network.host
    节点对外提供服务的地址以及集群内通信的ip地址,默认值为当前节点所在机器的本机回环地址127.0.0.1 和[::1],这就导致默认情况下只能通过当前节点所在主机访问当前节点。
  • http.port
    配置当前ES节点对外提供服务的http端口,默认 9200
  • transport.port:
    节点通信端口号,默认 9300
  • discovery.seed_hosts
    配置参与集群节点发现过程的主机列表,说白一点就是集群中所有节点所在的主机列表,可以是具体的IP地址,也可以是可解析的域名。
  • cluster.initial_master_nodes
    配置ES集群初始化时参与master选举的节点名称列表,必须与node.name配置的一致。ES集群首次构建完成后,应该将集群中所有节点的配置文件中的cluster.initial_master_nodes配置项移除,重启集群或者将新节点加入某个已存在的集群时切记不要设置该配置项。

四、修改 JVM 参数

修改es 目录下的 config/jvm.options 配置文件,调整 jvm 对内存大小

cd /root/elasticsearch-7.17.3
vim config/jvm.options
-Xms2g
-Xmx2g

在这里插入图片描述
配置建议:
Xms 和 Xmx 设置成一样
Xmx 不要超过机器内存的 50%
不要超过 30GB
关于配置的说明

四、启动ElasticSearch服务

ES不允许使用root账号启动服务,如果你当前账号是root,则需要创建一个专有账户
创建 es 用户来启动es:

adduser es
passwd es
chown es:es -R /root/elasticsearch-7.17.3

# 切换用户
su es
#输入对应的密码
#启动 ElasticSearch, -d 为后台启动
bin/elasticsearch -d

五、启动ElasticSearch服务常见错误解决方案

  1. max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] ES因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除linux系统当中打开文件最大数目的限制,不然ES启动就会抛错:
#切换到root用户
vim /etc/security/limits.conf

末尾添加如下配置:

  *     soft     nofile    65536
  *     hard     nofile    65536
  *     soft     nproc     4096
  *     hard     nproc     4096

如下图所示:在这里插入图片描述

  1. max number of threads [1024] for user [es] is too low, increase to at least [4096] 无法创建本地线程问题,用户最大可创建线程数太小。解决办法:
vim /etc/security/limits.d/20-nproc.conf
# 改为如下配置:
* 	soft 	nproc 	4096
  1. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 最大虚拟内存太小,调大系统的虚拟内存。解决办法:
vim /etc/sysctl.conf
#追加以下内容:
vm.max_map_count=262144
#保存退出之后执行如下命令:
sysctl -p
  1. 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 缺少默认配置,至少需要配置discovery.seed_hosts/discovery.seed_providers/cluster.initial_master_nodes中的一个参数.
  • discovery.seed_hosts: 集群主机列表
  • discovery.seed_providers: 基于配置文件配置集群主机列表
  • cluster.initial_master_nodes: 启动时初始化的参与选主的node,生产环境必填
    解决方法:
vim config/elasticsearch.yml
#添加配置
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]

#或者指定配置单节点(集群单节点)
discovery.type: single-node

六、启动成功

使用 jps -mlvV 查看Java运行中的进程,看到ES 相关的进程,则标识启动成功!

jps -mlvV

在这里插入图片描述
浏览器访问:ip+端口如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1073771.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

R实现地图相关图形绘制

大家好,我是带我去滑雪! 地图相关图形绘制具有许多优点,这些优点使其在各种领域和应用中非常有用。例如:地图相关图形提供了一种直观的方式来可视化数据,使数据更容易理解和分析。通过地图,可以看到数据的空…

来单提醒/客户催单 ----苍穹外卖day9

来单提醒 需求分析 代码开发 注意:前端请求的并不是8080端口;而是先请求Nginx,Nginx进行反向代理以后转发到8080端口 这段代码首先创建了一个orders类用于更新订单状态 并且在更新状态后使用websocket发送给后端提醒 将信息放在map后,使用json的string化方式传给一个接收对象,…

使用wireshark解密ipsec ISAKMP包

Ipsec首先要通过ikev2协议来协商自己后续协商所用的加解密key以及用户数据的esp包用的加解密包。 ISAKMP就是加密过的ike-v2的加密包,有时候我们需要解密这个包来查看协商数据。如何来解密这样的包? 首先导出strongswan协商生成的各种key. 要能导出这些key&#…

“元创新·智生成” 第15届企业数智化学习大会公布嘉宾阵容

2023年是AIGC爆发年,与AI相关的创新应用迅速向各行各业渗透。 在企业培训领域,数字人、元宇宙等正逐渐成为企业在开展人才发展、业务培训等工作的工具,其高效、便捷、在线化、场景化等优势受到企业的热捧。在需求的推动下,企业培…

超实用的微信机器人功能:自动通过好友,自动打招呼,自动回复!!

无需下载软件 多号聚合 高效管理 1 自动通过好友 有新的好友请求时,系统会快速自动通过好友,免得错过客户。 同时能够多个微信设置,以及设置自动通过的时间段,只要还没通过就会等到我们设置的时间段里自动通过 2 自动打招呼 …

图片大小转换(对于图片进行压缩)

传入的是图片途径 import java.io.*; import java.awt.image.BufferedImage; import javax.imageio.ImageIO; import java.util.Base64;// 限制图像大小为4MB public byte[] limitImageSize(File imageFile, int maxSizeInBytes) throws IOException {if (imageFile.length() …

演唱会远景拍摄不清晰,一招秒变神图!

演唱会现场拍摄的照片不清晰,画质很模糊,遇到这种情况的图片,我们可以利用图片处理工具修复清晰。 我们用像素低的手机拍照或者拍摄的物体太远时,往往会拍出很模糊的照片,但是你又没办法再捕捉到刚才那精彩的一幕&…

Maven 依赖管理

Maven 一个核心的特性就是依赖管理。当我们处理多模块的项目(包含成百上千个模块或者子项目),模块间的依赖关系就变得非常复杂,管理也变得很困难。针对此种情形,Maven 提供了一种高度控制的方法。 可传递性依赖发现 …

掌握这3点,企业就能规避收款业务中的合规风险

随着国家政策监管日趋严格,企业合规管理正在受到高度关注。在企业收业务款场景中,银行回单管理容易被忽略,若处理不当,将面临合规风险。具体表现如下: 审计依据不充分 银行回单是企业内部控制和合规管理的重要组成部…

idea新建一个module时,文件夹显示灰色/pom.xml文件显示灰色且中间有条横线

1.问题 2.解决方法 File->Settings->Ignored Files->找到勾选的pom.xml文件,取消勾选,点击ok即可。 3.已解决

使用 Databend Kafka Connect 构建实时数据同步

作者:韩山杰 Databend Cloud 研发工程师 hantmac (Jeremy) GitHub Kafka Connect 介绍 Kafka Connect 是一个用于在 Apache Kafka 和其他数据系统之间可扩展且可靠地流式传输数据的工具。通过将数据移入和移出 Kafka 进行标准化,使得快速定义连接器以在…

VBA技术资料MF68:更改所选区域边框颜色

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…

039:mapboxGL更换地图上的鼠标样式

第039个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中更换地图上的鼠标的样式。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共74行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:htt…

赛事报名分组个人团体赛事小程序开发

基于ThinkPHP和Uniapp开发的赛事报名系统,包含个人报名和团队报名、成绩查询、成绩证书等。 版本:H5版本,目前只支持微信H5报名,公众号授权自动登录。 多动创建:支持多种活动创建,多种活动同时创建&…

【云原生】K8S对外服务之Ingress

目录 一、Ingress 简介1.1Ingress 组成1.3Ingress-Nginx 工作原理 二、部署 nginx-ingress-controller2.1部署ingress-controller Pod及相关资源2.2ingress 暴露服务的方式2.3 采用方式二:DaemonSetHostNetworknodeSelector 三、采用方式二:DeploymentNo…

DAZ To UMA⭐五.模型在Blender中的配置教程

文章目录 🟥 创建符合UMA的材质球属性1️⃣ 合并材质球🎁 选择材质球🎁 合并材质球🎁 删除多余材质球2️⃣ 将身体按材质球拆分🎁 进入身体编辑模式🎁 全选身体🎁 按材质分割身体🎁 重命名不同部位3️⃣ 将其余部位进行拆分🟧 更正选择缩放🟩 更新骨骼结构…

VMware和别的服务器 ,组建局域网那些事 。

利用VMware ,实现组件局域网、有可能会受限于WiFi(路由器) 。 通常不会,除非做了网关设置 相关知识: 禁用局域网隔离(LAN Isolation): 某些路由器提供了一个选项,允许您禁…

找不到msvcp120.dll怎么办?msvcp120.dll修复方法分享!

有时候,当你想运行某个程序时,可能会遇到一个错误提示:“找不到msvcp120.dll”。这个错误提示意味着你的计算机缺少了一个名为msvcp120.dll的动态链接库文件。当计算机无法找到这个文件时,你将无法正常运行或安装某些应用程序。下…

【Java题】模拟下载进度条

目录 一:题目 二:解析 1.匿名内部类 2.lambda 三:结果 一:题目 使用匿名内部类,模拟下载过程进度条,体会回调函数的作用。 1. 定义 DownloadListener 接口,包含一个包含 void progressU…

【轻松玩转MacOS】安全隐私篇

引言 这一篇将介绍如何保护MacOS的安全,包括如何设置密码,使用防火墙,备份数据等重要环节,避免因不慎操作或恶意攻击带来的安全风险,让你的MacOS之旅更安心、更放心。 一、设置密码:保护你的MacOS的第一道…