首页 > 技术文章 > Linux上安装ElasticSearch及遇到的问题

ywb-articles 2019-04-17 20:11 原文

在Linux上直接安装ElasticSearch

  1. 安装前环境准备

    安装JDK环境,并配置环境变量,这里可以参考我以前写过的博客 https://www.cnblogs.com/ywb-articles/p/10554332.html

  2.下载ElasticSearch

    直接在官网下载即可,链接:https://www.elastic.co/downloads/elasticsearch

    各种安装方式见https://www.elastic.co/guide/en/elasticsearch/reference/7.0/rpm.html#rpm-repo

    我这里直接选择压缩包

      

    解压

tar -zxvf elasticsearch -7.0.0-linux-x86_64.tar.gz

  3.elasticsearch不能用root用户启动,创建elasticsearch用户

useradd elasticsearch

  4.给该文件夹赋予elasticsearch用户权限

chmod 777 -R elasticsearch-7.0.0

  5.进入elasticsearch用户

su elasticsearch

  6.进入解压后的文件夹的bin目录中,输入./elasticsearch即可启动elasticsearch (elasticsearch的启动速度比较慢,请耐心等待)

  7.测试是否启动成功

curl http://localhost:9200

  8.若结果如下图所示,说明启动成功,如果不成功,可以先看看下面的配置或者查看日志文件

    

关于配置文件

  1.在config文件夹中,有如下几个文件,如下图

    

    (1) log4j2.properties是日志文件

    (2) 其中jvm.options可以设置elasticsearch占用的堆内存大小,例如下图,修改最大最小堆内存为256M

      

    (3) elasticsearch.yml文件中可以开启elasticsearch远程访问

   2.在外部无法访问elasticsearch,如下图所示

    

    因此elasticsearch需要开启远程访问,修改elasticsearch.yml,添加代码如下

network.host: 0.0.0.0

    重新启动后即可远程访问

  3.若重启报如下错误

    

  则可能是elasticsearch未正常关闭,或者配置文件修改有误,需要查看进程,并查看配置文件

ps -ef | grep elastic 

  通过kill -9关闭的进程

  再次重启后。

  4.若重启报以下错误

    

  解决办法:

    1.编辑 /etc/security/limits.conf,追加以下内容(这几个步骤执行完毕后可能需要重新登录,直接切换一次用户即可)

* soft nofile 65535
* hard nofile 65535
* soft nproc 4096
* hard nproc 4096

    2.编辑 /etc/sysctl.conf,追加以下内容

vm.max_map_count=655350

    重启,若还有问题,如下图所示

      

    解决办法:

      修改elasticsearch.yml配置文件,找到 #cluster.initial_master_nodes: ["node-1", "node-2"] ,修改如下

cluster.initial_master_nodes: ["node-1"]

    重启成功后,即可远程访问,如下图

      

 

docker安装elasticsearch步骤:

  1.安装docker后,通过docker pull elasticsearch7.0.0拉取镜像

  2.修改配置文件(可以通过find命令查找)

    elasticsearch.yml文件配置如下

cluster.name: "docker-cluster"
network.host: 0.0.0.0
cluster.initial_master_nodes: ["node-1"]
discovery.seed_hosts: ["127.0.0.1", "[::1]"]

    jvm.options文件配置修改如下行

-Xms256M
-Xmx256M

    sysctl.conf,追加以下内容

vm.max_map_count=655300

  3.运行镜像即可

  

   如果docker ps没有该信息,可能是启动失败了,通过docker ps -a 查看,可以再执行docker logs 容器id 查看错误日志

  4.外网访问9200端口即可

  

   如果出现WARNING: IPv4 forwarding is disabled. Networking will not work.

  修改sysctl.conf文件,修改net.ipv4.ip_forward=1后再重启网卡

  

推荐阅读