Elasticsearch8 单节点安装
ES版本是8.7.0 因为ik截止到我发文章的时候还没出8.7.1的版本
准备工作
echo 'vm.max_map_count=262144' >>/etc/sysctl.conf
sysctl -p
创建数据集目录
# 创建数据卷目录
mkdir /docker/elasticsearch/{config,data,plugins,log}
cd /docker/elasticsearch/config
# 创建es配置
touch elasticsearch.yml
# 创建证书目录
mkdir certs
# 给权限
chmod -R 777 /docker/elasticsearch
添加网络
docker network create elastic
正式启动
docker run -d --name es-node01 --net elastic -p 9200:9200 -p 9300:9300 \
-v /docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /docker/elasticsearch/data:/usr/share/elasticsearch/data \
-v /docker/elasticsearch/log:/usr/share/elasticsearch/logs \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
elasticsearch:8.7.0
ES_JAVA_OPTS设置的是JVM的堆大小,服务器的一半最为合适(自我感觉)。
其他写法
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-e "ES_JAVA_OPTS=-Xms1g -Xmx1g"
密码重置
如果看到密码或者设置了就不用了,找不到密码可以重置一下
docker exec -it es-node01 bash
# 先随机
bin/elasticsearch-reset-password -u elastic
# 这个命令可以自定义密码
bin/elasticsearch-reset-password -u elastic -i
是http和https都试试
http://localhost:9200/
继续访问即可,用户名是 elastic
密码就是重置后给出的
kibana 安装
docker run -d --name kib-01 --net elastic -p 5601:5601 -e "I18N_LOCALE=zh-CN" -e "ELASTICSEARCH_HOSTS=http://es-node01:9200" docker.elastic.co/kibana/kibana:8.7.0
这里需要token
# 进入es容器
docker exec -it es-node01 bash
# 输入命令
bin/elasticsearch-create-enrollment-token --scope kibana
还需要kibana的验证
# 进入kibana容器
docker exec -it kib-01 bash
# 输入命令
bin/kibana-verification-code
ik分词器
创建目录并进入
# 如果你配置了容器数据卷,则可以直接进入,按照我之前的配置位置就是
cd /docker/elasticsearch/plugins
mkdir ik
cd ik
下载分词器
进入容器
docker exec -it es-node01 bash
进入bin,执行命令,如果你的不是8.7.0记得改版本
cd bin
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.7.0/elasticsearch-analysis-ik-8.7.0.zip
ik使用测试
看下有没有插件
GET _cat/plugins
# 返回是这样的
es-node01 analysis-ik 8.7.0
index创建
PUT classify
{
"mappings": {
"properties": {
"classify_keyword_id":{
"type":"integer"
},
"keyword":{
"type":"text",
"analyzer": "ik_max_word"
},
"create_time": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
},
"update_time": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
}