一、ElasticSearch安装
一、ES安装
1、windows安装
官网下载地址(版本是 7.8.0)
:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-8-0
将下载后的安装包解压就行
启动,进入ES文件夹的bin
目录,找到启动文件,双击执行就行
启动成功截图
可能出现闪闪退
双击启动窗口闪退,通过路径访问追踪错误,如果是“空间不足”,请修改config/jvm.options
配置文件
#设置JVM初始内存为1G。此值可以设置与-Xmx,相同,以避免每次垃圾回收完成后JVM重新分配内存
# Xms represents the initial size of total heap space
#设置JVM最大可用内存为1G
# Xmxrepresents the maximum size of total heap space
-Xms512m
-Xmx512m
2、Linux安装
2.1、 安装
一、官网下载
版本:7.8.1
官网下载地址
:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.1-linux-x86_64.tar.gz
二、将下载后的压缩包上传到Linux上,比如这里我上传到了目录 /opt/server
,这个server目录是自己建的,如下图,解压安装包并指定安装路径:tar -zxvf elasticsearch-7.8.1-linux-x86_64.tar.gz -C /opt/server,然后进行重命名:mv elasticsearch-7.8.1 es7.8.1
解压 : tar -zxvf elasticsearch-7.8.1-linux-x86_64.tar.gz -C /opt/server
重命名 :mv elasticsearch-7.8.1 es7.8.1
2.2、ES与JDK的强依赖问题
简而言之: ES文件夹里自己携带了 JDK ,但是如果我们的 Linux 下安装了 JDK ,ES 就不会用自己自带的 JDK ,反而会使用我们 Linux 安装的 JDK ,这个时候如果两个jdk的版本不一致,就会造成jdk不能正常运行,报错
注意
:如果Linux服务本来没有配置jdk,则会直接使用es目录下默认的jdk,反而不会报错
解决方法
-
进入ES文件夹的bin目录
cd /opt/server/es7.8.1/bin
-
修改elasticsearch配置
vim ./elasticsearch
############## 添加配置解决jdk版本问题 ############## # 将jdk修改为es中自带jdk的配置目录 export JAVA_HOME=/usr/local/elasticsearch-7.13.2/jdk export PATH=$JAVA_HOME/bin:$PATH if [ -x "$JAVA_HOME/bin/java" ]; then JAVA="/usr/local/elasticsearch-7.13.2/jdk/bin/java" else JAVA=`which java` fi
2.3、解决内存不足问题
由于elasticsearch 默认分配 jvm空间大小为2g
,如果服务器内存不大就会报错,所以我们需要修改 jvm空间,如果Linux服务器本来配置就很高,可以不用修改。
错误代码
error:
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c6a00000, 962592768, 0) failed; error='Not enough space' (errno=12)
at org.elasticsearch.tools.launchers.JvmOption.flagsFinal(JvmOption.java:119)
at org.elasticsearch.tools.launchers.JvmOption.findFinalOptions(JvmOption.java:81)
at org.elasticsearch.tools.launchers.JvmErgonomics.choose(JvmErgonomics.java:38)
at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:13
解决方案
进入ES文件夹的config目录开始配置,编辑 jvm.options
vim /opt/server/es7.8.1/config/jvm.options
修改
默认配置如下:
-Xms2g
-Xmx2g
默认的配置占用内存太多了,调小一些:
-Xms256m
-Xmx256m
2.4、修改ES核心配置信息
-
修改数据和日志目录
新建
data
文件夹并打开data
文件夹再新建两个文件夹:es-data
,es-log
然后在elasticsearch.yml
文件中配置,如下 -
执行命令修改
elasticsearch.yml
文件内容vim /opt/server/es7.8.1/config/elasticsearch.yml
修改数据与日志存储路径
# 数据目录位置 path.data: /opt/server/es7.8.1/data/es-data # 日志目录位置 path.logs: /opt/server/es7.8.1/data/es-log
修改绑定的ip允许远程访问
#默认只允许本机访问,修改为0.0.0.0后则可以远程访问 # 绑定到0.0.0.0,允许任何ip来访问 network.host: 0.0.0.0
初始化节点名称
cluster.name: elasticsearch #es服务集群名 node.name: es-node0 #节点名称 #初始的候选 master 节点列表。初始主节点应通过其 node.name 标识,默认为其主机名。 #确保 cluster.initial_master_nodes 中的值与 node.name 完全匹配 cluster.initial_master_nodes: ["es-node0"]
修改端口号,默认是9200(有需要的话可以改,就是修改我们访问的端口号)
http.port: 19200
2.5、启动
创建用户
因为安全问题, Elasticsearch 不允许 root 用户直接运行,所以要创建新用户,在 root 用户中创建新用户。
useradd es #添加用户 es
passwd es # 为 es 用户设置密码,密码输入的时候看不见,我设置的密码是 es123456
userdel -r es #如果错了,可以删除再加
chown -R es:es /opt/server/es7.8.1 #为这个文件夹赋予所有者 es
-
切换到
es
用户su es
-
进入
bin
目录cd /opt/server/es7.8.1/bin
-
启动elasticsearch
./elasticsearch
报错如下
2.6、Exception in thread “main“ org.elasticsearch.bootstrap.BootstrapException: …
错误代码,如上图
Exception in thread "main" org.elasticsearch.bootstrap.BootstrapException: java.nio.file.AccessDeniedException: /opt/es/config/elasticsearch.keystore
Likely root cause:
java.nio.file.AccessDeniedException:/opt/es/config/elasticsearch.keystore
解决方法
切换到root
用户,进入这个文件的目录下,ll
查看权限,发现这个文件只有 root
用户才有权限,我们创建的 es
用户并没有权限,所以报错
我们将这个文件进行删除,下次启动es时会自动创建
rm -rf elasticsearch.keystore
删除成功后再次切换回es
的用户并再次启动
./elasticsearch
再次出现问题
2.7、vm.max_map_count [65530] is too low问题
原因:elasticsearch用户拥有的内存权限太小,至少需要262144,解决办法:
错误代码
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /opt/server/es7.8.1/data/es-log/elasticsearch.log
解决方案
-
在
/etc/sysctl.conf
文件最后添加如下内容,即可永久修改 -
切换到
root
用户 -
执行命令
su root
-
执行命令
vim /etc/sysctl.conf
-
添加如下内容
vm.max_map_count=262144
-
保存退出,刷新配置文件
sysctl -p
-
再切换
es
用户,再次启动su es
启动成功截图如下
测试访问
如果访问不了,可以看一下服务器的安全组是否打开,还有将Linux的防火墙的端口开放
firewall-cmd --list-ports # 只看Linux 防火墙开放端口信息
# 开启端口
#开端口命令:
firewall-cmd --zone=public --add-port=9200/tcp --permanent
#重启防火墙:
systemctl restart firewalld.service
如上操作就可以了
2.8、可能遇到的max file descriptors [4096]问题
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
解决方案
-
切换到root用户,执行命令
vi /etc/security/limits.conf
-
添加如下内容
* soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096
-
然后重启linux
2.8、服务终止
前台运行,Ctrl C 则程序终止
也可以以后台方式启动
./elasticsearch -d # -d 表示后台启动
关闭ES服务
ps -ef|grep ela #查看 es的进程
kill -9 pid #强制杀死进程
2.9、为Elasticsearch设置登录密码(看自己需求)
ES7.x以后的版本将安全认证功能免费开放了,并将X-pack插件集成了到了开源的ElasticSearch版本中。下面将介绍如何利用X-pack给ElasticSearch相关组件设置用户名和密码。
-
编辑配置文件
vim /usr/local/elasticsearch-7.13.2/config/elasticsearch.yml
-
在
elasticsearch.yml
末尾,加入以下内容:xpack.security.enabled: true xpack.security.transport.ssl.enabled: true
-
编辑内容后重启Elasticsearch服务(必须操作)
-
设置用户名和密码,输入如下
/opt/server/es7.8.1/bin/elasticsearch-setup-passwords interactive
这里依次设置elastic、kibana、logstash等的访问密码,es12356
-
设置了访问密码,再次访问ES时,需要输入密码
2.10、卸载
# 查看安装的软件
dpkg -l | grep elastic
#查看安装关联
dpkg -L elasticsearch
#移除安装软件
dpkg -P elasticsearch
#继续查看未卸载的目录和文件
find ./ elasticsearch | grep elasticsearc
#移除目录和文件具体参考自己的环境
rm -r /var/lib/elasticsearch
rm /var/lib/dpkg/info/elasticsearch.*
rm /etc/default/elasticsearch
rm /etc/default/elasticsearch
rm /etc/init.d/elasticsearch
#在此查看是否有关联的目录和文件
find ./ elasticsearch | grep elasticsearch
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhigaaee
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
excel图片置于文字下方的方法
PHP中文网 06-27 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信提示登录环境异常是什么意思原因
PHP中文网 04-09 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
微信人名旁边有个图标有什么用
PHP中文网 03-11