一、概述二、搭建集群
软件版本架构信息1.安装JDK2.安装ES3.JVM配置4.目录说明5.数据与日志目录6.集群配置7.权限配置
创建ES运行用户修改es用户权限修改ES目录权限启动停止服务验证服务 二、安装head插件
1.安装Node2.修改npm镜像3.安装head4.配置head5.配置elasticsearch.yml 三、安装IK分词器
解压到plugins目录下 四、启动
0、关闭防火墙1、启动elasticsearch集群2、启动elasticsearch-head3、访问elasticsearch-head界面
一、概述**索引与数据存储隔离的方案:**尽量只将参与条件检索的字段索引到ES中。
中文官网 : https://www.elastic.co/cn
二、搭建集群 软件版本
openjdk1.8.0
Elasticsearch 6.8.0(7.x中去掉了type,建议用7.x以上)
架构信息| 系统 | 节点名称 | IP地址 |
|---|---|---|
| centos7 | es-node-1 | 172.16.227.129 |
| centos7 | es-node-2 | 172.16.227.130 |
| centos7 | es-node-3 | 172.16.227.132 |
Elasticsearch是用Java语言开发的,运行在Jvm中,所以要安装JDK。
# 安装1.8或1.8以上版本 java -version yum install -y java-1.8.0-openjdk-devel2.安装ES
# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.0.rpm # 安装elasticsearch rpm -ivh elasticsearch-6.8.0.rpm3.JVM配置
可以使用默认值,无需修改。
vim /etc/elasticsearch/jvm.options -Xms1g # JVM的堆内存的初始大小默认1g -Xmx1g # JVM的堆内存的最大大小默认1g4.目录说明
/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/log6.集群配置
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: 27.权限配置
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.安装Nodehead插件由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 npm2.修改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 -v3.安装head
cd /usr/local/ # yum install -y git git clone git://github.com/mobz/elasticsearch-head.git cd elasticsearch-head cnpm install4.配置head
head插件默认访问 http://localhost:9200 的ES,head 和 es 不在同一节点上,则需要修改。
vim /usr/local/elasticsearch-head/_site/app.js http://localhost:9200 # 改为 http://172.16.227.129:92005.配置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 version | ES version |
|---|---|
| master | 7.x -> master |
| 6.x | 6.x |
| 5.x | 5.x |
| 1.10.6 | 2.4.6 |
| 1.9.5 | 2.3.5 |
| 1.8.1 | 2.2.1 |
| 1.7.0 | 2.1.1 |
| 1.5.0 | 2.0.0 |
| 1.2.6 | 1.0.0 |
| 1.2.5 | 0.90.x |
| 1.1.3 | 0.20.x |
| 1.0.0 | 0.16.2 -> 0.19.0 |
下载编译好的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.service1、启动elasticsearch集群
在三台机器上,分别启动elasticsearch即可。
su es cd /usr/share/elasticsearch/bin/ # 后台启动 ./elasticsearch -d2、启动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/



