1.Linux下使用Elasticsearch
本教程所有操作均在CentOS 7.x环境下进行。
elasticsearch基于java进行开发,所以在运行elasticsearch之前需要安装jdk
yum -y install java-1.8.0-openjdk
1.1.安装和配置
即将开始在centos 7 下安装
Elasticsearch
1.1.1.新建一个用户leyou
出于安全考虑,
elasticsearch
默认不允许以
root
账号运行。
useradd leyou
设置密码:
passwd leyou
切换用户:
su - leyou
1.1.2.上传、解压安装包
将安装所需要的文件上传到/home/leyou文件夹下
解压缩:
tar -zxvf elasticsearch-6.3.0.tar.gz
目录重命名:
mv elasticsearch-6.3.0/ elasticsearch
进入elasticsearch目录查看结构如下:
cd elasticsearch
1.1.3.修改配置文件
我们进入config目录:
cd comfig
需要修改的配置文件有两个:
1.jvm.options:
Elasticsearch
基于
Lucene
的,而
Lucene
底层是
java
实现,因此我们需要配置
jvm
参数。
编辑
jvm.options:
vim jvm.options
默认配置如下:
-Xms1g
-Xmx1g
内存占用过多,我们调小一些
-Xms512m
-Xmx512m
2.elasticsearch.yml
编辑elasticsearch.yml:
vim elasticsearch.yml
- 修改数据和日志目录
path.data: /home/leyou/elasticsearch/data # 数据目录位置
path.logs: /home/leyou/elasticsearch/logs # 日志目录位置
-
修改绑定的
ip
:
network.host: 0.0.0.0 # 绑定到0.0.0.0,允许任何ip来访问
# 默认只允许本机访问,修改为0.0.0.0后则可以远程访问
创建data与logs文件:
mkdir data
mkdir logs
目前我们是做的单机安装,如果要做集群,只需要在这个配置文件中添加其它节点信息即可。
elasticsearch.yml
的其它可配置信息:
1.2.运行
在elasticsearch根目录输入命令:
bin/./elasticsearch
发现报错,进行解决
1.2.1.内核过低(centos6会报此错误)
解决方法:禁用以下插件
修改
elasticsearch.yml
文件,在最下面添加如下配置:
bootstrap.system_call_filter: false
1.2.2.文件权限不足
切换root用户,修改配置文件:
vi /etc/security/limits.conf
添加以下内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
1.2.3.线程数不够
修改配置:
vi /etc/security/limits.d/20-nproc.conf
代表允许每个用户创建的进程数,适当扩大1倍
1.2.4.进程虚拟内存不足
修改配置:
vi /etc/sysctl.conf
添加下面内容:
vm.max_map_count=655360
执行命令:
sysctl -p
1.2.5.重启终端
重启终端使修改的配置生效
1.2.6.启动
启动成功
放行es端口
在浏览器中访问:http://你的服务器ip:9200
到这里,我们的es就安装完成了 ,想要让你的es更好用请往下看
1.3.安装kibana
1.3.1.kibana介绍
kibana是基于Node.js开发的
Elasticsearch可视化工具,可以使用kibana进行es的语法练习,并通过kibana生成各种图表。
1.3.2.安装
这个将在物理机安装,有条件可以安装在服务器,在安装前需要保证已经安装的有Node.js环境
解压即可运行
1.3.3.修改配置
elasticsearch.url: "http://服务器ip:9200"
1.3.4.运行
双击此文件
访问:http://127.0.0.1:5601
1.3.5.控制台
在控制台就可以练习es语法了
1.4.安装ik分词器
1.4.1.安装
直接解压ik分词器插件包到
plugins目录中
unzip elasticsearch-analysis-ik-6.3.0.zip -d ik-analyzer
重启
elasticsearch:
效果:
Elasticsearch通过api进行索引,文档的增删改查,想要了解更多,就请学习es语法吧