前言: 本环境在阿里轻量级服务器(Ubuntu)上 执行
(一) 环境搭建
1.1 java环境
环境:
ES 为 java 语言编写, 需要有 java 环境
版本说明:
ES 5 需要 Java 8 及以上的版本
ES 7 开始内置了 Java 环境
apt update
apt install default-jre // 下载jdk环境
验证输入: java --version 返回以下代码算成功
1.2 Elasticsearch下载
通过官方下载地址挑选你喜欢的下载包
下载地址: https://www.elastic.co/cn/downloads/elasticsearch
或者通过以下命令下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.1.tar.gz
下载完后解压
tar -xzvf elasticsearch-7.15.1.tar.gz
解压完后可以进入对应的解压后的文件夹
文件说明(此说明参照源码阅读网,大曾老师的文档):
bin:脚本文件,包括启动elasticsearch,安装插件。运行统计数据等
config:集群配置文件,jvm(7.1默认1G),user,role based相关配置(elasticsearch.yml)
jdk:Java运行坏境
data:数据文件(path.data)
lib:Java类库
logs:日志文件(path.log)
modules:包含所有ES模块
plugins:包含所有已安装插件
(二) ElasticSearch启动
ES默认不能用root用户启动,需要创建用户执行安装
创建用户
groupadd esgroup // 添加用户组
useradd esuser -g esgroup // 添加用户
passwd esuser // 设置密码
espwd chown -R esuser:esgroup elasticsearch-7.xx // 设置文件权限
su esuser // 切换用户(注: 一定要记得你root用户的密码哟,要不切换回root用户,切不回去了,哈哈哈)
切换到解压后的文件夹下 直接运行
./bin/elasticsearch -d
哈哈哈,你可能会发现启不起来
(三) 启动和访问问题描述and解决
3.1 jvm未配置,卡顿
执行完这边命令后,你服务器可能会卡顿,原因: jvm参数未配置,可能有点飘,导致cpu占太高了(我猜的)
./bin/elasticsearch -d
解决办法: 进入**/config** 目录下
修改 jvm.options 文件命令和配置如下
cd config
vim jvm.options
# 修改参数如下(服务器小,不配大容量)
-Xms256m
-Xmx256m
配置完后,在执行启动命令
不出意外,它又启动失败了
打印日志如下
不知道在哪看日志的,直接到logs文件夹下 查看 elasticsearch.log 文件
找到问题,咱就解决问题
3.2 问题一
max number of threads [3458] for user [esuser] is too low, increase to at least [4096]
哈哈哈,问题不会,我找度娘啊
不出意外, 我看到了它 : https://blog.csdn.net/zeorg/article/details/115209262
我先配置了,试试,找到的答案不一定对哦
3.3 问题二
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
我找到了它: https://blog.csdn.net/xcc_2269861428/article/details/100186654
问题正常解决,具体原因未深究
3.4 问题三
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
这个好像是要默认启动一个节点配置啥的
直接贴路径了: https://blog.csdn.net/qq_43655835/article/details/104637625
我按照上面逻辑解决办法操作了下系统,然后重启了下服务器
问题一,还是有问题
经过思考后,我改了以下内容
我将
elasticsearch soft nproc 65535
elasticsearch hard nproc 65535
改为了
esuser soft nproc 65535
esuser hard nproc 65535
我默认猜测这个参数是给用户设置线程数(其实问题一的博主也没错,哈哈哈)
(注: 网上查询的解决办法不要一味跟着乱操作,要大概明白原因,才操作,深有体会)
最后可能会出现的问题,就是你访问默认的9200端口访问不到,反正我出现了
可以参照: https://blog.csdn.net/yang958554999/article/details/105334505
然后通过ip+9200(默认端口)访问到以下内容就算搭建成功了
其他命令
查询进程:
ps -ef | grep elasticsearch
停掉进程:
kill -9 pid
后期备注:
如果启动后服务器卡死, 或者不能使用了 可能是你的内存不够了
像我的内存才1g, 启动后系统直接卡死, 后来斥巨资100多块升了个2g内存的服务器(好像docker安装比较好,我没试)