**官网:**https://www.elastic.co/cn/products/elasticsearch
特点:
- 分布式,无需人工搭建集群;
- Restful风格,一切API都遵循Rest原则,容易上手;
- 近实时搜索,数据更新在Elasticsearch中几乎是完全同步的;
定义
- 一个分布式的实时文档存储,每个字段可以被索引与搜索;
- 一个分布式实时分许搜索引擎;
- 能担任上百个服务节点的扩展,并支持PB级别的结构化或者非结构化数据;
安装和配置
下载
链接:https://pan.baidu.com/s/1wMs_qAmp4A8BzDkHlK9DIg
提取码:m9qr
解压
tar -zxvf elasticsearch-6.2.4.tar.gz
改名
mv elasticsearch-6.2.4 elasticsearch
目录结构:
[root123@localhost elasticsearch]$ ls
bin LICENSE.txt NOTICE.txt
config logs plugins
lib modules README.textile
修改配置
1. jvm.options
Elasticsearch基于Lucence,而Lucence底层是java实现,因此需要配置jvm参数:
#由于在虚拟机中运行,为了节省空间,将1g改为256m
-Xms1g
-Xmx1g
-Xms256m
-Xmx256m
2. elasticsearch.yml
- 修改数据和日志目录:
path.data: /home/root123/elasticsearch/data
path.logs: /home/root123/elasticsearch/logs
- 创建指向的目录
mkdir data
- 修改绑定的ip:
#允许任何ip来访问
network.host: 0.0.0.0
目前是单机运行,如果要做集群,只需要造这个配置文件中添加其他节点信息即可:
运行
[root123@localhost bin]$ ./elasticsearch
which: no java in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/root123/bin)
could not find java; set JAVA_HOME or ensure java is in PATH
还需要安装JDK,安装JDK1.8
下载Linux JDK1.8
下载地址:jdk8下载
下载完成后解压
tar -zxvf jdk-8u131-linux-x64.tar.gz
改名
配置环境变量
因为elasticsearch只能由普通用户来运行,所以jdk的环境变量也配置到运行的这个用户下
vim ~/.bash_profile
如果是root用户则配置在/etc/profile
文件中
export JAVA_HOME=/usr/local/src/jdk/jdk1.8/
export PATH=$PATH:$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVAHOME/lib/tools.jar
让配置文件生效
source ~/.bash_profile
查看是否配置成功
[root123@localhost Desktop]$ java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
再来运行elasticsearch
unable to install syscall filter:
java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed
报错:内核过低
不能安装syscall filter
,内核版本过低,因为会用的是centos6,其Linux内核版本为2.6
我们可以禁用这个插件,不安装它,修改elastiicsearch.yml
文件
bootstrap.system_call_filter: false
然后重启:
ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [1024] for user [root123] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
在控制台输出结尾又报了这三个错误,一个个来分析:
错误1:文件权限不足
因为我们使用的不是root用户
- 用root用户登录
- 修改配置文件
vim /etc/security/limits.conf
添加内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
错误2:线程数过小
继续修改配置:
vim /etc/security/limits.d/90-nproc.conf
修改内容
* soft nproc 1024
#改为
* soft nproc 4096
错误3:进程虚拟内存
vm.max_map_count:限制一个进程可以拥有的VMA虚拟内存区域的数量;
修改配置vim /etc/sysctl.conf
添加内容
vm.max_map_count=655360
然后执行
[root@localhost config]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
vm.max_map_count = 655360
用户重新登录
并且执行source ~/.bash_profile
重新加载,不然又会找不着jdk环境变量;
再来执行elasticsearch
可以看到绑定了两个端口:
- 9300:集群节点间通讯端口;
- 9200:客户访问接口;
安装Kibana
什么是Kibana?
Kibana是一个机遇Node.js的Elasticsearch索引数据统计工具,可以利用Elasticsearch的聚合功能,生成各种图表,如柱形图、线状图、饼图等;
而且还提供了操作Elasticsearch索引数据的控制台,并且提供了一定的API提示,非常有利与学习Elasticsearch的语法。
安装
在安装Kibana之前先要安装node
下载Kibana包
链接:https://pan.baidu.com/s/1zuQnxbUW4lzI8IUjS4kQfA
提取码:2uy6
配置运行
配置
进入安装目录下的config目录,修改kibana.yml文件
修改Elasticsearch服务器的地址
elasticsearch.url: "http://192.168.229.129:9200"
可以看到kibana监听的端口是5601,通过浏览器访问:
控制台
安装ik分词器
安装到Elasticsearch目录的plugins目录中:
下载
链接:https://pan.baidu.com/s/1_EXmHTz_Q8E6Y7oVmO0kgQ
提取码:ukel
解压
unzip elasticsearch-analysis-ik-6.2.4.zip -d ik-analyzer
注意要将所有解压目录中的东西全部放在ik-analyzer目录下,都则会找不到;
重启Elasticsearch
测试