ES-单机环境搭建篇
Elasticsearch下载及安装
1.下载Elasticsearch
这里直接通过命令下载,也可以通过Elasticsearch官网下载,(本文以Elasticsearch7.6版本示例,请提前配置好java环境)
//下载Elasticsearch安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-linux-x86_64.tar.gz
2.解压安装包
tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz
3.修改elasticsearch.yml 配置文件
//1.进去elasticsearch的config目录下
cd elasticsearch-7.6.2/config/
//2.修改elasticsearch.yml文件
vim elasticsearch.yml
//3.在文件末尾处添加如下配置 注意每个配置前的一个空格、每个配置:后的一个空格
network.host: 0.0.0.0 #可远程访问
node.name: es-node01 #节点名称 这个与下面一点一定要配,不然即使启动成功也会操作超时或发生master_not_discovered_exception
cluster.initial_master_nodes: ["es-node01"] #发现当前节点名称
http.port: 9200 #端口号
http.cors.allow-origin: "*" #以下皆是跨域配置
http.cors.enabled: true
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
http.cors.allow-credentials: true
//4. 如果内存不大,可以修改jvm.option文件,修改JVM大小
-Xms512M
-Xmx512M
4.启动(不出意外会启动失败)
//1.进入elasticsearch的bin目录中
cd elasticsearch-7.6.2/bin/
//2.启动
直接启动:./elasticsearch
后台启动:./elasticsearch -d
5.验证
浏览器输入:http://xxxx:9200/,返回如下:
运行问题处理
问题一:[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
//下面操作需要root权限
//1.修改配置文件limit.conf
vim /etc/security/limits.conf
//2.文件末尾添加 注意*代表所有用户
* hard nofile 65536
* soft nofile 131072
//3.保存退出后重启 查看,是否生效 生效就行
ulimit -Hn
ulimit -Sn
//4.如果不生效可以尝试
修改 /etc/systemd/user.conf 及 /etc/systemd/system.conf 中如下面的配置項
DefaultLimitNOFILE=65536
问题二:[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
//需要root权限
//1.修改配置文件sysctl.conf
vim /etc/sysctl.conf
//2.文件末尾处添加或修改
vm.max_map_count=262144
//3.保存退出后使之生效
sysctl -p
问题三: 启动后的权限问题:elasticsearch不允许root用户启动,所以需要添加其他用户,用其他用户来启动(已经有其他用户的可以无视)
//1.添加用户和设置密码
adduser 用户名
passwd 用户名
//2.给新用户授权elasticsearch文件的操作权限
chown 用户名 elasticsearch目录 -R
如:chown es /usr/local/elasticsearch-7.2.0/ -R
//3.切换用户启动
解决以上问题后再重复启动的操作即可
问题四: 能启动成功,并且能访问,但操作不了索引,出现超时或master_not_discovered_exception问题
这个问题是配置文件节点没配置好。。。(至少我是)
Ik分词器插件安装
安装前我们先来看一下安装前后的区别
安装前: 用命令行执行以下命令
curl -H "Content-Type: application/json" -XPOST http://localhost:9200/_analyze -d'
{
"text":"中华人民共和国国歌"
}'
返回如下: 可以看到他按照每个字来分割了,这样很明显是不合理的,因为这样做分词搜索,只要有一个字是匹配的就会返回
安装后: 执行以下命令
curl -H "Content-Type: application/json" -XPOST http://localhost:9200/_analyze -d'
{
"analyzer":"ik_smart", //这里是指定使用ik分词器分词
"text":"中华人民共和国国歌"
}'
返回如下: 可以看到按照了词组来分词
ik分词安装
//1.下载ik分词器
https://github.com/medcl/elasticsearch-analysis-ik/releases 进去下载选择与elasticsearch对应的版本
//2.进入elasticsearch安装目录下的plugins下,创建ik文件夹
cd elasticsearch-7.6.2/plugins/
mkdir ik
//3.将下载好的zip包放入ik文件夹下,执行解压
如:unzip elasticsearch-analysis-ik-7.2.0.zip
//4.重启elasticsearch服务
//5.验证
浏览器输入http://xx.xx.xx.xx:9200/_cat/plugins
返回如下: 就成功了
可视化工具kibana安装
//1.下载对应elasticsearch版本的kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.2-linux-x86_64.tar.gz
//2.解压
tar -zxvf kibana-6.3.2-linux-x86_64.tar.gz
//3.修改配置文件
cd kibana-7.2.0-linux-x86_64/config/
vim kibana.yml
//4.将下列注释打开
server.port: 5601 #端口号
server.host: "0.0.0.0" #远程访问
elasticsearch.host: "http://xxxx:9200" #elasticsearch地址
kibana.index: ".kibana" #索引规则配置 打开注释即可
i18n.locale: "zh-CN" # 中文
//启动
cd kibana-7.2.0-linux-x86_64/bin/
./kibana
浏览器输入:http://xxx:5601 访问即可,至于对elasticsearch的操作这里就不在阐述了