【centos7安装ElasticSearch】

概述

最近工作中有用到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.hqwc.cn/news/129985.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟桌宠模拟器:VPet-Simulator,一个开源的桌宠软件, 可以内置到任何WPF应用程序

虚拟桌宠模拟器:VPet-Simulator,一个开源的桌宠软件, 可以内置到任何WPF应用程序 虚拟桌宠模拟器 一个开源的桌宠软件, 可以内置到任何WPF应用程序 获取虚拟桌宠模拟器 OnSteam(免费) 或 通过[Nuget]内置到你的WPF应用程序 1.虚拟桌宠模拟器 详细介绍 …

这短短 6 行代码你能数出几个bug?

前言:本文仅仅只是分享笔者一年前见到的诡异代码,大家可以看看乐子,随便数一数一共有多少个bug,这数bug多少还是要点水平的 在初学编程的时候,写的第一个代码大多都是 hello world,可是就算是 hello world…

GNU和Linux的关系、 Linux的发行版本、CentOs和RedHat的区别

GNU和Linux的关系 其实,我们通常称之为的"Linux"系统,相对更准确的名称应该称为“GNU/Linux”系统! 一个功能完全的操作系统需要许多不同的组成部分,其中就包括内核及其他组件;而在GNU/Linux系统中的内核就…

Flutter学习笔记

此篇文章用来记录学习Flutter 和 Dart 相关知识 零.Dart基本数据类型 Dart 是一种静态类型的编程语言,它提供了一系列基本数据类型,用于存储和操作不同种类的数据。以下是 Dart 中的一些基本数据类型以及它们的详细介绍: 1. 整数类型&#…

SpringCloud源码探析(十)-Web消息推送

1.概述 消息推送在日常使用中的场景比较多,比如有人点赞了我的博客或者关注了我,这时我就会收到一条推送消息,以此来吸引我点击或者打开应用。消息推送的方式主要分为两种:web消息推送和移动端消息推送。它将所要发送的信息&…

【2023研电赛】安谋科技企业命题特别奖:面向独居老人的智能居家监护系统

本文为2023年第十八届中国研究生电子设计竞赛安谋科技企业命题特别奖分享,参加极术社区的【有奖活动】分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来领!,分享2023研电赛作品扩大影响力,更有丰富电子礼品等你来…

Python爬虫抓取和分析市场数据

在房地产市场,即时掌握和分析数据是非常重要的,因为这可以帮助投资者、房地产中介以及政府等各方做出更明智的决策。本文将介绍如何使用Python爬虫来抓取和分析房地产市场数据,帮助您获取最新的房地产数据并进行深入的分析。通过使用Python爬…

Flutter的Platform介绍-跨平台开发,如何根据不同平台创建不同UI和行为

文章目录 Flutter跨平台概念介绍跨平台开发平台相关性Platform ChannelPlatform-specific UIPlatform Widgets 如何判断当前是什么平台实例 Platform 类介绍获取当前平台的名称检查当前平台其他属性 利用flutter设计跨Android和IOS平台应用的技巧1. 遵循平台的设计准则2. 使用平…

如何设计自动化测试框架?

一、什么是自动化测试框架 自动化测试框架是一个基于软件工程原则和最佳实践的结构化系统,可以帮助测试人员更有效地编写、维护和执行自动化测试脚本。它通常包括多个模块和组件,如测试用例管理、测试数据管理、测试脚本编写、测试报告生成等。 自动化…

针对FTP的SSRF攻击

前言 ssrf中常用的协议有http,gopher等。但http协议在ssrf中的用处也仅限于访问内网页面,在可以crlf的情况下才有可能扩大攻击范围。gopher协议比较特殊,在部分环境下支持此协议,如:curl。但还有一些环境就不支持了&a…

2020架构真题(四十六)

、以下关于操作系统微内核架构特征的说法,不正确的是()。 微内核的系统结构清晰,利于协作开发微内核代码量少,系统具有良好的可移植性微内核有良好的的伸缩性和扩展性微内核功能代码可以互相调用,性能很高…

校园跑腿小程序还受欢迎不?

校园跑腿小程序是如今大学生群体中越来越受欢迎的一种服务模式。它为大学生提供了一个便捷的平台,使他们能够在校园内完成各类生活事务,如购买食品、快递取送、打印复印等。这种形式的服务在过去几年里在全球范围内迅速发展,并取得了巨大的成…