1, elasticsearch-安装

简介

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎, 具有搜索速度快, 可扩展性高, 高可用的优势。

安装

下载elasticsearch

elasticsearch官网下载

下载速度慢的可以在Elasticsearch 镜像下载站 镜像列表 下载

修改配置

解压下载好的elasticsearch压缩包

1, 修改配置

cd elasticsearch-7.8.0/config
vim elasticsearch.yml

# 修改host地址
network.host: 当前主机的ip(可通过ifconfig命令查看)

# 如果想修改端口号(elasticsearch外部访问端口,默认9200, 注意端口冲突)
http.port: 8081

# 节点

## 放开
node.name: node-1

## 修改
# cluster.initial_master_nodes: ["node-1", "node-2"]
==>
cluster.initial_master_nodes: ["node-1"]

启动

elasticsearch不能是用root用户启动, 否者会报错, 所以我们要添加一个用户去启动elasticsearch。

# 添加分组
groupadd elasticsearch
# 添加用户
useradd xiaodoubi -g elasticsearch  -p 123456
# 给用户添加权限
chown -R xiaodoubi:elasticsearch elasticsearch-7.8.0  

# ll查看一下
[xiaodoubi@centos-master1 elasticsearch]$ ll
总用量 311636
drwxr-xr-x. 10 xiaodoubi elasticsearch       167 7月   5 12:07 elasticsearch-7.8.0
# 该目录变成了elasticsearch用户组, 拥有则为xiaodoubi

# 用xiaodoubi的用户去运行
su xiaodoubi
cd  elasticsearch-7.8.0
./bin/elasticsearch

# 1, 运行报错
ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
ERROR: Elasticsearch did not exit normally - check the logs at /data/elasticsearch/elasticsearch-7.8.0/logs/elasticsearch.log


解决方案(在root用户下)

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

vi /etc/sysctl.conf
添加配置
vm.max_map_count=262144
运行
sysctl -p

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

vi /etc/security/limits.conf
# 添加
* soft nofile 65536
* hard nofile 65536
# 重启服务器

在运行就基本上ok了

安装ik分词器

参考官方文档

在docker中快速安装运行

docker pull elasticsearch
docker run -d -e ES_JAVA_POTS="-Xms256m -Xmx256m"  -e "discovery.type=single-node" -p 9200:9200 -p  9300:9300 --name es2 elasticsearch

官方的镜像版本比较久的, 可以使用别人构建好的docker

ps: 如果出现elasticsearch:latest not found: manifest unknown: manifest unknown. 的提示, 那么pull的时候, 请带上版本号。比如:docker pull elasticsearch:7.10.1,下面运行也要带上版本号

安装分词器

 unzip elasticsearch-analysis-ik-7.10.1.zip -d ik
 docker cp ik es2:/usr/share/elasticsearch/plugins
 docker restart es2

参考

docker安装es和ik分词器