第零步:文件准备
需要准备的文件如下:
- 第一个文件是elasticsearch的安装包,这里用的是7.14.0的版本;
- 第二个文件是ik中文分词器,可以更智能的将一个中文语句按“词”进行拆分查询,默认的分词器会将语句逐字拆分,不太适用于中文语境。
- 第三个是head插件,可以更直观的操作elasticsearch,不过在装了Kibana后,就主要以Kibana为主来操作ES。
- 第四个是JDK 11的安装程序。
- 第五个是node安装包,由于head插件是基于nodejs开发,所以需要nodejs。
文件准备好后,可以开始执行安装。
第一步:安装JDK 11
1:解压JDK安装包至/usr/local/java目录:
2:配置环境变量:
执行vi /etc/profile命令,在文档末尾增加:
export JAVA_HOME=/usr/local/java/jdk-11.0.11
export ES_JAVA_HOME=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH
执行 :x 保存并退出后,执行source /etc/profile命令使配置生效。
3:检查安装是否完成:
[root@aris ~]# java -version
java version "11.0.11" 2021-04-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.11+9-LTS-194)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.11+9-LTS-194, mixed mode)
出现上述内容则表示安装成功,可以进行下一步操作。
第二步:安装ES 7.14.0
如果你的系统配置足够(主要是可用内存大于1G)ES 7.14几乎是开箱即用的。
1:ES不允许以root身份运行,因此需要先创建专用用户,这里创建一个elastic用户,专门用于启动ES相关的内容。
使用 useradd elastic 命令添加用户;
使用 passwd elastic 命令为用户设置密码;
2:将ES安装文件解压至/usr/local/elastic目录。
在elastic所在文件夹中,执行chown -R elastic:elastic 命令,将该文件夹及其所有内容的所有者改为elastic。
3:其实这时候已经可以用elastic用户启动ES了,但通常用来开发测试的服务器配置不够,需要调整配置参数。另一方面,ES启动后默认只允许在本地访问,如果要通过服务器的外网IP访问ES,也需要修改一些配置,要修改位于config目录下的
elasticsearch.yml文件。
在该文件的NET WORK部分:
Discovery和Various部分
最后两行配置主要用于允许跨域访问,ES 默认端口是9200,Head默认使用9100,当用浏览器打开head页面,连接9100端口的ES时,浏览器会提示跨域无法访问,这里的配置就是为了解决这个问题。
另外需要调整jvm堆大小(如果配置内存足够大4G以上,则可以不修改这个配置):
接下来配置/etc/security/limits.conf文件,在末尾增加下面两行:
elastic soft nofile 65536
elastic hard nofile 131072
配置用于修改分配给elastic用户的文件描述符数量,解决启动可能出现 max number of threads [2048] for user [es] is too low, increase to at least [4096]的问题。
4:尝试启动ES
以elastic用户身份进入ES的bin目录,执行./elasticsearch -d启动:
如果启动报错,根据错误提示排查即可,没有错误输出,则可以尝试访问:
看到经典的问候语:“You know,for Search”则表示启动成功,从外部尝试访问:
至此,ES安装成功。
第三步:安装node环境:
1:node安装也非常简单,将下载的node-v14.17.4-linux-x64.tar文件解压到/usr/local/node目录,配置环境变量即可:
环境变量仍然是在/etc/profile中配置:
export NODE_HOME=/usr/local/node/node-v14.17.4-linux-x64/
export PATH=$NODE_HOME/bin:$PATH
2:检查安装是否成功:
3:安装cnpm,也非常简单,一条命令搞定:
npm install -g cnpm --registry=https://registry.npm.taobao.org
安装完成后,执行cnpm命令检查是否安装成功:
第四步:安装head插件
head插件安装也非常简单:
1:解压安装文件elasticsearch-head-master.zip,我这里还是解压到/usr/local/elastic/目录:
2:install一下然后启动
进入解压后的elasticsearch-head-master目录,执行cnpm install:(我这里是已经执行过了的,第一次执行会需要一些时间)
启动(使用nohup可以让程序在后台运行,末尾的&符号可以让你在启动程序后继续执行命令):
如果需要看启动日志,则查看nohup.out文件即可,如果不想将日志输出到这里,可以使用 > 重定向输出。
3:访问验证:
浏览器输入 http://服务器ip:9100 来访问:
如果无法访问,需要查看上一步的启动日志。
此时还没连接到ES,修改connect按钮左边的地址为服务器ip:9200后,点击连接按钮连接到ES:
(这里已经有了一些练习时建立的索引)
至此,head插件安装完毕。
第五步:安装Kibana
Kibanaan也是开箱即用的,将下载的安装文件kibana-7.14.0-linux-x86_64.tar.gz解压,进入解压后文件夹中的bin目录,执行kibana文件即可成功启动:
看到下面的提示信息表示已经启动成功:
尝试访问5601端口,看到下面的界面表示启动成功:
第六步:IK分词器安装
IK分词器是ES的一个插件,只需要解压文件到plugin文件夹下就可以:
重启ES即可使IK分词器生效。
上述安装流程只适用于个人学习,正式生产环境中,即使不使用集群环境(ES单节点也是自成集群),也需要进行安全配置后才可以对外提供访问。
环境准备好后,ES的学习重点在于熟练掌握ES提供的Restful风格的API接口,如何操作索引和文档,这些熟悉后再去学习与springboot的集成都是非常简单的。