CentOS搭建Elasticsearch6.8.0集群

一、概述

**索引与数据存储隔离的方案:**尽量只将参与条件检索的字段索引到ES中。

中文官网 : https://www.elastic.co/cn

二、搭建集群

软件版本
  • openjdk1.8.0

  • Elasticsearch 6.8.0(7.x中去掉了type,建议用7.x以上)

架构信息
系统节点名称IP地址
centos7es-node-1172.16.227.129
centos7es-node-2172.16.227.130
centos7es-node-3172.16.227.132
1.安装JDK

Elasticsearch是用Java语言开发的,运行在Jvm中,所以要安装JDK。

# 安装1.8或1.8以上版本
java -version
yum install -y java-1.8.0-openjdk-devel
2.安装ES
# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.0.rpm
# 安装elasticsearch
rpm -ivh elasticsearch-6.8.0.rpm
3.JVM配置

可以使用默认值,无需修改。

vim /etc/elasticsearch/jvm.options
-Xms1g              # JVM的堆内存的初始大小默认1g
-Xmx1g              # JVM的堆内存的最大大小默认1g
4.目录说明
/etc/elasticsearch/elasticsearch.yml                            # 配置文件
/etc/elasticsearch/jvm.options                                  # JVM相关的配置
/etc/elasticsearch/log4j2.properties                            # 日志系统定义
/usr/share/elasticsearch                                        # 默认安装目录
/var/lib/elasticsearch                                          # 数据默认存放位置
5.数据与日志目录

日志和数据文件会非常大,最好放在额外的盘或者方便NFS使用。

mkdir -p /opt/elasticsearch/data
mkdir -p /opt/elasticsearch/log
6.集群配置
vim /etc/elasticsearch/elasticsearch.yml
# ---------------------------------- Cluster -----------------------------------
# 集群名称(局域网内,同一网段,集群名称相同会自动组建成集群)
cluster.name: my-es-cluster
# ------------------------------------ Node ------------------------------------
node.name: es-node-1                               # 节点名称,仅仅是描述名称,用于在日志中区分
# ----------------------------------- Paths ------------------------------------
path.data: /opt/elasticsearch/data                 # 数据的默认存放路径
path.logs: /opt/elasticsearch/log                  # 日志的默认存放路径
# ---------------------------------- Network -----------------------------------
network.host: 172.16.227.129                       # 当前节点的IP地址
http.port: 9200                                    # 对外提供服务的端口,9300为集群服务的端口
# 添加如下内容
# culster transport port
# transport.tcp.port: 9300
# transport.tcp.compress: true
# --------------------------------- Discovery ----------------------------------
# 集群个节点IP地址,也可以用域名
discovery.zen.ping.unicast.hosts: ["172.16.227.129", "172.16.227.130","172.16.227.132"]
# 为了避免脑裂,集群节点数最少为 半数+1
discovery.zen.minimum_master_nodes: 2
7.权限配置

elasticsearch不允许使用root用户来启动,创建一个系统用户启动elasticsearch集群。

创建ES运行用户
# 创建用户组
groupadd es
# 创建用户并添加至用户组
useradd es -g es
# 更改用户密码(qq)
passwd es
修改es用户权限

elasticsearch要求启动用户最大打开文件数最少为65535,elasticsearch要求启动用户最大线程数最少为4096。否则无法启动。

# 在文件的最后追加如下配置(不需要重启,登录该用户即生效):
vim /etc/security/limits.conf

# soft:软限制(软限制是警告的设定,可以超过这个设定的值,但是若超过,则有警告信息。)hard:硬限制
# nofile:最大打开文件数
# nproc:最大线程数
es soft nofile 65535
es hard nofile 65537
es soft nproc 5000
es hard nproc 5000

# ---------------------------- 验证 ----------------------------
# 查看当前用户的文件软限制
ulimit -S -n
# 查看当前用户的文件硬限制
ulimit -H -n
# 查看当前用户的进程软限制
ulimit -S -u
# 查看当前用户的进程硬限制
ulimit -H -u
修改ES目录权限
# 不同的版本设置权限不同,find / -name elasticsearch
chown -R es.es /etc/sysconfig/elasticsearch
chown -R es.es /etc/elasticsearch/
chown -R es.es /var/lib/elasticsearch
chown -R es.es /usr/share/elasticsearch/
chown -R es.es /var/log/elasticsearch/
# 自定义日志文件和数据文件权限
chown -R es.es /opt/elasticsearch/*
启动停止服务
# 需切换为es用户
su es
cd /usr/share/elasticsearch/bin/
# 后台启动
./elasticsearch -d
# 查看进程
ps aux | grep elasticsearch
kill pid # 有延迟
验证服务
curl -i "http://172.16.227.129:9200"

二、安装head插件

Elasticsearch Head Plugin:head插件是一个ES集群的web前端工具,它提供可视化的页面方便用户查看节点信息,对ES进行各种操作,如查询、删除、浏览索引等。

head插件安装一个节点即可。

1.安装Node

head插件由nodejs开发。

su root
cd /root/software
# 下载nodejs最新的bin包
wget https://nodejs.org/dist/latest/node-v17.5.0-linux-x64.tar.gz
tar zxvf node-v17.5.0-linux-x64.tar.gz
# 创建软链接
ln -s /root/software/node-v17.5.0-linux-x64/bin/node /usr/bin/node
ln -s /root/software/node-v17.5.0-linux-x64/bin/npm /usr/bin/npm
# 检查是否安装成功
node -v
npm
2.修改npm镜像
# npm加速
npm install -g cnpm --registry=https://registry.npm.taobao.org
ln -s /root/software/node-v17.5.0-linux-x64/bin/cnpm /usr/local/bin/cnpm
cnpm -v
3.安装head
cd /usr/local/
# yum install -y git
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
cnpm install
4.配置head

head插件默认访问 http://localhost:9200 的ES,head 和 es 不在同一节点上,则需要修改。

vim /usr/local/elasticsearch-head/_site/app.js
http://localhost:9200 # 改为 http://172.16.227.129:9200
5.配置elasticsearch.yml

head服务与es服务存在跨域问题,如果页面没反应,页面F12查看跨域问题:

vim /etc/elasticsearch/elasticsearch.yml
# 最后追加
http.cors.enabled: true
http.cors.allow-origin: "*"
# 重启ES

三、安装IK分词器

ElasticSearch本身带有分词插件,但对中文分词效果不理想。

https://github.com/medcl/elasticsearch-analysis-ik

IK versionES version
master7.x -> master
6.x6.x
5.x5.x
1.10.62.4.6
1.9.52.3.5
1.8.12.2.1
1.7.02.1.1
1.5.02.0.0
1.2.61.0.0
1.2.50.90.x
1.1.30.20.x
1.0.00.16.2 -> 0.19.0
解压到plugins目录下

下载编译好的zip包,不要下载源码tar.gz包,版本一定要对应。

https://github.com/medcl/elasticsearch-analysis-ik/releases

cd /usr/share/elasticsearch/plugins && mkdir ik
# 解压并移动(没有父文件夹)
cp /root/software/elasticsearch-analysis-ik-6.8.0.zip /usr/share/elasticsearch/plugins/ik
cd ik
unzip elasticsearch-analysis-ik-6.8.0.zip
cd ../
chown -R es.es *
# 重启ES
su es
cd /usr/share/elasticsearch/bin/
# 后台启动
./elasticsearch -d

四、启动

0、关闭防火墙
# centos
systemctl status firewalld.service
systemctl stop firewalld.service
# 禁用
systemctl disable firewalld.service
1、启动elasticsearch集群

在三台机器上,分别启动elasticsearch即可。

su es
cd /usr/share/elasticsearch/bin/
# 后台启动
./elasticsearch -d
2、启动elasticsearch-head
cd /usr/local/elasticsearch-head
# grunt启动
# grunt server &
# npm run start &
nohup npm start &
3、访问elasticsearch-head界面
http://172.16.227.129:9100/
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上富贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值