概述
centos 7安装部署 Elasticsearch 集群
环境准备
准备三个主机,IP分别为192.168.100.1,192.168.100.2,192.168.100.3
三个主机最好都有一块数据盘(2T)
三个主机安装java环境
- 先查看本地是否自带java环境
yum list installed |grep java
- 卸载自带的java(注:需要root权限)
yum -y remove java-1.8.0-openjdk*
yum -y remove tzdata-java*
- 下载jdk
这里不能使用wget下载因为:
去Oracle官网下载过jdk的应该都知道,下载之前需要同意Oracle的安装协议,不然不能下载,但是用wget的方式,默认是不同意,虽然能下载下来,但是下载下来的文件会有问题,所以在Linux上解压一直失败。
wget下载后解压会报如下错误。
[root@localhost ~]# tar -xvf jdk-8u171-linux-x64.tar.gz
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
所以这里需要去官网下载后手动上传到服务器上了。
- 安装
mkdir -p /usr/local/java
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/java/
- 添加环境变量,在/etc/profile文件中添加
export JAVA_HOME=/usr/local/java/jdk1.8.0_171
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
- 验证
输入source /etc/profile,使配置立即生效
检查Java安装和配置情况 输入java -version,然后回车
部署es集群
如果主机有数据盘,先挂载数据盘
# 安装lvm2
yum install lvm2 -y
# 查看当前未挂载的硬盘
fdisk -l
# 创建pv
pvcreate /dev/sdb
# 创建vg
vgcreate vgdata /dev/sdb
# 创建lv 使用一个即可
# 创建lv 并把vg的2T空间给到lv
lvcreate -L 2T -n lvdata vgdata
# 创建lv 并把vg的所有空间给到lv
lvcreate -l +100%FREE -n lvdata vgdata
# 格式化lvdata
mkfs -t xfs /dev/vgdata/lvdata
# 创建挂载目录
mkdir /data
# 挂载逻辑卷到挂载目录
mount /dev/vgdata/lvdata /data
# 查UUID: blkid
vi /etc/fstab
# 添加内容:
UUID=XXX /date xfs defaults 0 0
# 查看结果:df -h
- 创建用户 es(es不可以使用root用户启动,我这里使用es用户)
三个机器都要执行
#使用root用户的操作 添加一个用户,叫做es
useradd es
# 使用root用户创建目录
mkdir -p /export/servers/es
mkdir -p /export/data/es
mkdir -p /export/logs/es
# 将目录的权限分配给es用户
chown -R es /export/servers/es
chown -R es /export/data/es
chown -R es /export/logs/es
或者:
chown es:es /export/servers/es
chown es:es /export/data/es
chown es:es /export/logs/es
# 设置下es用户的密码,这里建议使用es作为密码,也就是账户名和密码一样。
passwd es
<input es>
# 切换到es用户
su es
- 下载es安装包
切换到es用户下,下载安装包
su es
# 进入Home目录
cd /home/es
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch6.6.0.tar.gz
解压到/export/servers/es/目录
tar -zxvf elasticsearch-6.6.0.tar.gz -C /export/servers/es/
- 修改配置文件
vim /export/servers/es/elasticsearch-6.6.0/config/elasticsearch.yml
# 修改以下内容
#集群的名称
cluster.name: elasticsearchs
#节点名称,其余两个节点分别为node-2 和node-3
node.name: node-1
#指定该节点是否有资格被选举成为master节点,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master
node.master: true
#允许该节点存储数据(默认开启)
node.data: true
#索引数据的存储路径
path.data: /data/es
#日志文件的存储路径
path.logs: /export/logs/es
#设置为true来锁住内存。因为内存交换到磁盘对服务器性能来说是致命的,当jvm开始swapping时es的效率会降低,所以要保证它不swap
bootstrap.memory_lock: true
#绑定的ip地址 (每个节点都配置自己的IP)
network.host: 192.168.100.1
#设置对外服务的http端口,默认为9200
http.port: 9200
# 设置节点间交互的tcp端口,默认是9400
transport.tcp.port: 9400
#Elasticsearch将绑定到可用的环回地址,并将扫描端口9400到9405以尝试连接到运行在同一台服务器上的其他节点。
#这提供了自动集群体验,而无需进行任何配置。数组设置或逗号分隔的设置。每个值的形式应该是host:port或host
#(如果没有设置,port默认设置会transport.profiles.default.port 回落到transport.tcp.port)。
#请注意,IPv6主机必须放在括号内。默认为127.0.0.1, [::1]
discovery.zen.ping.unicast.hosts: ["192.168.100.1:9400", "192.168.100.2:9400", "192.168.100.3:9400"]
#如果没有这种设置,遭受网络故障的集群就有可能将集群分成两个独立的集群 - 分裂的大脑 - 这将导致数据丢失
discovery.zen.minimum_master_nodes: 3
- 验证elasticsearch.yml配置
grep '^[a-z]' /export/servers/es/elasticsearch-6.6.0/config/elasticsearch.yml
- 调整jvm内存
vim /export/servers/es/elasticsearch-6.6.0/config/jvm.options
#默认是1g官方建议对jvm进行一些修改,不然很容易出现OOM,参考官网改参数配置最好不要超过内存的50%
-Xms1g
-Xmx1g
- 修改limits.conf文件
vim /etc/security/limits.conf
# 注意:这里的* 代表所有用户
* soft nofile 65536
* hard nofile 65536
* soft nproc 2048
* hard nproc 4096
* soft memlock unlimited
* hard memlock unlimited
- 修改sysctl.conf文件
vim /etc/sysctl.conf
vm.max_map_count=655360
fs.file-max=655360
注意:之后需要执行一句命令sysctl -p使系统配置生效(使用root用户)。
- 修改system.conf文件
vim /etc/systemd/system.conf #添加以下配置
DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity
# 重启
$ systemctl daemon-reload
- 分别启动三台Elasticsearch
注意:请使用es用户启动 su - es
测试启动
/export/servers/es/elasticsearch-6.6.0/bin/elasticsearch
后台启动
/export/servers/es/elasticsearch-6.6.0/bin/elasticsearch -d
- 验证Elasticsearch集群
# 查看集群名称等信息
http://192.168.100.1:9200
# 集群相关API
http://192.168.100.1:9200/_cat
# 查看集群节点
http://192.168.100.1:9200/_cat/nodes?v
# 验证集群磁盘分配情况
http://192.168.100.1:9200/_cat/allocation?v
# 验证集群健康状况
http://192.168.100.1:9200/_cat/health?v
# 查看集群的索引数
http://192.168.100.1:9200/_cat/indices?v
最后
以上就是苗条跳跳糖为你收集整理的centos 7安装部署 Elasticsearch 6.6.0 三节点集群的全部内容,希望文章能够帮你解决centos 7安装部署 Elasticsearch 6.6.0 三节点集群所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复