Es搭建——单节点——Linux
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" ]; thenJAVA="$ES_JAVA_HOME/bin/java"JAVA_TYPE="ES_JAVA_HOME"
elif [ ! -z "$JAVA_HOME" ]; then# fallback to JAVA_HOMEecho "warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME" >&2JAVA="$JAVA_HOME/bin/java"JAVA_TYPE="JAVA_HOME"
else# use the bundled JDK (default)if [ "$(uname -s)" = "Darwin" ]; then# macOS has a different structureJAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"elseJAVA="$ES_HOME/jdk/bin/java"fiJAVA_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:$PATHif [ -x "$JAVA_HOME/bin/java" ]; thenJAVA="xxxx(es安装目录)/es/jdk/bin/java"
elseJAVA=`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
相关文章:
Es搭建——单节点——Linux
Es搭建——单节点——Linux 一、安装 下载安装包: 官网下载地址:https://www.elastic.co/downloads/elasticsearch 上传包到linux 切换到安装目录下 解压:tar -zxvf elasticsearch-7.17.1-linux-x86_64.tar.gz 重命名安装文件夹 mv elastics…...
Python自动化测试之线上流量回放:录制、打标、压测与平台选择
在自动化测试中,线上流量回放是一项关键技术,可以模拟真实用户的请求并重现线上场景,验证系统的性能和稳定性。本文将介绍Python自动化测试中的线上流量回放技术,并提供实战代码,帮助你了解流量的录制、打标、压测发起…...
k-Means聚类算法 HNUST【数据分析技术】(2025)
1.理论知识 K-means算法,又称为k均值算法。K-means算法中的k表示的是聚类为k个簇,means代表取每一个聚类中数据值的均值作为该簇的中心,或者称为质心,即用每一个的类的质心对该簇进行描述。K-Means算法接受参数K;然后将…...
STM32学习之 按键/光敏电阻 控制 LED/蜂鸣器
STM32学习之 按键/光敏电阻 控制 LED/蜂鸣器 1、按键控制 LED 按键:常见的输入设备,按下导通,松手断开 按键抖动:由子按键内部使用的是机械式弹簧片来进行通断的、所以在按下和松手的瞬间会伴随有一连串的抖动 按键控制LED接线图: 要有工程…...
VUE前端实现防抖节流 Lodash
方法一:采用Lodash工具库 Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。 (1)采用终端导入Lodash库 $ npm i -g npm $ npm i --save lodash (2)应用 示例:搜索框输入防抖 在这个示例…...
Ubuntu20.04 交叉编译Qt5.15.15 for rk3588
rk3588编译Qt搞了我大半年了,一直困惑特别鸣谢:qq1033878279的网友远程帮我编译演示了一遍。 一、vmware 安装基础工具 sudo apt install -y build-essential net-tools openssh-server vim openssl libssl-dev 二、vmware 下载 cmake和Qt源码 下载cm…...
Unity编译Android apk包进度奇慢或gradle报错的解决方案
最近遇到Unity编译Android apk进度卡在"Calling IPostGenerateGradleAndroidProject callbacks"进度一直不变,如下图: 最后提示编译失败,类似错误如下: Picked up JAVA_TOOL_OPTIONS: -Dfile.encodingUTF-8FAILURE: Bu…...
【Qt】多元素控件:QListWidget、QTableWidget、QTreeWidget
目录 QListWidget 核心属性: 核心方法: 核心信号: 例子: QListWidgetItem QTableWidget 核心方法: 核心信号 QTableWidgetItem 例子: QTreeWidget 核心方法: 核心信号:…...
Docker基础知识 Docker命令、镜像、容器、数据卷、自定义镜像、使用Docker部署Java应用、部署前端代码、DockerCompose一键部署
目录 1.Docker 2.镜像和容器 2.1 定义 2.2 开机自动启动容器 3.docker命令 3.1 docker run 参数说明 3.2 常见命令 3.3 命令演示 3.4 命令别名 4.Docker命令详解 5.数据卷 5.1 定义 5.2 数据卷的相关命令 5.3 数据卷命令 5.4 挂载本地目录或文件 5.4.1 定义 5.4.2 mysql容器目录…...
Qt For Android之环境搭建(Qt 5.12.11 Qt下载SDK的处理方案)
文章目录 一、Qt For Android运行示例二、个人理解及情况解析三、配置Android相关配置项3.1 安装简述3.2 安装Qt1.安装Qt第一步:启动Qt安装包程序2.Qt账号(注册)登录3.了解Qt开源使用义务4.指定Qt安装目录5.选择Qt安装内容6.接受“许可协议”…...
低代码开发中 DDD 领域驱动的页面权限控制
在低代码开发的领域中,应用安全与灵活性是两大关键考量因素。领域驱动设计(DDD)作为一种在软件设计领域广泛应用且颇具影响力的方法论,正逐渐在低代码开发的页面权限控制方面展现出其独特的价值与潜力。本文旨在客观地探讨如何借助…...
如果你的网站是h5网站,如何将h5网站变成小程序-除开完整重做方法如何快速h5转小程序-h5网站转小程序的办法-优雅草央千澈
如果你的网站是h5网站,如何将h5网站变成小程序-除开完整重做方法如何快速h5转小程序-h5网站转小程序的办法-优雅草央千澈 h5如何转小程序 如果当年你们开发网站是用的h5但是没有开发小程序,也没有使用uniapp这样的混开框架,但是目前根据业务需…...
docker redis安装
一.镜像拉取 docker pull redis:5.0新建文件 touch /home/redis/redis.conf touch /home/redis/redis_6379.pid # bind 192.168.1.100 10.0.0.1 # bind 127.0.0.1 ::1 #bind 127.0.0.1protected-mode noport 6379tcp-backlog 511requirepass roottimeout 0tcp-keepali…...
apisix的hmac-auth认证
目录 1、apisix的hmac认证Authorization头信息 2、signature的lua生成源码 3、java生成签证的简单示例 4、postman调用如下 apisix的hmac-auth认证,介绍可以看官方文档 hmac-auth | Apache APISIX -- Cloud-Native API Gateway 照着官方文档,发现生…...
elementPlus消息组件多按钮案例
let customClass zsl-el-message-box efb.messageBox({title: 操作提示,showConfirmButton: false,customClass,message: efb.VNode(div, null, [efb.VNode(style, null, .${customClass} .el-message-box__message {width: 100%;}),efb.VNode(div, null, hello world),efb.VN…...
计算机视觉目标检测-2
文章目录 摘要abstract1.Fast R-CNN1.1 RoI pooling1.2 End-to -End model1.3 多任务损失-Multi-task loss1.4 R-CNN、SPPNet、Fast R-CNN效果比对 2.Faster R-CNN2.1 RPN原理2.2 效果对比2.3 Faster R-CNN总结 3.总结4.参考文献 摘要 本周学习了Fast R-CNN和Faster R-CNN算法…...
爬虫数据存储:Redis、MySQL 与 MongoDB 的对比与实践
爬虫的核心任务是从网络中提取数据,而存储这些数据是流程中不可或缺的一环。根据业务需求的不同,存储的选择可能直接影响数据处理的效率和开发体验。本文将介绍三种常用的存储工具——Redis、MySQL 和 MongoDB,分析它们的特点,并提…...
深入解析MySQL索引结构:从数组到B+树的演变与优化
前言: 在数据库查询中,索引是一种关键的性能优化工具。然而,索引的失效可能导致查询效率大幅下降。为了更好地理解索引的工作原理及规避其失效,深入了解索引结构的演变过程尤为重要。 MySQL 的索引数据结构从简单到复杂࿰…...
【疑难杂症】 HarmonyOS NEXT中Axios库的响应拦截器无法拦截424状态码怎么办?
今天在开发一个HarmonyOS NEXT的应用的时候,发现http接口如果返回的状态码是424时,我在axios中定义的拦截器失效了。直接走到了业务调用的catch中。 问题表现: 我的拦截器代码如下: 解决办法: 先说解决办法ÿ…...
jmeter并发用户逐步递增压测找性能拐点
jmeter并发用户逐步递增压测找性能拐点 目的: 使用逐层递增的并发压力进行测试,找到单功能的性能拐点(一般需要包含四组测试结果,拐点前一组,拐点一组,拐点后两组),统计响应时间、…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
加密通信 + 行为分析:运营商行业安全防御体系重构
在数字经济蓬勃发展的时代,运营商作为信息通信网络的核心枢纽,承载着海量用户数据与关键业务传输,其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级,传统安全防护体系逐渐暴露出局限性&a…...
