将知了迁移至新IaaS时,需要重新在新的虚拟机上部署ES,在此进行记录。
1. 部署情况
4核4g 虚拟机两台:
36.136(主节点 node-1 + es-head)
36.137(子节点 node-2 + web)
所需安装包:
elasticsearch-6.5.0.tar.gz(es)
elasticsearch-analysis-ik-6.5.0.zip(ik分词器插件)
elasticsearch-head-master.zip(es-head管理页面)
2. 准备工作
安装java8(使用yum安装,yum清华源可能很慢,建议更换阿里源)
上传安装包到 /usr/local
yum换源:
1
2
3
4
5sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sudo yum clean all
sudo yum makecache防火墙:
1
2
3
4
5
6
7
8
9firewall-cmd --permanent --add-port=9300/tcp
firewall-cmd --permanent --add-port=9200/tcp
firewall-cmd --permanent --add-port=9100/tcp
firewall-cmd --reload
firewall-cmd --list-all
3. 部署
部署elasticsearch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17tar -zxvf elasticsearch-6.5.0.tar.gz //解压压缩包
cd ./elasticsearch-6.5.0/conf/
// 将配置文件拷贝替换 conf 目录下的空配置文件
// (elasticsearch.yml 、jvm.options)
// 这两个配置文件放在附件供参考,注意需要修改部分内容!
vim elasticsearch.yml
// 注意设置 “集群名称,节点名称,节点绑定ip,集群ip,跨域开放”
vim jvm.options
// 没有需要改动的部分部署ik分词器
1
2
3
4
5mkdir ik //在elasticsearch-6.5.0的plugin目录下创建名为ik的文件夹
unzip elasticsearch-analysis-ik-6.5.0.zip //解压ik分词器压缩包到elasticsearch-6.5.0到./plugin/ik目录下
// 此时启动es时将会自动从plugin文件夹加载分词器插件部署es-head
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19unzip elasticsearch-head-master.zip // 首先解压压缩包
// 需要nodejs环境
curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs
npm config set registry [https://registry.npm.taobao.org](https://registry.npm.taobao.org/) //node也要换源!
cd elasticsearch-head-master //进入到解压后的head目录下
npm install
npm install -g grunt-cli
grunt server & //启动
// 访问对应ip的9100端口即可启动elasticsearch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32adduser ESuser // 创建ESuser用户,es必须由该用户启动
// 修改系统限制,防止es启动失败
vim /etc/security/limits.conf
// 加入如下配置
\* soft nofile 65536
\* hard nofile 131072
\* soft nproc 65536
\* hard nproc 65536
// -------------
echo "vm.max_map_count = 262144" >> /etc/sysctl.conf
/sbin/sysctl -p
chown -R ESuser:ESuser /usr/local/elasticsearch-6.5.0/ // 开放ESuser用户启动权限
cd elasticsearch-6.5.0/bin/
su ESuser // 切换到ESuser用户进行启动
./elasticsearch // 前台启动测试
./elasticsearch -d // 后台运行
// 访问 ip+9200 端口观察是否正常启动
// 进入 ip+9100 端口通过head查看集群是否绑定成功创建索引:
使用eshead创建索引并不方便,这里建议使用postman通过请求接口创建索引。
postman可以帮助我们格式化创建索引时所需的json格式数据,完整的json数据在附件中。
这部分数据包含 “分片数、备份数、自定义分词、文档类型” 相关内容。
1 | PUT http://192.168.36.136:9200/knowledge_ms |
- 启动项目:
至此,项目可以正常启动!
启动项目后,还需通过rebuild接口对索引进行重建。