半年来前,做了一个小项目,采用SpringBoot框架,数据存储采用的是ElasticSearch和MySQL。本地编完码后,打包为jar,开始在服务器端部署。当时看了好多博客,后来也记录下了自己在服务器端的部署过程,还是搬到这里来吧,免得文档丢了,浪费一番心血。这里主要说一下,我在自己的个人服务器上安装ES的过程:
A 一堆软件
- Xshell,用它在服务器上面进行命令操作
链接:https://pan.baidu.com/s/1rX3-lUzaOSZl7ca2Abv1PQ
提取码:ze03
- JDK,java程序的运行环境
链接:https://pan.baidu.com/s/10gH1lIkdHacKnYLTQCMxqw
提取码:ho6i
- ElasticSearch7.4.2,存储索引
链接:https://pan.baidu.com/s/1swag9FOx09Nz06sXmYnkuQ
提取码:wf90
- Node,好像是es-head-master的运行环境?(表述可能不太对,这个我忘了。。。)
链接:https://pan.baidu.com/s/1Bl25ELklXG-et89ow07Y8g
提取码:7c5d
- es-head-master,ElasticSearch的可视化索引管理工具,就相当于MySQL workbench对MySQL
链接:https://pan.baidu.com/s/1HMOX31mOTxyDpeIf52hYEA
提取码:80a8
6.ik分词插件,放在ElasticSearch的plugins(插件)目录下,用于中文分词
链接:https://pan.baidu.com/s/1Gm9Rpcde3Q2mF3CscjEwHA
提取码:slmn
B 项目代码环境配置
因为上面有的软件已经下载过了,所以下面的配置步骤中,关于下载软件的步骤命令可以忽略哈。这是我七八个月以前写的文档里的,我这里就直接搬过来了。总体思路不会错的。
1.ElasticSearch7.4.2的配置
首先,安装jdk
参考链接:https://blog.csdn.net/u012176588/article/details/76038646
(1)在xshell中,cd /home/ 回车
在home中添加文件夹:mkdir java 回车
(2)利用xftp将下载好的jdk上传到创建好的java文件夹中
(3)在xshell中,解压jdk:
tar -xvf ( jdk-7u79-linux-x64.tar.gz 这个是你使用xftp上传的jdk名)
(4)检查jdk是否在/home/java/文件夹中。如果在,则配置jdk:vi /etc/profile
添加:
export JAVA_HOME=/home/java/jdk1.7.0_79
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=./:JAVA_HOME/lib:$JRE_HOME/lib
(5)重新启动: shutdown -r now
输入:java -version查看java版本。
至此,jdk就安装好了,位于服务器上的文件夹,可以输入命令进行查看:cd /home/java
然后, 安装ES
参考链接:
https://www.cnblogs.com/ccbloom/p/11896806.html
https://blog.csdn.net/qq_33417321/article/details/100049355
https://www.jianshu.com/p/fc9012820f08
前提:服务器上开放9200,9300端口。开始~
(1)下载es及其分词器的压缩包,这里版本必须一致。
[root@es ~]# cd /usr/local/src/
[root@es src]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.2-linux-x86_64.tar.gz
[root@es src]# tar xf elasticsearch-7.4.2-linux-x86_64.tar.gz -C ../
[root@es src]# cd ../
[root@es local]# ln -s /usr/local/elasticsearch-7.4.2/ /usr/local/elasticsearch
[root@es local]# echo 'export PATH=/usr/local/elasticsearch/bin:$PATH' >>/etc/profile
[root@es local]# source /etc/profile
[root@es local]# mkdir -p elasticsearch/plugins/ik
[root@es local]# cd elasticsearch/plugins/ik
[root@es ik]# wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip
[root@es ik]# unzip elasticsearch-analysis-ik-7.4.2.zip
[root@es ik]# \rm elasticsearch-analysis-ik-7.4.2.zip
(2)es默认禁止使用root启动。创建普通账户es并授权。
[root@es ik]# cd /usr/local/
[root@es local]# useradd es
[root@es local]# passwd es
[root@es local]# chown -R es elasticsearch*
(3)切换为 es 普通用户修改配置并启动 elasticsearch.
[root@es local]# su - es
[es@es ~]$ cd /usr/local/elasticsearch/config/
配置elasticsearch.yml文件:
[es@es config]$ vim elasticsearch.yml
添加内容:
cluster.name: elk
node.name: node-1
node.master: true
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
http.cors.enabled: true
http.cors.allow-origin: "*"
配置jvm.options文件:
[es@es config]$ vim jvm.options
#默认是1g,有点大,我们修改为512M,默认配置如下
#-Xms1g
#-Xmx1g
#修改为512m
-Xms512m
-Xmx512m
启动ES:
#切换为普通用户wind(这是我自己已经创建过的一个普通用户)
[root@cat ~]# su - wind
#前台启动,可看到日志。(初次启动推荐使用,Ctrl+c中止)
[wind@cat ~]$ elasticsearch
#后台启动,ES后台运行
[wind@cat ~]$ elasticsearch -d
(4)启动过程中可能出现的错误及解决办法
ERROR: [1] bootstrap checks failed
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[root@cat ~]# vim /etc/sysctl.conf #追加以下内容
vm.max_map_count= 262145
(5)结果:
至此,es就安装好了,位于服务器上的文件夹,可以输入命令进行查看:cd /usr/local/
2.配置ElasticSearch的可视化索引管理工具:es-head-master
首先,安装node.js
参考链接:https://www.cnblogs.com/mmzuo-798/p/11190244.html
(1)解压上传到/usr/local/文件夹下,解压,重命名:
①tar -xvf node-v14.6.0-linux-x64.tar.xz
②mv node-v14.6.0-linux-x64 nodejs
确认一下nodejs下bin目录是否有node 和npm文件,若有则继续
(2)建立软连接,变为全局:
①ln -s /usr/local/nodejs/bin/npm /usr/local/bin/
②ln -s /usr/local/nodejs/bin/node /usr/local/bin/
(3)检查:执行node -v命令
至此,node.js就安装好了,位于服务器上的文件夹,可以输入命令进行查看:cd /usr/local/ 和ls
其次,安装Grunt
参考链接:
https://blog.csdn.net/haoqi9999/article/details/77018585
#安装grunt
npm install -g grunt-cli
#查看版本
grunt -version
若查看版本时报错:-bash: grunt: command not found
[root@cat /]# vi ~/.bash_profile
保存退出。
最后,安装es-head-master
参考链接:
https://blog.csdn.net/wang_zhenwei/article/details/78389253
- 下载head包:https://github.com/mobz/elasticsearch-head
- 进入elasticsearch-head-master目录,安装依赖:npm install
- 在elasticsearch的conæg目录下找到yml文件:elasticsearch.yml后编辑:vim
elasticsearch.yml 加入:
http.cors.enabled: true
http.cors.allow-origin: "*"
PS:head等插件访问es。设置参数的时候[key: value]中,冒号后面要有空格
- 修改elasticsearch-head-master配置:编辑Gruntfile.js里的connect属性(vim Gruntfile.js),加入一行hostname: ‘0.0.0.0’(若是在自己电脑上则改为localhost或*,这里都试下)
- 运行head插件:grunt server
(若后台运行,则nohup grunt server &)
- 网页测试
至此,es-head-master就安装好了,位于服务器上的文件夹,可以输入命令进行查看:cd /usr/local/application/和ls
关于上面的图里,测试的ip地址不一样,有部分不一致的地方,是因为这个过程我用三个个人服务器部署了三遍,踩了很多很多坑,最后才决定整理为一份文档,我记录的文档在下面:
(1)链接:https://pan.baidu.com/s/1_IPhkGeME5MO0DBmLOnIkw
提取码:q08l
(2)链接:https://pan.baidu.com/s/1v7cMolUP1lTxqQy1wPobSA
提取码:pezb
C 可能出现的问题错误总结
1.使用unzip解压缩命令出错:-bash: unzip: command not found
安装解压命令:yum install -y unzip zip
2.查看端口被占用的进程,并杀死进程:
(1)lsof -i:9200 #查看端口9200运行的进程,得到该进程的PID为2598
(2)kill -9 2598 #杀死进程
tips:当使用lsof命令报错:-bash: lsof: command not found
安装lsof命令:yum install -y lsof
D 项目上传和运行
1.jar包上传:rz
2.运行:java -jar demo-0.01-SNAPSHOT.jar(这个是你上传的jar包名)
- java -jar xxx.jar 关闭窗口,项目也停止运行
- nohup java -jar xxx.jar & 后台运行,关闭窗口,项目继续运行,会产生nohup.out文件
E 一些Linux命令
① ls:查看目录下的文件
② cd或cd~:返回根目录
③ mkdir 文件名:新建文件
④ mv 文件名 目录:移动文件到另一个目录下
⑤ mv 文件旧名 文件新名:给文件更改名称
⑥ rm -rf 文件夹或文件 :删除(谨慎使用)
最后,环境的安装总是一个比较费时的过程,总是莫名其妙的出现错误,唯一要说的是:耐心,忌浮躁,然后多查多看。古人说,书读百遍,其意自现。放到现在,大概就是,你走的每一步路都算数吧。