Linux上安装ElasticSearch及遇到的问题
在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后再重启网卡