ElasticSearch集群安装及Java客户端使用
1、传统模式安装
1.1 ElasticSearch安装
下载Es安装包
ElasticSearch的官方地址:https://www.elastic.co/guide/en/elasticsearch/reference/master/index.html
1.2 ES图形化管理界面安装
- 下载head https://github.com/mobz/elasticsearch-head
- 下载Node.js https://nodejs.org/en/download
安装完成 在cmd窗口执行node -v查看node.js的版本号 检查是否安装成功
- 安装grunt
通过node.js的包管理器npm安装grunt为全局,grunt是基于Node.js的项目构建工具
npm install -g grunt-cli
4)执行 npm install (不执行该命宁 使用grunt server命令会报错)
npm install
5)elasticsearch-head解压目录下打开命宁窗口
执行 grunt server 启动服务
访问http://localhost:9100 (elasticsearch-head服务端口)
6、配置ElasticSearch跨域访问 修改 config/elasticsearch.yml 文件
http.cors.enabled: true
http.cors.allow-origin: "*"
需要重启ES服务
7、在head页面输入链接的ElasticSearch地址,点击连接按钮
2 容器化安装
2.1 ElasticSearch安装
这里使用docker+docker compose 搭建Elasticsearch集群
2.1.1 环境准备
docker、docker-compose环境安装,参考官网安装:https://docs.docker.com/compose/install/
运行:
#docker安装
curl -sSL https://get.daocloud.io/docker | sh
#docker-compose安装
curl -L \
https://get.daocloud.io/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` \
> /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
#查看安装结果
docker-compose -v
2.1.2 创建elasticsearch
数据、日志存放目录
#创建数据/日志目录 这里我们部署3个节点
mkdir /root/app/elasticsearch/data/{
node0,node1,node2} -p
mkdir /root/app/elasticsearch/logs/{
node0,node1,node2} -p
cd /root/app/elasticsearch
#权限
chmod 0777 data/* -R && chmod 0777 logs/* -R
#防止JVM报错
echo vm.max_map_count=262144 >> /etc/sysctl.conf
sysctl -p
2.1.3 基于elasticsearch的官方镜像,制作一个集成了IK分词器的新镜像
Es默认的分词器,在中文的分词上并不友好,会将语句每个字进行分词作为索引,所以在使用Term关键字查询的时候多个汉字无法命中文档。这个时候就需要一个合理的分词规则,将一个完整的语句划分为多个比较复合表达逻辑的独立的词条。IK分词器在是一款基于词典和规则的中文分词器,所以这里将IK分词器集成到elasticsearch中。集成IK分词器有两种方式:
方式一: 执行docker exec命令进入容器,下载IK分词器zip包https://github.com/medcl/elasticsearch-analysis-ik/releases,然后解压复制到elasticsearch的插件目录,然后重启容器即可,但是这样需要在集群里的每个容器都执行一遍,后续容器销毁了,创建新的容器还需要重复来一遍,费事费力,果断放弃。
方式二: 基于elasticsearch的官方镜像,制作一个集成了IK分词器的新镜像,这样后续只要基于这个新镜像创建的新容器就自带了IK分词器,这里需要注意,由于elasticsearch每次版本变动比较大,所以在集成IK分词器时要注意版本对应
2.1.3.1 编写DockerFile
FROM docker.elastic.co/elasticsearch/elasticsearch:7.4.0
#作者
MAINTAINER GongLJ <G381413362@163.com>
RUN sh -c '/bin/echo -e "y" | /usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.0/elasticsearch-analysis-ik-7.4.0.zip'
2.1.3.2 构建镜像
docker build --tag=elasticsearch-ik-custom:7.4.0 .
2.1.4 创建docker-compose编排文件
version: '2.2'
services:
es01:
image: elasticsearch-ik-custom:7.4.0
container_name: