Centos安装elasticsearch7.9.3最新版

1.安装jdk

这里因为是elasticsearch7.x所以必须是java11以上的版本。centos系统自带的是jdk1.8版本。

可以先卸载系统的1.8版本。

1.1卸载系统原有jdk

#查看安装的jdk
rpm -qa | grep java

我这里是先下载的jdk11,再卸载掉的,这是因为我发现如果不删除,即使更改了系统变量,版本还是没有改变。
在这里插入图片描述

#删除java-1.8,noarch文件可以不用删除
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-0.el7_8.x86_64

检查有没有删除,如果还没有删除,则用yum -y remove去删除他们

rpm -qa | grep java

1.2安装JDK11

其他版本的JDK要先卸载掉,不要犯我的错误

#查看安装的工具
yum search java | grep -i --color JDK
#安装java-1.8.0-openjdk-devel.x86_64
yum install java-1.8.0-openjdk-devel.x86_64
#安装java-11-
yum install java-11-openjdk.x86_64

vi  /etc/profile
在最后面追加
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.8.10-0.el8_2.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

注意去 /usr/lib/jvm/ 查看具体的版本
source  /etc/profile

java -version

在这里插入图片描述

2.下载elasticsearch

2.1设置启动用户

如果当前是root用户登录的状态则需要,创建一个新的用户。因为不能使用root用户启动。如果不是则可以跳过这一步。我们可以将ES的文件下载在该用户目录中。

#创建elsearch用户组及elsearch用户
groupadd elsearch
useradd elsearch -g elsearch -p 123456

2.2下载

文件会下载到,你执行命令的目录里,或者直接自己使用 -O指定目录。

#进入elsearch用户目录
cd /home/elsearch

#下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.3-linux-x86_64.tar.gz

#官方文档使用
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.3-linux-x86_64.tar.gz

如果你想yum安装
vi /etc/yum.repos.d/elasticsearch.repo

[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md

yum install --enablerepo=elasticsearch elasticsearch

2.3解压文件

可以在当前目录解压,也可以指定到

#在当前目录解压
tar -zxvf elasticsearch-7.9.3-linux-x86_64.tar.gz

#或者指定解压到某个目录
tar -xvf elasticsearch-7.9.3.tar.gz -C /opt/es
#是否修改文件名称自己根据需求
mv elasticsearch-7.9.3 elasticsearch

2.4 测试是否可以启动elasticsearch

cd elasticsearch-7.9.3/bin
#启动
./elasticsearch

测试的过程中可能会出现一些问题。

  • 问题一:
    如果使用root账户启动会报错:
    在这里插入图片描述
    这是因为我们当前的用户权限不够,但是es又不允许使用root启动,所以我们需要创建一个用户组。创建elsearch用户,或者使用其他非root用户,注意文件权限
#创建elsearch用户组及elsearch用户
groupadd elsearch
useradd elsearch -g elsearch -p 123456
#更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch
chown -R elsearch:elsearch /home/tool/elasticsearch/ elasticsearch-7.9.3
  • 问题二:
    这是因为 elasticsearch.keystore的用户权限是root,需要更改文件权限为启动用户。(这里我不太明白为甚么单独这个文件是root的权限,在此之前,我已经给整个文件夹都赋予了启动用户)

一般java.nio.file.AccessDeniedException这个错误的时候,指向某个文件,就要查看文件权限是否是登录用户。
在这里插入图片描述

chown -R elsearch:elsearch  elasticsearch.keystore

如果已经启动起来我们另外开启一个窗口测试是否启动成功。

curl 'http://localhost:9200/?pretty'

在这里插入图片描述

2.5 ES配置(重点)

主要配置:
修改elasticsearch.yml

vi config/elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.port: 9200      #可更改端口不为9200,默认为9200

# custom config
node.name: "node-1"
discovery.seed_hosts: ["127.0.0.1", "[::1]"]
cluster.initial_master_nodes: ["node-1"]
# 开启跨域访问支持,默认为false
http.cors.enabled: true
# 跨域访问允许的域名地址,(允许所有域名)以上使用正则
http.cors.allow-origin: /.*/ 

参数解释:

  • 开放远程访问

#修改 network.host 为 0.0.0.0,0.0.0.0对外开放,如对特定ip开放则改为指定ip
network.host: 0.0.0.0
  • 配置集群节点
    配置cluster.initial_master_nodes为当前node,默认为注释,放开注释就行了
    cluster.initial_master_nodes: [“node-1”, “node-2”]

  • 其他可以错误

max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

解决:修改切换到root用户修改配置limits.conf 添加下面两行
命令:vi /etc/security/limits.conf
* hard nofile 65536
* soft nofile 65536

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

切换到root用户修改配置sysctl.conf

vi /etc/sysctl.conf 
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p

max number of threads [1024] for user [lish] likely too low, increase to at least [2048]

解决:切换到root用户,进入limits.d目录下修改配置文件。
vi /etc/security/limits.d/90-nproc.conf
修改如下内容:
* soft nproc 1024
#修改为
* soft nproc 2048

Option UseConcMarkSweepGC was deprecated in version 9.0

将jvm.options文件里的内容修改为:
vi config/jvm.options
-XX:+UseConcMarkSweepGC 改为 -XX:+UseG1GC

内存太小

cd 到es目录修改 ./config/jvm.options:

vim ./config/jvm.options 
1
修改该内容:

-Xms1G
-Xmx1G

2.6 后台启动

./elasticsearch &

使用守护进程运行:./elasticsearch -d

2.7 systemd 管理elasticsearch

Centos7使用systemd 管理elasticsearch,创建elasticsearch服务

2.8 ES端口说明

9200 对外服务的http 端口

9300 节点间通信的tcp端口

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值