- ① Elasticsearch
- 1.Elaticsearch下载
- 2.创建挂载目录
- 3.启动容器
- 4.测试
- ② 可视化Kibana
- 1.Kibana下载
- 2.启动容器
- 3.测试
- ③ 分词器elasticsearch-analysis-ik
- 1.下载ES-IK
- 2.安装ES-IK
- 3.测试
docker下载命令:
docker pull elasticsearch:7.14.22.创建挂载目录
我们需要将Elasticsearch里的三个文件夹挂载在本机上 方便管理
- /usr/share/elasticsearch/config/elasticsearch.yml 配置文件
- /usr/share/elasticsearch/data 数据目录
- /usr/share/elasticsearch/plugins 插件目录
首先在本机创建挂载目录
mkdir -p /usr/etc/elasticsearch/config /usr/etc/elasticsearch/data /usr/etc/elasticsearch/plugins chmod -R 777 /usr/etc/elasticsearch -p:当父目录不存在时 一并创建 因为数据挂载需要权限 所以chmod命令把elasticsearch目录及其子目录权限改为所有用户与组 可读可写可执行
创建配置文件elasticsearch.yml并设置elasticsearch服务访问权限
echo "http.host: 0.0.0.0" >> elasticsearch/config/elasticsearch.yml 这样写可以直接创建出elasticsearch.yml并把内容追加到文件中 ▲:注意 冒号后面要有一个空格 否则报错: Exception in thread "main" SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]];3.启动容器
① 如果启动时报错:
java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes
请检查本机挂载目录/usr/etc/elasticsearch目录及其子目录的权限是否开启
请保证elasticsearch及其子目录权限如下所示
并且有些朋友权限也设置了但还是报“AccessDeniedException”异常 请确认你的启动命令中有使用--privileged=true命令
② 若报错
java.lang.OutOfMemoryError: Java heap space
请调整Elasticsearch启动运行内存大小
启动命令如下:
docker run --name elasticsearch7.14.2 --privileged=true -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms128m -Xmx256m" -v /usr/etc/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/etc/elasticsearch/data:/usr/share/elasticsearch/data -v /usr/etc/elasticsearch/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:7.14.2
| 命令 | 解释 |
|---|---|
| –privileged=true | 给docker容器内部赋予真正的root权限 |
| -p 9200:9200 | 指定端口映射 9200是elasticsearch与外部交互的端口 9300是集群间交互的端口 |
| -e “discovery.type=single-node” | 指定elasticsearch单机启动 |
| ES_JAVA_OPTS="-Xms64m -Xmx128m" | 指定elasticsearch运行使用内存大小 测试时请按实际设置 否则可能导致无法启动elasticsearch |
| -v … | 将主机文件目录挂载到docker容器内部 方便管理 |
| -d | 指定docker容器后台运行 |
浏览器中输入
虚拟机IP:9200
可以看到Elasticsearch的信息即启动成功
② 可视化Kibana请在启动完成Elasticsearch后启动Kibana
1.Kibana下载docker pull kibana:7.14.2 ps: 请注意,kibana安装版本请与Elasticsearch一致2.启动容器
启动命令如下:
docker run --name kibana7.14.2 -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://192.168.32.99:9200" -d kibana:7.14.2
| 命令 | 解释 |
|---|---|
| -e “ELASTICSEARCH_HOSTS=http://192.168.32.99:9200” | 指定Elasticsearch服务启动地址 请修改为实际的服务地址,请注意 一定要添加http://前缀 否则启动失败 |
在浏览器输入以下地址:
虚拟机IP:5601③ 分词器elasticsearch-analysis-ik
简单说明一下:由于Elasticsearch默认分词器无法匹配中文词组,会导致在分词时将中文字符串拆分成一个个的字,而没有词组的概念,所以安装中文分析分词器ES-IK
1.下载ES-IK请到ES-IK GITHUB仓库下载压缩包
地址:EK-IK GITHUB下载地址
- 通过工具XFTP上传ES-IK压缩包到Elasticsearch的挂载插件目录/usr/share/elasticsearch/plugins中
- 解压ES-IK压缩包并删除
unzip -d ./ik elasticsearch-analysis-ik-7.14.2.zip 将压缩包解压到当前目录下的ik目录中 rm elasticsearch-analysis-ik-7.14.2.zip 删除ES-IK 压缩包
- 重启Elasticsearch服务使插件生效
docker restart elasticsearch7.14.23.测试
在Kibana可视化界面 DevTools模块中使用命令如下:
GET /_analyze
{
"analyzer": "ik_smart",
"text": "Elasticsearch搜索引擎"
}
得到以下结果即表示安装成功



