跳至主要內容

ElasticSearch安装

牧歌...大约 4 分钟

ElasticSearch安装

官网下载Linux对应的版本open in new window, 把文件上传到服务器。

image.png|950
image.png|950

解压 tar -zxvf elasticsearch-8.14.1-linux-x86_64.tar.gz

image.png|650
image.png|650

ElasticSearch文件目录的含义

目录含义
bin可执行文件目录
config配置文件目录
jdkJAVA工具包
lib第三方依赖库
logs输出日志目录
modules依赖模块目录
plugins插件目录
data数据存储目录

1.新建一个用户(处于安全考虑elasticsearch 不允许以root用户运行)

# 创建用户
useradd es
# 为用户修改密码
passwd es

2.修改配置文件

# 编辑jvm.options
vim jvm.options

vim elasticsearch.yml

进入elasticsearch目录下的 elasticsearch.yml修改如下属性: cluster.name:集群名称,根据自己业务启个合适的名字 node.name:给节点起个名字,一般使用node-1node-2 、… path.data:数据存放的位置,比如:/home/apps/elasticsearch/datapath.logs:日志存放的位置,比如:/home/apps/elasticsearch/logsnetwork.host:配置成本机 IP 地址,用于集群机器之间相互通信。默认只允许本机访问,修改为0.0.0.0后则可以远程访问 http.port:ES 服务访问的端口号,比如:9200discovery.seed_hosts:配置为 master 候选者节点。如果要与其他节点组成集群,这里必须配置。比如:["10.20.1.29", "10.20.0.91", "10.20.0.93"]cluster.initial_master_nodes:首次启动集群时,配置主节点的候选节点,该配置里的节点都是候选节点。比如:["node-1", "node-2", "node-3"]

image.png|650
image.png|650
image.png|650
image.png|650
image.png|650
image.png|650
image.png|650
image.png|650

刚才指定了数据目录位置,还有日志目录位置,这两个位置根据个人习惯即可,接下来创建文件夹并修改权限

# 创建文件夹
mkdir -p /home/apps/elasticsearch/data
# 修改文件夹所属用户
chown -R es:es /home/apps/elasticsearch/data
# 创建文件夹
mkdir -p /home/apps/elasticsearch/logs
# 修改文件夹所属用户
chown -R es:es /home/apps/elasticsearch/logs

启动 ES

不过一般会出现如下 3 个错误,一个个搜索解决就行:

  • 不能以 root 用户启动 ES,所以在启动之前要先创建一个系统用户,然后su xxxxxx切换到该用户去启动。 将 安装的 elasticsearch 文件夹授权给es用户,然后切换为es用户启动
chown -R es:es /home/apps/elasticsearch
# 登录es用户,启动
su es
cd /home/apps/elasticsearch/bin/
./elasticsearch
  • 虚拟内存不够,报错如下:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 此时需要修改sysctl.conf文件,vim /etc/sysctl.conf进入文件,调大。
vm.max_map_count=655360

重启使配置生效sysctl -p

  • 可操作性的文件句柄数不够,报错如下:max file descriptors [65535] for elasticsearch process is too low 进入文件vim /etc/security/limits.conf,调大句柄数。
* hard nofile 65536
* soft nofile 65536
image.png|350
image.png|350
  • 本地没有那么大内存Native memory allocation (mmap) failed to map 920649728 bytes.
image.png|650
image.png|650
  • received plaintext http traffic on an https channel, closing connectionES8默认开启了 ssl 认证
image.png|650
image.png|650

启动成功效果

image.png|650
image.png|650
# Ww8fL6qh_ojdHreEhrCP
bin/elasticsearch-reset-password -u elastic

eyJ2ZXIiOiI4LjE0LjAiLCJhZHIiOlsiMTAuNDIuMC4wOjkyMDAiXSwiZmdyIjoiYzRiNmRmZjAxYTQ0NWRlMmFhZWNmZWI2MzA5NThkNGY5YjI3NTI2YzhjYmM2YzVjZjVmMmE3ZGE0ZGJjZWRiMiIsImtleSI6InNkYWZtNUFCWUs1RFR1RkFnbGhzOnpyZmxLRGZzUndLeENORlBtMU5vTmcifQ==

eyJ2ZXIiOiI4LjE0LjAiLCJhZHIiOlsiMTAuNDIuMC4wOjkyMDAiXSwiZmdyIjoiYzRiNmRmZjAxYTQ0NWRlMmFhZWNmZWI2MzA5NThkNGY5YjI3NTI2YzhjYmM2YzVjZjVmMmE3ZGE0ZGJjZWRiMiIsImtleSI6InM5YWZtNUFCWUs1RFR1RkFnbGh5Om9NYWxFWDB6Unlhb1pFTWxoeVhsVXcifQ==

访问一下看看

image.png|650
image.png|650

上述启动命令默认是前台启动,窗口关闭后,将会退出,如果需要后台启动,则输入以下命令

./elasticsearch -d

解决es强依赖jdk问题

由于es和jdk是一个强依赖的关系,所以当我们在新版本的ElasticSearch压缩包中包含有自带的jdk,但是当我们的Linux中已经安装了jdk之后,就会发现启动es的时候优先去找的是Linux中已经装好的jdk,此时如果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 [/usr/local/jdk1.8.0_291/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.

注:如果Linux服务本来没有配置jdk,则会直接使用es目录下默认的jdk,反而不会报错

解决办法:

  • 进入bin目录,我这里文件放在 cd /root/ElasticSearch/elasticsearch-8.14.1/bin
  • 修改elasticsearch配置
    vim ./elasticsearch
############## 添加配置解决jdk版本问题 ##############
# 将jdk修改为es中自带jdk的配置目录
export JAVA_HOME=/home/apps/elasticsearch/jdk
export PATH=$JAVA_HOME/bin:$PATH

if [ -x "$JAVA_HOME/bin/java" ]; then
        JAVA="/home/apps/elasticsearch/jdk/bin/java"
else
        JAVA=`which java`
fi
上次编辑于:
贡献者: wenleiwang
评论
  • 按正序
  • 按倒序
  • 按热度