ES-单机环境搭建篇

Elasticsearch下载及安装

1.下载Elasticsearch

这里直接通过命令下载,也可以通过Elasticsearch官网open in new window下载,(本文以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/,返回如下:open in new window

运行问题处理

问题一:[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:5601open in new window 访问即可,至于对elasticsearch的操作这里就不在阐述了

Last Updated: