一、前言
ElasticSearch的安装和配置比较麻烦,我自己捣鼓了个把小时各种报错慢慢解决才启动成功,所以如果小伙伴看我的文章来安装的话,请一定跟着我的步骤去配置,不要跳过配置的部分,以防止出现一些莫名其妙的异常导致ElasticSearch启动不成功,共勉~??
二、安装ElasticSearch
安装前需要准备的东西:
- 1、以非root用户【最好是用下面新建的用户】去安装JDK并配置JAVA_HOME,保证java环境正常搭建
- 2、去官网下载elasticsearch-7.6.1-linux-x86_64.tar.gz包,然后使用FTP文件上传工具来传到我们的Linux服务器上
准备完成以后就可以开始正式进入安装步骤了:
PS:elasticsearch需要安装JDK,建议不要以root用户来安装,配置JAVA_HOME目录地址需要操作elasticsearch的用户可以访问才能正常启动
1、添加分组【elasticsearch基于安全机制不能用root用户启动,所以需要创建新的用户来完成安装操作】
groupadd zh
2、增加用户并设置密码
useradd zhtest
passwd zhtest #此时会弹出让输入密码
3、添加用户zhtest到分组zh
usermod ‐G zh zhtest
4、设置sudo权限
visudo
zhtest ALL=(ALL) ALL #添加zhtest用户
5、添加成功并保存,切换到zhtest用户操作,创建文件目录
mkdir zhTools
cd zhTools
mkdir plugin
6、上传下载好的安装包到plugin目录【FTP工具】
7、解压
tar -xvf elasticsearch-7.6.1-linux-x86_64.tar.gz
8、移动解压后的目录并创建好数据和日志存放的目录
mv elasticsearch-7.6.1 ../
cd ..
cd elasticsearch-7.6.1/
mkdir zhtest
mkdir zhtest/data
mkdir zhtest/logs
9、修改elasticsearch下的jvm.options配置【主机配置高的话可以根据实际情况改大】
cd config/
vim jvm.options
-Xms512m #需要修改的配置
-Xmx512m #需要修改的配置
10、修改配置文件elasticsearch.yml
path.data: /home/zhtest/zhTools/elasticsearch-7.6.1/zhtest/data
path.logs: /home/zhtest/zhTools/elasticsearch-7.6.1/zhtest/logs
cluster.name: zh-elasticsearch
network.host: 0.0.0.0
http.port: 9200
node.name: node-1
cluster.initial_master_nodes: ["node-1"]
discovery.seed_hosts: ["127.0.0.1"]
node.master: true
node.data: true
http.cors.enabled: true
http.cors.allow-origin: "*"
11、由于ES内部指定了JDK版本,还需要修改启动脚本
vi elasticsearch
#配置自己的jdk8
export JAVA_HOME=/home/zhtest/zhTools/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
#添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/home/zhtest/zhTools/jdk1.8/bin"
else
JAVA=`which java`
fi
12、调大虚拟内存
vi /etc/sysctl.conf
vm.max_map_count=262144 #需要修改的配置
sysctl -p #加载内核参数
13、启动es
cd zhTools/elasticsearch-7.6.1/bin/
./elasticsearch &
三、安装kibana客户端
由于我的虚拟机空间有限,安装Kibana客户端的操作我装在我的windows系统的电脑上了,所以这里就不再演示安装过程了。
配置文件内容:
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://120.24.58.161:9200"] #这里是elasticsearch的访问地址
server.name: "zh-kibana"
i18n.locale: "zh-CN" #汉化
PS:kibana客户端版本号要和ES的版本号对应上,否则会有很多奇奇怪怪的问题要解决。
用上kibana以后就可以操作我们的elasticSearch啦~
附上常用查询语句:
1 #1、创建索引库【有梦想的肥宅】 2 PUT /zh_test_db 3 4 #2、查询索引库【有梦想的肥宅】 5 GET /zh_test_db 6 7 #3、删除索引库【有梦想的肥宅】 8 DELETE /zh_test_db 9 10 #4、添加文档【格式:POST /索引名称(7.6.1版本默认是_doc)/类型/id】 11 POST /zh_test_db/_doc/1/ 12 { 13 "name": "有梦想的肥宅", 14 "sex": "男", 15 "age": 27, 16 "address": "广西南宁", 17 "remark": "有趣又上进的灵魂~" 18 } 19 20 #5、更新文档【格式:PUT /索引名称(7.6.1版本默认是_doc)/类型/id】 21 PUT /zh_test_db/_doc/1/ 22 { 23 "name": "有梦想的肥宅【更新】", 24 "sex": "男", 25 "age": 27, 26 "address": "广西南宁", 27 "remark": "有趣又上进的灵魂~" 28 } 29 30 #6、查询索引库内的文档(数据)【有梦想的肥宅】 31 GET /zh_test_db/_doc/1 32 33 #7、删除索引库内的文档(数据)【有梦想的肥宅】 34 GET /zh_test_db/_doc/1 35 36 #8、设置分词器 37 PUT /zh_test_db 38 { 39 "settings": { 40 "index": { 41 "analysis.analyzer.default.type": "ik_max_word" 42 } 43 } 44 } 45 46 #9、带条件查询 47 GET zh_test_db/_doc/_search?q=name:有梦想的 48 49 #10、查看异常原因 50 GET /_cluster/allocation/explain 51 52 #11、查看分词结果 53 GET _analyze 54 { 55 "analyzer":"ik_max_word", 56 "text":"有梦想的肥宅" 57 58 }
四、安装ik分词器
1、上传下载好的安装包到plugin目录【FTP工具】
elasticsearch-analysis-ik-7.6.1.zip
2、递归创建目录
mkdir -p zhTools/elasticsearch-7.6.1/plugins/ik
3、解压安装包到第2步创建的文件夹中
unzip elasticsearch-analysis-ik-7.6.1.zip
4、重启es
5、进入kibana,把zh_test_db索引删掉后重建索引
DELETE /zh_test_db
PUT /zh_test_db
{
"settings": {
"index": {
"analysis.analyzer.default.type": "ik_max_word"
}
}
}
五、安装elasticsearch-head
还是由于虚拟机空间有限,所以这里安装在windows主机上了,步骤如下:
1、安装node.js【过程就不详细说了,网上找找很简单的】
2、cmd 进入node js 目录,执行命令
npm install -g grunt-cli
3、查看版本号
grunt -version
4、进入https://github.com/mobz/elasticsearch-head下载zip包,并解压
5、修改 \elasticsearch-head-master\Gruntfile.js
在connect.server.options节点下增加:hostname:‘*‘,
6、修改\elasticsearch-head-master\_site\app.js
在(function( app, i18n ) {}方法内找到this.base_uri的配置,把http://localhost:9200换成对应es的服务地址
7、cmd进入elasticsearch-head-master目录,执行以下命令
npm install -g cnpm --registry=https://registry.npm.taobao.org
8、安装成功后,启动elasticsearch-head
npm run start
9、访问localhost:9100/