【一、环境】

  1. 操作系统:CentOS Linux release 8.0.1905 (Core)
  2. 最低配置:2核4G
  3. 最新es软件包官网地址:https://www.elastic.co/downloads/elasticseasrch

【二、硬件环境】

  • 主机配置信息

IP

子网掩码

网关

用户名

密码

作用

172.20.33.100

255.255.0.0

172.20.30.1

root

root

主节点

user1

user1

172.20.33.101

255.255.0.0

172.20.30.1

root

root

从节点1

user1

user1

172.20.33.102

255.255.0.0

172.20.30.1

root

root

从节点2

  • 网络配置

开机自动联网

nmcli connection modify ens192 connection.autoconnect yes

配置IP地址

nmcli connection modify  ens192 ipv4.addresses '192.168.49.139'

配置网关

nmcli connection modify  ens192 ipv4.gateway '172.20.48.1'

静态IP地址

nmcli connection modify ens192 ipv4.method manual

重新加载配置文件

nmcli connection reload

重新激活网卡

nmcli connection up ens192

sshd服务开机自启动

systemctl enable sshd

nmcli网络管理开机自启动

systemctl enable NetworkManager

问题1:ssh root@172.20.49.140时,出现:ssh_exchange_identification: read: Connection reset by peer,ssh在交换身份信息时,被对方重置了连接。

解决:查看服务器网关是否和本机电脑一致

【注】在网关一致,IP地址配置正确,并且重新加载网络配置文件、重新激活网卡后,如果还是ssh登录失败,直接init 6重启服务器。

  • 准备安装目录

目录名称

作用

命令

/usr/local/soft

存放tar.gz源文件包

mkdir  /usr/local/soft

/usr/local/softins

文件安装目录

mkdir  /usr/local/softins

/usr/local/data

数据文件存放目录

mkdir  /usr/local/data

  • 准备安装包

名称

版本

jdk-8u241-linux-x64.tar.gz

Jdk8

elasticsearch-6.2.2.tar.gz

Es6.2.2

elasticsearch-ik.zip

和es6.2.2配套的ik分词器

elasticsearch-pinyin.zip

和es6.2.2配套的拼音分词器

【注】要安装es、hadoop等,需先安装jdk。

【三、安装ElasticSearch

        3台服务器分别安装jdk,并配置JAVA_HOME;

        3台服务器分别安装Elasticsearch,安装路径为:/usr/local/softins/es。

  1. 解压缩文件到指定目录 

这里以“/usr/local/softins/es”为例。

tar -zxvf elasticsearch-6.2.2.tar.gz -C  /usr/local/softins/es

解压后的文件中,bin是运行的脚本,config是设置文件,lib中存储依赖的包。

图 35 列表内容

2. 新建用户

# 创建用户组

groupadd comUser

# 创建用户

useradd -g comUser user1

# 为用户user1设定登录密码

passwd user1

3. 授权

为了让comUser用户拥有对elasticsearch的执行权限,在root用户权限下解压后,需要对软件包更改属性组。

chown -R comUser.user1 /usr/local/softins/es/elasticsearch-6.2.2

创建数据目录,修改group属性。

mkdir -p /usr/local/data/es/indexdata/

chown -R comUser.user1 /usr/local/data/es/indexdata/

创建日志目录,修改group属性为comUser.user1

mkdir -p  /usr/local/data/es/logs

chown -R comUser.user1 /usr/local/data/es/logs/

也可以直接给/usr/local/data/es授权。

chown -R comUser.user1 /usr/local/data/es

4.配置elasticsearch文件

编辑elasticsearch.yml文件,配置相关信息。

切换到/usr/local/softins/es/elasticsearch-6.2.2目录下,执行如下命令:

# 切换当前目录

cd /usr/local/softins/es/elasticsearch-6.2.2

# 编辑文件

vim ./config/elasticsearch.yml

配置内容如下:

# 设定es集群名称

cluster.name: my-es

# 设置es当前节点名称,用于区分不同节点

node.name: master

# 修改数据目录

path.data: /usr/local/data/es/indexdata/

# 日志目录位置

path.logs: /usr/local/data/es/logs/

# 监听访问地址为任意网段

network.host: 0.0.0.0

# 服务监听端口

http.port: 9200

5.修改系统参数

修改系统参数的目的是确保系统有足够的资源启动Elasticsearch。

  • 切换到root用户下,修改资源参数,编辑/etc/security/limits.conf文件。
vim /etc/security/limits.conf

添加如下内容。

* soft nofile 65536

* hard nofile 131072

* soft nproc 65536

* hard nproc 131072

  • 修改内核参数,编辑/etc/sysctl.conf文件。
vim /etc/sysctl.conf
  • 添加如下内容:
vm.max_map_count=262144
  • 保存退出后,从指定的文件加载系统参数。
sysctl -p

6、配置jvm参数

如果显示Java虚拟机内存不够,则可以在config\jvm.options配置文件中调整内存大小 。其中,Xms参数表示堆空间的初始值,Xmx参数表示堆空间的最大值,应该把最小和最大JVM堆设置成相同的值,例如:

-Xms2g

-Xmx2g

执行命令,编辑jvm.options配置文件各参数值。

vim jvm.options

 7、启动es

【注】启动es需要普通用户

  • 切换用户到user1
su user1
  • 进入到启动文件目录下
cd /usr/local/softins/es/elasticsearch-6.2.2/bin
  • 启动
nohup ./elasticsearch &
  • 以root用户查看9200端口是否开启
netstat -ntap | 9200

ES集群可以提高插入效率吗 es加入集群_elasticsearch

成功启动Elasticsearch后,会在解压目录下增加两个文件夹:data和logs文件夹。data文件夹用于存储索引数据,logs文件夹用于记录日志。因为创建索引比较耗时,所以文档会被预先写入到一个日志目录中。

8、设置防火墙

  •  关闭防火墙
systemctl stop firewalld
  • 查看防火墙状态
systemctl status firewalld
  •  开放9200端口
firewall-cmd --permanent --add-port=9200/tcp
  •  重新加载防火墙
firewall-cmd --reload

在浏览器中访问Elasticsearch,如下图所示。通过浏览器访问时需要将CentOS防火墙关闭或者在防火墙开启9200端口。

ES集群可以提高插入效率吗 es加入集群_ES集群可以提高插入效率吗_02

 9、集群配置

只需配置的cluster.name保持一致,Elasticsearch节点即可自动形成集群。另外添加集群内节点的所有IP,便于发现集群内的节点,编辑elasticsearch.yml,修改内容如下:

#  配置集群中的节点

discovery.zen.ping.unicast.hosts:["172.20.49.138:9300", "172.20.49.139:9300","172.20.49.140:9300"]

#

discovery.zen.minimum_master_nodes: 2

从节点的配置和上述一致,只需node.name保持唯一即可。

安装分词插件,拼音插件,可以查看博客的其他文章