ES 安装 Elasticsearch 7.x 配置;保姆级

  • centos7.x
  • php 7.4
  • Elasticsearch 7.x
  • es文档
Elasticsearch安装大同分为两种方式【官网下载安装】和【yum安装】

一、Elasticsearch官网下载

Elasticsearch

根据自己的需求下载,一般下载的是linux86_64压缩包,但是它配置麻烦,配置开机自启还要自己去init.d写脚本,建议下载rpm包进行安装。


image.png

上传scp 安装包后进入所在目录,通过rpm执行安装

rpm -ivh 安装包名字

image.png

二、yum安装

  1. 导入 Elasticsearch GPG KEY:

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

  1. 添加elasticsearch的yum repo文件

cd /etc/yum.repos.d/
vim elasticsearch.repo

打开文件后写入如下内容

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://mirror.tuna.tsinghua.edu.cn/elasticstack/7.x/yum/
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
  1. 安装ES

yum install elasticsearch

如果你想指定ES版本可以使用:

yum list elasticsearch 或者 yum search elasticsearch --showduplicates

指定版本主要是为了后面安装ik分词,因为ik要和ES保持相同版本

yum install --enablerepo=elasticsearch elasticsearch-7.17.6-1.x86_64
如果搜索不到包尝试执行 yum install elasticsearch-7.17.6-1.x86_64

到此安装部分完成,如果你现要去执行一定报各种错误,如下修改配置

yum 安装完成后的目录 /usr/share/elasticsearch/;启动es

cd /usr/share/elasticsearch/bin
./elasticsearch

各种奇怪的错误

  1. org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root。
    此错误大致含义就是不可以在root用户下启动ES
    解决方法:
# 添加用户,我这里叫es
adduser es 
# 给用户设置密码
passwd 123456
# 切换到es用户下
su es
  1. 这时切换到es用户下,又会报各种权限不足,加上权限就OK了
#./elasticsearch-env:行88: /etc/sysconfig/elasticsearch: 权限不够
chown -R es /etc/sysconfig/elasticsearch

#bin/elasticsearch-env: 第 96 行:cd: /etc/elasticsearch: 权限不够
chown -R es /etc/elasticsearch

#Exception in thread "main" java.nio.file.AccessDeniedException: /var/lib/elasticsearch
#只要看到AccessDeniedException异常就给它权限
chown -R es /var/lib/elasticsearch

#Error opening log file '/var/log/elasticsearch/gc.log': Permission denied
#将整个elasticsearch目录权限给它
chown -R es /var/log/elasticsearch

#另外将安装路径的权限给它,这里目前还没报错,不过报错是迟早的事
chown -R es /usr/share/elasticsearch
  1. 配置es.yml文件

vim /etc/elasticsearch/elasticsearch.yml

elasticsearch默认是不支持跨域的,在末尾添加如下两行支持跨域

http.cors.enabled: true 
http.cors.allow-origin: "*"

打开并修改访问ip设置,不然只有本虚拟机才能访问,别的机器无法访问

network.host: 0.0.0.0

es节点名称

cluster.name: elasticsearch
node.name: es-node0

initial_master_nodes如果不开后面会报错

cluster.initial_master_nodes: ["node-1"]
  1. 其它报错配置
    ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
    bootstrap check failure [1] of [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

大概是说elasticsearch 程序的当前max_file_descriptors 的限制为 4096,需要增加到 65536。

首先查看当前的大小,运行如下两个命令查看:

ulimit -Hn
ulimit -Sn

如下都是切换到root用户下执行

vim /etc/security/limits.conf

#es是自己的用户名,其他的照写
es hard nofile 65536
es soft nofile 65536

切换回 es 用户 查看是否修改成功


image.png

内存不足会报错OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000e0c00000, 524288000, 0) failed; error='Not enough space' (errno=12)

这里默认4g,已经远远超出了范围,所以这里改为1g,可按照自己实际情况修改。

vim /etc/elasticsearch/jvm.options

-Xms1g
-Xmx1g

./elasticsearch方式却能正常启动

如果想通过 systemctl start elasticsearch.service 启动:

vim /usr/lib/systemd/system/elasticsearch.service

#把User值改成es用户
User=es

重新加载启动文件

systemctl daemon-reload

#启动
systemctl start elasticsearch.service
#停止
systemctl stop elasticsearch.service
#查看启动状态
systemctl status elasticsearch.service
#添加到开机自启动
systemctl enable elasticsearch.service

其它命令

#查看线程
ps -ef |grep elasticsearch

#root下进行
kill -9 上面查到的线程ID

浏览器输入你的ip:9200看到有反回值就表示成功了

三、IK安装

https://github.com/medcl/elasticsearch-analysis-ik/releases?page=3
找到和es相同版本的ik包,下载后scp到服务器。

cd /usr/share/elasticsearch/plugins

创建ik文件夹

mkdir ik

把下载好的包 unzip到ik文件夹中,注意一定要与es版本相同,不然会报错,别问我杂知道的

laravel
Logstash、Kibana安装
https://blog.csdn.net/qq_32596527/article/details/127567618

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容