Elasticsearch 集群搭建
Elasticsearch 安装
安装前准备
环境准备
三台云服务器
node1/172.17.0.8 | node2/172.17.30.12 | node3/172.17.30.26 |
---|---|---|
主 | 从 | 从 |
创建用户
说明:ES 不能使用 root 用户来启动,必须使用普通用户来安装启动。需要创建一个普通用户以及定义一些常规目录用于存放我们的数据文件以及安装包等
# 创建一个新的用户
useradd es
passwd es
用户设置权限
# 给普通用户设置sudo权限,方便普通用户的操作三台机器使用 root 用户执行 visudo 命令然后为 es 用户添加权限
visudo
# 第100行
es ALL=(ALL) ALL
准备安装包
Elasticsearch-7.6.1 Download
Elasticsearch-head_百度网盘 密码: sh4d
安装并配置
安装包上传并创建文件夹
# 3 台服务器都安装
# 1. 创建 es 文件夹,并修改 owner 为 es 用户
mkdir -p /opt/server/es
chown -R es:es /opt/server/es
# 2. 解压 Elasticsearch
cd /opt/server/
tar -zvxf elasticsearch-7.6.1-linux-x86_64.tar.gz -C /opt/server/es/
解压安装包
注意:切换成 es
用户解压
cd /opt/server/
tar -zvxf elasticsearch-7.6.1-linux-x86_64.tar.gz -C /opt/server/es/
修改elasticsearch.yml
注意:切换成 es
用户修改配置文件
# 创建数据目录和日志目录
cd /opt/server/es/elasticsearch-7.6.1/config
mkdir -p /opt/server/es/elasticsearch-7.6.1/log
mkdir -p /opt/server/es/elasticsearch-7.6.1/data
rm -rf elasticsearch.yml
# 修改配置文件
vim elasticsearch.yml
# 增加以下内容
cluster.name: cluster-es
node.name: node1
path.data: /opt/server/es/elasticsearch-7.6.1/data
path.logs: /opt/server/es/elasticsearch-7.6.1/log
network.host: node1
http.port: 9200
discovery.seed_hosts: ["node1", "node2", "node3"]
cluster.initial_master_nodes: ["node1", "node2"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"
修改jvm.option
注意:切换成 es
用户修改配置文件
cd /opt/server/es/elasticsearch-7.6.1/config
vim jvm.options
# 修改以下内容
-Xms2g
-Xmx2g
启动并测试
启动
注意:切换成 es
用户启动
# 3 台服务器都执行
nohup /opt/server/es/elasticsearch-7.6.1/bin/elasticsearch 2>&1 &
# 或
/opt/server/es/elasticsearch-7.6.1/bin/elasticsearch -d
测试访问
http://node1:9200/?pretty
http://node2:9200/?pretty
http://node3:9200/?pretty
Elasticsearch-head 插件安装
说明
elasticsearch-head 插件是 elasticsearch 提供的一个用于图形化界面查看的一个插件工具,该插件更方便快捷的查看 elasticsearch 的管理界面
安装 nodejs
说明
Node.js 是一个 Javascript 运行环境 (runtime environment),它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言
下载安装包
# 下载
wget https://npm.taobao.org/mirrors/node/v8.1.0/node-v8.1.0-linux-x64.tar.gz
# 解压
tar -zxvf node-v8.1.0-linux-x64.tar.gz -C /opt/server/es/
创建软连接
sudo ln -s /opt/server/es/node-v8.1.0-linux-x64/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
sudo ln -s /export/server/es/node-v8.1.0-linux-x64/bin/node /usr/local/bin/node
修改环境变量
sudo vim /etc/profile
export NODE_HOME=/opt/server/es/node-v8.1.0-linux-x64
export PATH=:$PATH:$NODE_HOME/bin
source /etc/profile
验证
node -v
npm -v
安装 elasticsearch-head
解压安装包
# elasticsearch-head-compile.tar.gz 是已经编译好的安装包
tar -zxvf elasticsearch-head-compile.tar.gz -C /opt/server/es/
修改 Gruntfile.js
cd /opt/server/es/elasticsearch-head
vim Gruntfile.js
93行:hostname: ‘192.168.100.100’, 修改为:node1
connect: {
server: {
options: {
hostname: 'node1',
port: 9100,
base: '.',
keepalive: true
}
}
}
修改 app.js
cd /opt/server/es/elasticsearch-head/_site
vim app.js
在Vim中输入「:4354」,定位到第 4354 行,修改 http://localhost:9200 为 http://node1:9200
启动并测试 elasticsearch-head
启动 elasticsearch-head 插件
cd /opt/server/es/elasticsearch-head/node_modules/grunt/bin/
# 进程前台启动命令
./grunt server
#进程后台启动命令
nohup ./grunt server >/dev/null 2>&1 &
测试 elasticsearch-head 插件
访问 http://node1:9100/
安装 IK 分词器
文件下载
找到 elasticsearch-7.6.1
并下载
安装配置
创建 IK
mkdir -p /opt/server/es/elasticsearch-7.6.1/plugins/ik
解压
cd /opt/server/es/elasticsearch-7.6.1/plugins/ik
# 解压
unzip elasticsearch-analysis-ik-7.6.1.zip
重启 Elasticsearch
Elasticsearch for VSCode(用于Elasticsearch交互)
插件下载
说明
在 VScode 中安装 Elasticsearch for VScode 插件,该插件可以直接与 Elasticsearch 交互,开发起来非常方便
测试分词器
① 使用 VSCode
新建一个文件 sample.es
② 设置环境
鼠标右键,选择 命令面版
③ 使用 Standard 标准分词器
运行命令
根据执行结果可以看出, Standard 标准分词器
对中文的分词的支持并不是很友好
④ 使用 IK
分词器运行命令