一、前言

  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 &

ElasticSearch(二)linux系统安装ElasticSearch和相关组件_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啦~

  附上常用查询语句:

ElasticSearch(二)linux系统安装ElasticSearch和相关组件_安装包_02

ElasticSearch(二)linux系统安装ElasticSearch和相关组件_安装包_03

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 }

View Code

ElasticSearch(二)linux系统安装ElasticSearch和相关组件_elasticsearch_04

四、安装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/

ElasticSearch(二)linux系统安装ElasticSearch和相关组件_安装包_05