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

powershell 复制代码
cd  config
vi  elasticsearch.yml

集群相关设置

powershell 复制代码
-------------------------------Cluster-------------------------------
cluster.name: 设置你的集群名称(例es-test)

节点相关设置

powershell 复制代码
-------------------------------Node----------------------------------
node.name: 设置你的节点名称(例estest-node-1)

网络相关设置

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

集群发现相关设置

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

三:启动ES

1、测试启动服务

powershell 复制代码
cd  xxxx(es安装目录)/es/bin
./elasticsearch

2、后台启动

powershell 复制代码
./elasticsearch -d

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

java 复制代码
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"分支

powershell 复制代码
# 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

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

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

powershell 复制代码
cd   xxxx(es安装目录)/es/bin
vi ./elasticsearch       【此处需再确认---方法是否正确】
powershell 复制代码
#添加以下配置
# 将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

powershell 复制代码
cd  xxxx(es安装目录)/es/bin
vi  elasticsearch-env   【此处需再确认---方法是否正确,修改判断后,仍然没有ES_HOME,试下会成功吗】
java 复制代码
# 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

powershell 复制代码
cd  xxxx(es安装目录)/es/bin
vi  elasticsearch-env 

首行代码set -e -o pipefail下

添加JAVA_HOME指向es自带jdk的位置:export JAVA_HOME =xxxx(es安装目录)/es/jdk。

powershell 复制代码
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失败

powershell 复制代码
java.lang.RuntimeException: can not run elasticsearch as root

报错原因

es因为安全问题拒绝使用root用户启动
解决方案:

添加系统用户用来启动es

powershell 复制代码
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

powershell 复制代码
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是一个常用的值,可根据需求调整,评估可能对系统稳定性造成的影响
解决方案:

永久修改该配置

powershell 复制代码
#切换至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

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

4、其他问题待更新

基本解决思路:先使用 ./elasticsearch 方式启动,找到日志的error关键字,百度相关报错信息

五、判断是否启动成功

方法1、检查es进程

powershell 复制代码
ps -ef|grep elasticsearch

方法2、访问url

http://部署该节点的服务器IP:9200/

六、设置es的用户名密码

编辑elasticsearch.yml配置文件

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

设置用户名密码

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

再次url再次访问验证是否生效,出现弹窗则生效

参考:
https://blog.csdn.net/smilehappiness/article/details/118466378
七、单节点关闭es

1、若后台启动,找到对应进程号,直接杀进程即可

powershell 复制代码
ps -ef|grep elasticsearch
kill -9 进程号

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

相关推荐
成长之路51411 分钟前
【面板数据】中国与世界各国新能源汽车进出口数据-分类别与不分类别(2017-2024年)
大数据·汽车
说私域19 分钟前
传统企业数字化转型:以定制开发开源 AI 智能名片 S2B2C 商城小程序源码为核心的销售环节突破
大数据·人工智能·开源
G皮T5 小时前
【Elasticsearch】正排索引、倒排索引(含实战案例)
大数据·elasticsearch·搜索引擎·kibana·倒排索引·搜索·正排索引
小葛呀7 小时前
互联网大数据求职面试:从Zookeeper到数据挖掘的技术探讨
大数据·redis·zookeeper·面试·互联网·数据采集·技术栈
T06205148 小时前
【面板数据】A股上市公司注册地所在地数据集(1991-2023年)
大数据
zh_199959 小时前
Spark面试精讲(上)
java·大数据·数据仓库·python·spark·数据库开发·数据库架构
淡酒交魂10 小时前
「Flink」Flink项目搭建方法介绍
大数据·数据挖掘·数据分析
袋鼠云数栈10 小时前
当空间与数据联动,会展中心如何打造智慧运营新范式?
大数据·人工智能·信息可视化
Python当打之年10 小时前
【62 Pandas+Pyecharts | 智联招聘大数据岗位数据分析可视化】
大数据·python·数据分析·pandas·数据可视化
G皮T10 小时前
【Elasticsearch】Elasticsearch 近实时高速查询原理
大数据·elasticsearch·搜索引擎·全文检索·倒排索引·搜索·nrt