• ElasticSearch安装详细教程以及相关踩坑


    本教程使用Linux系统安装

    创建elasticsearch目录

    cd /usr/local/
    
    mkdir tool
    
    cd tool
    
    mkdir elasticsearch
    
    cd elasticsearch
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    下载Elasticsearch

    在刚刚创建好的文件夹内下载Elasticsearch(以下简称es)

    curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-linux-x86_64.tar.gz
    
    • 1

    解压es包

    tar -xvf elasticsearch-7.16.2-linux-x86_64.tar.gz
    
    • 1

    进入es/bin包

    cd elasticsearch-7.16.2/bin
    
    • 1

    启动es

    ./elasticsearch
    
    • 1

    如果需要后台启动的话,在启动命令后加&,如下所示:

    ./elasticsearch &
    
    • 1

    关于一些踩过的坑

    1. es比较吃内存,所以建议使用8g及以上的机器运行es,如果内存小了可能导致跑步起来。
    2. es不能使用root用户直接启动,需要参考“问题二”使用新用户启动es。
    3. es使用ip访问需要修改配置文件,建议直接使用工具将配置文件下载到本地,修改后进行替换;注意不能出现多余的空格以及符号。

    如果es是单独使用一台机器进行部署的话,则需要能够支持使用ip+端口的方式进行访问,在配置过程中可能会出现以下问题。

    解决问题

    问题一:内存不足

    直接启动,遇到如图问题,如下:

    这个问题是由于内存分配不够造成的,修改适合本机的内存,修改文件config/jvm.options

    vi ../config/jvm.options

    修改如下位置

    由于我的服务器内存较小,修改为512m,具体可以根据情况修改,如下:

    修改后在次启动:

    ./elasticsearch

    问题二:用户权限错误

    出现如下错误:

    org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

    如图

    这个问题很明显,不允许使用root用户启动,那么我们新建一个es用户,并赋予权限:

    添加es用户

    useradd es

    添加es用户密码

    passwd es

    将文件夹elasticsearch-5.4.2赋予es权限

    chown -R es:es /usr/local/tool/elasticsearch/elasticsearch-5.4.2

    切换为es用户

    su es

    再次启动es

    ./elasticsearch

    这次启动成功了,我们在使用一个新的标签窗口登录root用户,输入命令验证一下:

    curl -X GET http://localhost:9200

    如图所示,可以成功访问

    问题三:公网ip无法访问

    在浏览器访问http://118.24.242.170:9200/拒绝访问(118.24.242.170为服务器ip),首先检查端口是否开放,服务器安全组是否添加9200端口

    使用root用户,打开elasticsearch.yml文件,如下:

    vi /usr/local/tool/elasticsearch/elasticsearch-5.4.2/config/elasticsearch.yml

    文件内增加如下代码

    network.host: 0.0.0.0

    使用es用户启动,发现又出现了错误如下,得到错误信息如图

    使用root用户打开如下文件:

    vim /etc/sysctl.conf

    添加如下配置:

    vm.max_map_count = 655360

    使配置生效

    /sbin/sysctl -p

    再次执行./elasticsearch

    问题四:重新启动报错

    如果操作了问题3的后重新启动时,出现了这个问题:

    需要将配置文件中的配置放开注释

    问题五:无java环境

    如果服务器没有安装JDK环境的话,会提示如下内容

    此时,需要安装JDK,输入命令安装jdk1.8版本:yum install java-1.8.0-openjdk-devel.x86_64

    执行完成后,输入 java -version,出现如下信息即可

    最后使用es用户启动Elasticsearch,这次可以成功启动了,如果需要后台启动的话,在启动命令后加&,如下所示:

    ./elasticsearch &

    安装过程中如遇到其他问题,欢迎补充!

    综合整理自:Linux安装Elasticsearch - 简书

  • 相关阅读:
    线上问题之Java数字范围引发的异常
    JAVA集合(一)Collection接口
    京东18A整理出最牛《Spring技术内幕》,深入解析Spring原理
    推荐一款免费的内网穿透工具ngrok
    MYSQL正则表达式函数详解和实战
    PlainUML(二)时序图
    【数据结构与算法系列3】有序数组的平方 (C++ & Python)
    循环神经网络
    网络原理 --- 传输层Ⅰ UDP协议
    RTSP 和 RTMP原理 & 通过ffmpeg实现将本地摄像头推流到RTSP服务器
  • 原文地址:https://blog.csdn.net/asdfadafd/article/details/126361760