0
点赞
收藏
分享

微信扫一扫

ElasticSearch详细安装教程 (Linux版)

GG_lyf 2022-04-05 阅读 160

目录标题

前言

想要学习ElasticSearch技术,需要在服务器搭建ElasticSearch环境。

一、安装Elasticsearch

1、版本声明

CenOS:7;
JDK:1.8;
Elasticsearch:7.6.1;
在这里插入图片描述

2、创建普通用户

使用root用户在服务器执行以下命令。

先创建组, 再创建用户:
1)创建 elasticsearch 用户组

[root@localhost ~] groupadd elasticsearch

2)创建用户 shcms 并设置密码

[root@localhost ~] useradd shcms
[root@localhost ~] passwd shcms

3) 创建es文件夹,并修改owner为cms用户

[root@localhost ~] mkdir -p /opt/es

4)用户es 添加到 elasticsearch 用户组

[root@localhost ~] usermod -G elasticsearch shcms
# 此处我们需要先到/opt/es目录下创建elasticsearch-7.6.1目录,然后才能执行下面的命令
[root@localhost ~] chown -R shcms /opt/es/elasticsearch-7.6.1

5)设置sudo权限

#为了让普通用户有更大的操作权限,我们一般都会给普通用户设置sudo权限,方便普通用户的操作
#三台机器使用root用户执行visudo命令然后为es用户添加权限
[root@localhost ~] visudo

#在root ALL=(ALL) ALL 一行下面添加一行:shcms ALL=(ALL) ALL

在这里插入图片描述

6)添加成功保存后切换到shcms用户操作

[root@localhost ~] su shcms
[shcms@localhost root]$

3、上传压缩包并解压

1) 上传压缩包

[root@localhost ~] su root
[root@localhost ~] rz -be 

在这里插入图片描述

2 ) 解压Elasticsearch

[root@localhost ~] su shcms
[shcms@localhost root]$

3 ) 由于我们前面创建了elasticsearch-7.6.1目录,此处我们直接解压覆盖这个目录即可

[shcms@localhost root] tar -zvxf elasticsearch-7.6.1-linux-x86_64.tar.gz -C /opt/es/

在这里插入图片描述

4、修改配置文件

4.1 修改elasticsearch.yml

1)在/opt/es/elasticsearch-7.6.1/下创建data和log目录

[shcms@localhost root] mkdir -p /opt/es/elasticsearch-7.6.1/log
[shcms@localhost root] mkdir -p /opt/es/elasticsearch-7.6.1/data

2)进入服务器使用shcms用户来修改配置文件

[root@localhost ~] su shcms
[shcms@localhost root]$
[shcms@localhost root] cd /opt/es/elasticsearch-7.6.1/config
[shcms@localhost config] rm -rf elasticsearch.yml
[shcms@localhost config] vim elasticsearch.yml

3)讲以下配置复制到elasticsearch.yml中

# 集群名称, 处于同一个集群所有节点,该名称必须相同
cluster.name: cms-es-cluster

# 节点名称
node.name: node1

path.data: /opt/es/elasticsearch-7.6.1/data
path.logs: /opt/es/elasticsearch-7.6.1/log

# 网络绑定,这里我绑定 0.0.0.0,支持外网访问
network.host: 0.0.0.0
# 设置对外服务的http端口,默认为9200
http.port: 9200


# 集群发现。
discovery.seed_hosts: ["127.0.0.1"]
# 手动指定可以成为 master 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
cluster.initial_master_nodes: ["node1"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false

# 支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"

4.2 修改jvm.option

修改jvm.option配置文件,调整jvm堆内存大小。
node1.shcms.cn使用shcms用户执行以下命令调整jvm堆内存大小,每个人根据自己服务器的内存大小来进行调整。

[root@localhost ~] su shcms
[shcms@localhost root]$
[shcms@localhost root] cd /opt/es/elasticsearch-7.6.1/config
[shcms@localhost config] vim jvm.options

-Xms2g
-Xmx2g

二、修改系统配置,解决启动时候的问题

由于现在使用普通用户来安装es服务,且es服务对服务器的资源要求比较多,包括内存大小,线程数等。所以我们需要给普通用户解开资源的束缚。

1、普通用户打开文件的最大数限制

ES因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除linux系统当中打开文件最大数目的限制,不然ES启动就会抛错。

1 ) 三台机器使用shcms用户执行以下命令解除打开文件数据的限制:

[root@localhost ~] su shcms
[shcms@localhost root]$
[shcms@localhost root]sudo vi /etc/security/limits.conf

添加如下内容: 注意*不要去掉了:

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

2)此文件修改后 需要重新登录用户,才会生效

2、普通用户启动线程数限制

原因:
无法创建本地线程问题, 用户最大可创建线程数太小。

解决方案:
修改90-nproc.conf 配置文件(修改普通用户可以创建的最大线程数)。

三台机器使用shcms用户执行以下命令修改配置文件:

[root@localhost ~] su shcms
[shcms@localhost root]$

# Centos6
[shcms@localhost root] sudo vi /etc/security/limits.d/90-nproc.conf
# Centos7(我的是7)
[shcms@localhost root] sudo vi /etc/security/limits.d/20-nproc.conf

找到如下内容:

* soft nproc 1024
 #修改为
* soft nproc 4096

3、普通用户调大虚拟内存

原因:
最大虚拟内存太小(调大系统的虚拟内存)。

每次启动机器都手动执行下。

三台机器执行以下命令 :
1)切换root用户

[root@localhost ~] su 
[root@localhost root]$

2)编辑 /etc/sysctl.conf,追加以下内容:vm.max_map_count=262144

3)保存后,执行:sysctl -p

4、重新连接

以上三个问题解决完成之后,重新连接secureCRT或者重新连接xshell生效

三、启动ES服务

1、开放服务器端口

对于我而言,我是把远程服务器防火墙永久关闭了的,所以外界可以访问我服务器任意端口(包括ES的9200端口)。

关闭Linux防火墙:

永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop

2、启动ES

三台机器使用shcms用户执行以下命令启动es服务。
1、切换shcms用户:

su shcms

2、

nohup /opt/es/elasticsearch-7.6.1/bin/elasticsearch 2>&1 &

后台启动ES 进入bin目录 ./elasticsearch -d

3、启动成功之后jsp即可看到es的服务进程:
在这里插入图片描述

4、并且访问页面http://192.168.43.10:9200/?pretty ,能够看到es启动之后的一些信息:
在这里插入图片描述

3、常见错误分析

问题1:
如果哪一台机器服务启动失败,那么就到哪一台机器的/opt/es/elasticsearch-7.6.1/log这个路径下面去查看错误日志;

问题2:
如果服务端ES启动成功,但是客户端访问不了ES,则可能是服务器端没有开放端口。可以尝试关闭Linux防火墙:

永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop

问题3:
如果启动ES的时候出现 Permission denied则可能是当前的用户没有对XX文件或目录的操作权限;

举报

相关推荐

0 条评论