一、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,反而不会报错

解决方法

  1. 进入ES文件夹的bin目录

    cd /opt/server/es7.8.1/bin
    

    在这里插入图片描述

  2. 修改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核心配置信息

  1. 修改数据和日志目录

    新建data文件夹并打开data文件夹再新建两个文件夹:es-dataes-log
    在这里插入图片描述
    然后在 elasticsearch.yml文件中配置,如下

  2. 执行命令修改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

在这里插入图片描述

解决方案

  1. /etc/sysctl.conf文件最后添加如下内容,即可永久修改

  2. 切换到root用户

  3. 执行命令

    su root
    
  4. 执行命令

    vim /etc/sysctl.conf
    
  5. 添加如下内容

    vm.max_map_count=262144
    

    在这里插入图片描述

  6. 保存退出,刷新配置文件

    sysctl -p
    
  7. 再切换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 
  • 10
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值