一、Elasticsearch
1.0 前提
首先查看jdk对应的elasticsearch对应的版本,否则启动抛异常(即规避异常的第四个错误),由于我的安装了JDK13,所以只能找适配的版本。版本对应关系查看:https://www.elastic.co/cn/support/matrix#matrix_jvm
下载:elasticsearch-7.5.0-linux-x86_64.tar.gz
链接: https://pan.baidu.com/s/1aEF72W5wQrxNPMvVSal5dw
提取码:42kj
1.1 简介
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
1.2 安装和配置
1.2.1 解压
[mzs@localhost]# tar -zxvf elasticsearch-7.5.0-linux-x86_64.tar.gz
1.2.2 jvm.options
编辑jvm.options:
[mzs@localhost]# vim jvm.options
默认配置如下:
-Xms1g
-Xmx1g
内存占用太多了,我们调小一些:
-Xms512m
-Xmx512m
1.2.3 elasticsearch.yml
path.data: /***/elasticsearch/data # 数据目录位置
path.logs: /***/elasticsearch/logs # 日志目录位置
network.host: 0.0.0.0 # 绑定到0.0.0.0,允许任何ip来访问(去掉注释#)
http.port: 9200 //服务监听端口(去掉注释#)
例如(我的配置):
1.3 规避异常:
1、启动错误:org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
解析:这个错误是因为elasticsearch5之后为了安全不允许使用root用户启动,必须要使用普一个新的用户(非root)
2、启动错误:Exception in thread "main" java.nio.file.AccessDeniedException: /home/leyou/elasticsearch/elasticsearch-6.2.4/config/jvm.options
解析:这个错误是因为上一个错误切换到新用户,权限不足所致。
3、解决(1、2)错误:
root给XXX赋权限,chown -R XXX /你的elasticsearch安装目录 //xxx代表新用户的名字
//这一步是看所在的当前路径
[mzs@localhost bin]$ pwd
/home/leyou/elasticsearch/elasticsearch-7.5.0/bin
[root@localhost bin]# chown -R mzs /home/leyou/elasticsearch/elasticsearch-7.5.0/
//切换用户
[root@localhost bin]# su mzs
//./elasticsearch后加 -d 是使其在后台运行(访问要等1~3分钟,启动需要时间的)
[mzs@localhost bin]$ ./elasticsearch
Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
******启动内容太多省略了
4、启动错误:Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.jdk.internal.vm.annotation")
解析:因为ES是使用Java语言编写的,运行需要Java环境支持,6.x版本注意对应Java 8,如果安装了高版本如JDK13可能导致版本不匹配而出现等异常导致ES启动失败。版本对应关系查看:https://www.elastic.co/cn/support/matrix#matrix_jvm
5、文件权限不够错误
切换为root用户,然后修改配置文件:[root@localhost bin]# vim /etc/security/limits.conf
在末尾添加下面内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
6、进程虚拟内存错误
vm.max_map_count:限制一个进程可以拥有的VMA(虚拟内存区域)的数量,继续修改配置文件:
[root@localhost bin]# vim /etc/sysctl.conf
vm.max_map_count = 655360 //添加
[root@localhost bin]# sysctl -p
1.4 启动访问及注意
启动(在bin目录下启动):
[mzs@localhost bin]$ pwd
/home/leyou/elasticsearch/elasticsearch-7.5.0/bin
[mzs@localhost bin]$ ./elasticsearch
浏览器访问输入:http://IP:9002
查看ElasticSearch服务所监听的端口:
netstat -lntp |grep java
注意:启动elasticsearch一定要切换到新的用户(非root)下,切记切记!
二、Kibana(windows版)
2.0 介绍
Kibana是一个基于Node.js的Elasticsearch索引库数据统计工具,可以利用Elasticsearch的聚合功能,生成各种图表,如柱形图,线状图,饼图等。而且还提供了操作Elasticsearch索引数据的控制台,并且提供了一定的API提示。
特别提醒:使用kibana,与elasticsearch的版本保持一致,否则会出现错误。
2.1下载
点击官网下载,kibana的版本和elasticsearch的版本和必须一致。
2.2 安装配置
修改kibana\config\kibana.yml文件,例如我的配置:
2.3 启动访问
第一种启动方式:
进入kibana的bin目录,双击kibana.bat,成功启动如下图:
第二种启动方式:
kibana运行:kibana点击访问
三、IK分词器
3.0 介绍
3.1 下载
IK分词器官网,下载版本要和elasticsearch版本一样。
3.2 安装
下载完后,我们将ik分词器上传到我们的elasticsearch的plugins/ik目录下,ik文件夹需要我们自己创建,例如:
#切换目录
cd /home/leyou/elasticsearch/elasticsearch-7.5.0/plugins/
#创建ik文件夹
mkdir ik
#切换到ik文件夹下进行文件上传
cd ik
#没有unzip命令的同学输入如下命令安装unzip命令
yum install -y unzip
#对zip进行解压
unzip elasticsearch-analysis-ik-7.5.0.zip
注:解压完成后需要重启elasticsearch
3.3 测试
1、在kibana控制台输入下面的请求:
POST _analyze
{
"analyzer": "ik_max_word",
"text": "我是中国人"
}
2、运行得到结果: