Elasticsearch

Elasticsearch安装(docker)

下载Elasticsearch
查询镜像
[root@localhost elk]# docker search elasticsearchNAME DESCRIPTION STARS OFFICIAL AUTOMATEDelasticsearchElasticsearch is a powerful open source sear…6126[OK] kibana Kibana gives shape to any kind of data — str… 2629[OK] bitnami/elasticsearchBitnami Docker Image for Elasticsearch67 [OK]bitnami/elasticsearch-exporter Bitnami Elasticsearch Exporter Docker Image 7[OK]rancher/elasticsearch-conf 2
拉取镜像

docker pull elasticsearch:版本号

·

[root@localhost elk]# docker image lsREPOSITORY TAG IMAGE ID CREATED SIZEelasticsearch7.17.7ec0817395263 9 months ago619MBnginxlatest605c77e624dd 19 months ago 141MBredislatest7614ae9453d1 19 months ago 113MBmysqllatest3218b38490ce 19 months ago 516MBrabbitmq latestd445c0adc9a5 19 months ago 220MBcanal/canal-server latest0c7f1d62a7d8 2 years ago 874MB
挂载配置
创建挂载文件夹
[root@localhost elasticsearch]# mkdir -p elasticsearch/data[root@localhost elasticsearch]# mkdir -p elasticsearch/config[root@localhost elasticsearch]# mkdir -p elasticsearch/plugins
修改文件夹权限
[root@localhost elk]#chmod 777 elasticsearch/**
elasticsearch.yml

在config文件夹下创建elasticsearch.yml文件,并修改其为可读写执行权限。

[root@localhost config]# touch elasticsearch.yml[root@localhost config]# chmod 777 elasticsearch.yml [root@localhost config]# tree.└── elastisearch.yml[root@localhost config]# ll总用量 0-rwxrwxrwx. 1 root root 0 623 18:22 elastisearch.yml

修改elasticsearch.yml的内容

xpack.security.enabled: 配置es的安全,但是只免费使用1个月。本机使用不设置安全模块。

http:host: 0.0.0.0cors:enabled: trueallow-origin: "*"xpack:security:enabled: false
linux环境配置
调整max_map_count

max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量,默认值是65536。

查询max_map_count值
 sysctl -a|grep vm.max_map_count
修改max_map_count值
 sysctl -w vm.max_map_count=262144

测试是否修改

创建运行容器
  • 9200作为Http协议,主要用于外部通讯。一般都是给工具连接ElasticSearch使用的,java连接ES也需要这个端口。
  • 9300是一个自定义的二进制协议,用于集群中各节点之间的通信。用于诸如集群变更、主节点选举、节点加入/离开、分片分配等事项。
  • ES_JAVA_OPTS指定容器内的JVM内存配置,建议大于512M。
docker run-itd \--name es \--privileged \--network wn_docker_net \--ip 172.18.12.70 \-p 9200:9200 \-p 9300:9300 \-e "discovery.type=single-node" \-e ES_JAVA_OPTS="-Xms1g -Xmx1g" \-v /usr/local/softwares/elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \-v /usr/local/softwares/elk/elasticsearch/data:/usr/share/elasticsearch/data \-v /usr/local/software/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins \elasticsearch:7.17.7
修改ES内存大小
进入容器
[root@localhost config]# docker exec -it es bash
进入config文件夹

修改jvm.options默认内存大小
root@6fa12b7a6ddb:/usr/share/elasticsearch/config# echo "-Xms4g">> jvm.optionsroot@6fa12b7a6ddb:/usr/share/elasticsearch/config# echo "-Xmx4g">> jvm.options
退出、重启容器
root@6fa12b7a6ddb:/usr/share/elasticsearch/config# exit exit[root@localhost config]# docker restart es 
开放9200,9300端口
[root@localhost config]# firewall-cmd --zone=public --add-port=9200/tcp --permanentsuccess[root@localhost config]# firewall-cmd --zone=public --add-port=9300/tcp --permanentsuccess[root@localhost config]# firewall-cmd --reload success
浏览器测试

安装ik分词器

下载分词器

最好下载和elasticSearch一致的分词器,如果没有则保证大版本一致,例如:7.17.X

Releases · medcl/elasticsearch-analysis-ik · GitHub

上传分词器

上传分词器到: /usr/local/software/elasticsearch-analysis-ik

[root@localhost software]# mkdir elasticsearch-analysis-ik
拷贝分词器到es容器的plugins/ik中

在容器plugins文件下创建 ik文件夹

tips:v7,.17.7版本一定要解压在plugins**/ik**文件夹下否则报找不到错误。

容器中位置: /usr/share/elasticsearch/plugins/ik

[root@localhost elasticsearch-analysis-ik]# docker cp elasticsearch-analysis-ik-7.17.7.zip es:/usr/share/elasticsearch/plugins/ik
解压分词器
root@6fa12b7a6ddb:/usr/share/elasticsearch/plugins/ik# unzip elasticsearch-analysis-ik-7.17.7.zip

删除elasticsearch-analysis-ik-7.17.7.zip

root@6fa12b7a6ddb:/usr/share/elasticsearch/plugins/ik# rm -rf elasticsearch-analysis-ik-7.17.7.zip

重启docker
root@6fa12b7a6ddb:/usr/share/elasticsearch/plugins# exitexit[root@localhost elasticsearch-analysis-ik]# docker restart es 
使用kibana测试分词器

自定义分词器
分词器的文件结构

在Ik文件夹下的config中存储分词器的字典和配置文件

<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"><properties><comment>IK Analyzer 扩展配置</comment><entry key="ext_dict"></entry> <entry key="ext_stopwords"></entry><!-- words_location --><!-- words_location --></properties> 

打开一个分词内容ext_stopwords

添加自定义分词器
新建分词器文件

新建自定义分词器文件,后缀为.dic

touch extra_my_ik.dic
编辑文件

编辑文件,使用utf-8编码

修改配置文件

修改IKAnalyzer.cfg.xml 文件,添加自定义的分词器

<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"><properties><comment>IK Analyzer 扩展配置</comment><entry key="ext_dict">extra_my_ik.dic</entry> <entry key="ext_stopwords"></entry><!-- words_location --><!-- words_location --></properties>
测试分词

使用kibana测试