Es搭建——单节点——Linux

news2024/12/26 12:24:42

Es搭建——单节点——Linux

一、安装
下载安装包:
官网下载地址:https://www.elastic.co/downloads/elasticsearch
上传包到linux 切换到安装目录下
解压:tar -zxvf elasticsearch-7.17.1-linux-x86_64.tar.gz
重命名安装文件夹 mv elasticsearch-7.17.1 es
cd xxxx(es安装目录)/es
二、配置文件修改
注意:冒号后面有个空格,否则会导致配置文件格式错误,启动时报错
1、elasticsearch.yml

cd  config
vi  elasticsearch.yml

集群相关设置

-------------------------------Cluster-------------------------------
cluster.name: 设置你的集群名称(例es-test)

节点相关设置

-------------------------------Node----------------------------------
node.name: 设置你的节点名称(例estest-node-1)

网络相关设置

-------------------------------Network----------------------------------
network.host: 部署该节点的服务器IP
http.port: 9200 (es服务对外的端口,默认即可) (设置0.0.0.0时,允许任何ip访问)

集群发现相关设置

-------------------------------Discovery----------------------------------
#初始主节点列表,集群自动发现选举master
cluster.initial_master_nodes: Node中设置的该节点名称(例estest-node-1)

三:启动ES
1、测试启动服务

cd  xxxx(es安装目录)/es/bin
./elasticsearch

2、后台启动

./elasticsearch -d

四:依次解决报错
1、es本身自带的jdk版本与服务器所安装jdk版本冲突

warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
Future versions of Elasticsearch will require Java 11; your Java version from [xxxxx/jdk1.8.0/jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set.

报错原因:
elasticsearch默认启动时
先找系统安装的jdk,若未安装jdk则使用es自带的jdk,系统无需再安装jdk
若系统已安装jkd且与es所需jdk版本不一致,则es启动报错jdk版本问题
见es/bin 中的elasticsearch-env 的jdk判断代码
报错信息和echo输出内容符合,说明走的是:"elif [ ! -z “$JAVA_HOME” ]; then"分支

# now set the path to java
if [ ! -z "$ES_JAVA_HOME" ]; then
  JAVA="$ES_JAVA_HOME/bin/java"
  JAVA_TYPE="ES_JAVA_HOME"
elif [ ! -z "$JAVA_HOME" ]; then
  # fallback to JAVA_HOME
  echo "warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME" >&2
  JAVA="$JAVA_HOME/bin/java"
  JAVA_TYPE="JAVA_HOME"
else
  # use the bundled JDK (default)
  if [ "$(uname -s)" = "Darwin" ]; then
    # macOS has a different structure
    JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
  else
    JAVA="$ES_HOME/jdk/bin/java"
  fi
  JAVA_TYPE="bundled JDK"
fi

即:【补流程图】

解决方案:
系统不重新安装es所需jdk版本时,使用es内置jdk
方法a、配置 ES_JAVA_HOME路径
因为没有识别到ES_JAVA_HOME,故需配置ES_JAVA_HOME

#编辑配置文件
vi ~/.bashrc
#在末尾添加以下内容
export ES_JAVA_HOME=xxxx(es安装目录)/es/jdk
#使命令生效
source ~/.bashrc
#检查配置是否成功
echo $ES_JAVA_HOME

方法b、修改配置 指定系统的JAVA_HOME为es的jdk路径

cd   xxxx(es安装目录)/es/bin
vi ./elasticsearch       【此处需再确认---方法是否正确】
#添加以下配置
# 将jdk修改为es中自带jdk的配置目录
export JAVA_HOME=xxxx(es安装目录)/es/jdk
export PATH=$JAVA_HOME/bin:$PATH

if [ -x "$JAVA_HOME/bin/java" ]; then
        JAVA="xxxx(es安装目录)/es/jdk/bin/java"
else
        JAVA=`which java`
fi

方法c、删除系统jdk的判断,直接启用Es自带的java

cd  xxxx(es安装目录)/es/bin
vi  elasticsearch-env   【此处需再确认---方法是否正确,修改判断后,仍然没有ES_HOME,试下会成功吗】
# now set the path to java
if [ "$(uname -s)" = "Darwin" ]; then
# macOS has a different structure
JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
else
JAVA="$ES_HOME/jdk/bin/java"
fi
JAVA_TYPE="bundled jdk"

方法d、将启动时系统jdk路径指定为es自带的jdk

cd  xxxx(es安装目录)/es/bin
vi  elasticsearch-env 

首行代码set -e -o pipefail下
添加JAVA_HOME指向es自带jdk的位置:export JAVA_HOME =xxxx(es安装目录)/es/jdk。

set -e -o pipefail
#添加下行配置:使用es自带的jdk
export JAVA_HOME =xxxx(es安装目录)/es/jdk

参考:
https://blog.csdn.net/smilehappiness/article/details/118466378
https://www.cnblogs.com/zhuhuibiao/p/16446105.html
2、root用户启动es失败

java.lang.RuntimeException: can not run elasticsearch as root

报错原因
es因为安全问题拒绝使用root用户启动
解决方案:
添加系统用户用来启动es

groupadd es 
useradd es -g es -p password # -g 指定组 -p 密码
chown es:es -R xxxx(es安装目录)/es/ # -R 处理指定目录以及其子目录下的所有文件
#切换到es用户
su es
#启动es
./elasticsearch

参考:
https://blog.csdn.net/fwdwqdwq/article/details/124241935
3、max virtual memory areas vm.max_map_count [65530] is too low

ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

报错原因:
Elasticsearch在启动时会检查操作系统的配置,若vm.max_map_count的值太低,就会报错。
vm.max_map_count是Linux系统中一个内核参数,它限制了每个进程可以拥有的内存区域(memory areas)数量。Elasticsearch可能需要比默认更多的内存区域,如果这个值太低,Elasticsearch就会报错。
注:262144是一个常用的值,可根据需求调整,评估可能对系统稳定性造成的影响
解决方案:
永久修改该配置

#切换至root用户
su root
#编辑/etc/sysctl.conf文件
vi /etc/sysctl.conf
#添加配置
vm.max_map_count=262144
#保存退出后
#刷新配置文件使改动立即生效
sudo sysctl -p

参考:
https://blog.csdn.net/jane_xing/article/details/139790289

#继续切换es用户,重新启动es
su es
cd  xxxx(es安装目录)/es/bin
./elasticsearch

4、其他问题待更新
基本解决思路:先使用 ./elasticsearch 方式启动,找到日志的error关键字,百度相关报错信息

五、判断是否启动成功
方法1、检查es进程

ps -ef|grep elasticsearch

方法2、访问url
http://部署该节点的服务器IP:9200/

六、设置es的用户名密码
编辑elasticsearch.yml配置文件

vi xxxx(es安装目录)/es/config/elasticsearch.yml
#在末尾添加下面两行
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
#保存退出后,重启es(重启后配置才生效)

设置用户名密码

cd  xxxx(es安装目录)/es/bin
elasticsearch-setup-passwords interactive
#依次设置elastic、kibana、logstash等的访问密码

再次url再次访问验证是否生效,出现弹窗则生效
参考:
https://blog.csdn.net/smilehappiness/article/details/118466378
七、单节点关闭es
1、若后台启动,找到对应进程号,直接杀进程即可

ps -ef|grep elasticsearch
kill -9 进程号

2、若控制台启动,直接ctrl+c

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

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

相关文章

动态规划<四> 回文串问题(含对应LeetcodeOJ题)

目录 引例 其余经典OJ题 1.第一题 2.第二题 3.第三题 4.第四题 5.第五题 引例 OJ 传送门Leetcode<647>回文子串 画图分析&#xff1a; 使用动态规划解决 原理&#xff1a;能够将所有子串是否是回文的信息保存在dp表中 在使用暴力方法枚举出所有子串&#xff0c;是…

Log4j1.27配置日志输出级别不起效

起因&#xff1a;构建独立版本debezuim使用时&#xff0c;日志一直打印debug信息。 原因&#xff1a;包冲突问题&#xff0c;进行排包操作。 参考log4j日志级别配置完成后不生效 系统一直打印debug日志_log4j不起作用-CSDN博客 1、application.properties logging.configc…

探索Flink动态CEP:杭州银行的实战案例

摘要&#xff1a;本文撰写自杭州银行大数据工程师唐占峰、欧阳武林老师。将介绍 Flink 动态 CEP的定义与核心概念、应用场景、并深入探讨其技术实现并介绍使用方式。主要分为以下几个内容&#xff1a; Flink动态CEP简介 Flink动态CEP的应用场景 Flink动态CEP的技术实现 Flin…

Git多人协作流程与git命令

目录 一、拉取&#xff1a;从仓库到本地1、第一次拉取2、后续的拉取 二、上传&#xff1a;从本地到仓库三、git commit版本信息标注 一、拉取&#xff1a;从仓库到本地 1、第一次拉取 # clone项目 git clone xxx2、后续的拉取 第一次拉取是指本地为空&#xff0c;如果本地已…

前端:改变鼠标点击物体的颜色

需求&#xff1a; 需要改变图片中某一物体的颜色&#xff0c;该物体是纯色&#xff1b; 鼠标点击哪个物体&#xff0c;哪个物体的颜色变为指定的颜色&#xff0c;利用canvas实现。 演示案例 代码Demo <!DOCTYPE html> <html lang"en"><head>&l…

[Unity] ShaderGraph动态修改Keyword Enum,实现不同效果一键切换

上次更新已然四个月前&#xff0c;零零散散的工作结束&#xff0c;终于有时间写点东西记录一下~ 实际使用中&#xff0c;经常会碰到同一个对象需要切换不同的材质&#xff0c;固然可以通过C#直接替换材质球。 或者在ShaderGraph中使用Comparison配合Branch实现切换&#xff…

电脑出现 0x0000007f 蓝屏问题怎么办,参考以下方法尝试解决

电脑蓝屏是让许多用户头疼的问题&#xff0c;其中出现 “0x0000007f” 错误代码更是较为常见且棘手。了解其背后成因并掌握修复方法&#xff0c;能帮我们快速恢复电脑正常运行。 一、可能的硬件原因 内存问题 内存条长时间使用可能出现物理损坏&#xff0c;如金手指氧化、芯片…

深度学习中的并行策略概述:1 单GPU优化

深度学习中的并行策略概述&#xff1a;1 单GPU优化 1 Training Larger Models on a Single GPU 在讨论模型的“扩展”时&#xff0c;往往会想到在多个GPU或多台机器上进行模型训练。不过&#xff0c;即便是在单个GPU上&#xff0c;也存在多种方法来训练更大规模的模型并提升…

数据结构(哈希表(中)纯概念版)

前言 哈希表&#xff08;Hash Table&#xff09;是计算机科学中的一个基础而重要的数据结构&#xff0c;它广泛评估各种算法和系统中&#xff0c;尤其是在需要快速查找、插入和删除操作的场景中。由于其O( 1)的平均时间复杂度&#xff0c;存储表在性能要求较高的应用中表现得非…

centos7的磁盘扩容

1、首先&#xff0c;确认你的磁盘是否已经正确识别并添加了新的空间。你可以使用lsblk或fdisk -l命令来查看 lsblk fdisk /dev/vda 2、我的情况是这样的&#xff0c;误操作将盘扩展为物理卷轴了&#xff0c;所以说是这样呈现的&#xff0c;如果有我的那种情况请先删除物理卷轴…

uniapp 微信小程序 页面部分截图实现

uniapp 微信小程序 页面部分截图实现 ​ 原理都是将页面元素画成canvas 然后将canvas转化为图片&#xff0c;问题是我页面里边本来就有一个canvas&#xff0c;ucharts图画的canvas我无法画出这块。 ​ 想了一晚上&#xff0c;既然canvas最后能转化为图片&#xff0c;那我直接…

ubuntu笔记

1.系统下载与虚拟机设置 系统下载https://cn.ubuntu.comhttps://releases.ubuntu.com 虚拟机设置: 桥接模式 在桥接模式下, 虚拟出来的操作系统就像是局域网中的一台独立的主机, 它可以访问网内任何一台机器主机网卡和虚拟网卡的IP地址处于同一个网段, 子网掩码、网关、DNS等…

音视频入门基础:AAC专题(13)——FFmpeg源码中,获取ADTS格式的AAC裸流音频信息的实现

音视频入门基础&#xff1a;AAC专题系列文章&#xff1a; 音视频入门基础&#xff1a;AAC专题&#xff08;1&#xff09;——AAC官方文档下载 音视频入门基础&#xff1a;AAC专题&#xff08;2&#xff09;——使用FFmpeg命令生成AAC裸流文件 音视频入门基础&#xff1a;AAC…

开发高效实时美颜工具:从美颜SDK到直播APP插件的全流程解析

今天&#xff0c;小编将以美颜SDK为核心&#xff0c;从开发、集成到优化的全流程&#xff0c;深入解析高效实时美颜工具的实现路径。 一、美颜SDK的核心功能与技术构成 美颜SDK是实时美颜技术的核心模块&#xff0c;承担着图像处理和效果呈现的重任。其主要功能包括&#xff…

用 gdbserver 调试 arm-linux 上的 AWTK 应用程序

很多嵌入式 linux 开发者都能熟练的使用 gdb/lldb 调试应用程序&#xff0c;但是还有不少朋友在调试开发板上的程序时&#xff0c;仍然在使用原始的 printf。本文介绍一下使用 gdbserver 通过网络调试开发板上的 AWTK 应用程序的方法&#xff0c;供有需要的朋友参考。 1. 下载 …

20241225在ubuntu22.04.5下使用smartmontools命令查看ssd的寿命

20241225在ubuntu22.04.5下使用smartmontools命令查看ssd的寿命 2024/12/25 15:10 rootrootrootroot-ThinkBook-16-G5-IRH:~$ sudo apt install smartmontools rootrootrootroot-ThinkBook-16-G5-IRH:~$ sudo fdisk -l Disk /dev/nvme0n1: 3.73 TiB, 4096805658624 bytes, 800…

ASP.NET |日常开发中定时任务详解

ASP.NET &#xff5c;日常开发中定时任务详解 前言一、定时任务的概念与用途1.1 定义1.2 应用场景 二、在ASP.NET中实现定时任务的方式2.1 使用System.Timers.Timer2.2 使用Quartz.NET 三、定时任务的部署与管理3.1 部署考虑因素3.2 管理与监控 结束语优质源码分享 ASP.NET &am…

整车厂如何规划构建汽车集成安全团队的软件研发能力

&#xff08;一&#xff09;、汽车集成安全团队职责 汽车集成安全团队肩负着保障汽车整体安全性的重任&#xff0c;从多个维度守护驾乘人员安全与车辆稳定运行&#xff0c;其主要职责如下&#xff1a; 功能安全管理 标准遵循与流程制定&#xff1a;严格依据ISO 26262等功能安…

使用 Python 创建多栏 Word 文档 – 详解

目录 引言 一、工具与安装 二、Python 在 Word 中创建简单的多栏布局 三、Python 在 Word 文档的栏间添加分隔线 四、Python 从Word文档的指定位置开启多栏设置 五、Python 为多栏 Word 文档的各栏添加页码 引言 在文档设计中&#xff0c;排版不仅决定了内容的呈现方式&…