博客 ES学习看这一篇文章就够了1

ES学习看这一篇文章就够了1

   数栈君   发表于 2023-07-21 10:20  411  0

第一章 ES简介
第1节 ES介绍

1、Elasticsearch是一个基于Lucene的搜索服务器
2、提供了一个分布式的全文搜索引擎,基于restful web接口
3、Elasticsearch是用Java语言开发的,基于Apache协议的开源项目,是目前最受欢迎的企业搜索引擎
4、Elasticsearch广泛运用于云计算中,能够达到实时搜索,具有稳定,可靠,快速的特点
第2节 ES版本
版本历史
1
ES : 1.x ---> 2.x ---> 5.x ---> 6.x --->7.x(目前)
版本选择
1
在版本选择一般选择5.x版本以上,我们本课程的学习使用6.x版本,低版本会随着官网的不断推动,在未来可能就不维护了,所以在选择的时候要尽量选择目前来说一个长期的稳定版本
第二章 安装(v6.3.2)
第1节 window下单点安装ES
下载地址
1
2
3
4
5
6
官网地址:
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.zip


华为镜像站:
https://mirrors.huaweicloud.com/elasticsearch/6.3.2/elasticsearch-6.3.2.zip
安装步骤
1
2
3
1、将下载的安装包解压到指定目录下(不能有中文)
2、找到目录下的bin目录(比如: D:\soft\elasticsearch-6.3.2\bin)
3、bin目录下有一个[elasticsearch.bat]脚本命令,直接鼠标双击即可,启动ES服务
访问
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

ES服务的默认端口号为 9200,在浏览器访问 http://localhost:9200/ 浏览器就会输出下面信息,安装成功

{
"name" : "G7lh1eQ",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "4T38-ecWQ5O8OpIM3RibAw",
"version" : {
"number" : "6.3.2",
"build_flavor" : "default",
"build_type" : "zip",
"build_hash" : "053779d",
"build_date" : "2018-07-20T05:20:23.451332Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}

第2节 window下安装Head插件
2.1 Head插件介绍

1
是一款能连接ES,并提供对ES进行操作的可视化界面
2.2 Head插件下载地址

1
https://github.com/mobz/elasticsearch-head/archive/master.zip
2.3 安装步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

1. 电脑首先要安装node.js,因为安装Head插件需要使用npm命令

注意: 由于npm命令使用的是国外的镜像库,所以可能会很慢或者发生失败的情况,可以有两种方式解决
方式一: 切换镜像地址
-- 查看当前npm的镜像地址: npm config get registry
-- 默认地址为: https://registry.npmjs.org/
-- 将默认镜像地址设置成淘宝的地址: npm config set registry https://registry.npm.taobao.org
方式二: 使用cnpm
-- 下载cnpm并且同时设置镜像源命令 npm install cnpm -g --registry=https://registry.npm.taobao.org
-- 使用cnpm -v查看
-- 以后使用cnpm 命令安装依赖


2. nodejs安装好之后,那么开始解压head插件压缩包
3. 切换到解压文件目录下 D:\soft\elasticsearch-head-master,我的解压到了d盘soft目录下
4. 使用cmd命令行工具切换到解压目录下,执行命令 npm install 安装
5. 安装完成之后启动head插件 npm run start 这时候就会在在计算机9100端口号上启动服务
6. 在浏览器访问,在浏览器中输入 http://localhost:9100/ 访问





2.4 Head插件和ES关联配置

1
因为两个服务之间可能ip地址和端口号不同造成跨域的问题,所以需要配置可以跨域
修改ES的配置文件
1
2
3
4
5
6
7
8
1、因为ES和Head插件之间是两个不同的服务,所以需要进行配置
- 1.1 修改ES的配置,找到我们的ES配置文件 elasticsearch-6.3.2\config\elasticsearch.yml
- 1.2 在文件的最后一行设置一个可以进行跨域访问的属性
http:
cors:
enabled: true
allow-origin: "*"
- 1.3 重启ES服务,重启Head服务
第3节 window ES 集群安装
3.1 集群配置步骤

1
2
3
4
1. 创建一个elasticsearch-cluster文件夹
2. 解压我们的elasticsearch-6.3.2.zip压缩包到elasticsearch-cluster目录下
3. 分别命名为 elasticsearch-node01,elasticsearch-node02,elasticsearch-node03
4. 修改配置文件
3.2 配置文件编写

elasticsearch-node01节点配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 集群名称,保证唯一
cluster.name: elasticsearch
# 节点名称,每个节点不能相同
node.name: node-01
# 本机的ip地址
network.host: 127.0.0.1
# 服务端口号,在同一机器下端口号不能相同
http.port: 9200
# 集群间通信端口号,在同一机器下端口号不能相同
transport.tcp.port: 9300
# 设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
# 跨域调用
http:
cors:
enabled: true
allow-origin: "*"

elasticsearch-node02节点配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 集群名称,保证唯一
cluster.name: elasticsearch
# 节点名称,每个节点不能相同
node.name: node-02
# 本机的ip地址
network.host: 127.0.0.1
# 服务端口号,在同一机器下端口号不能相同
http.port: 9201
# 集群间通信端口号,在同一机器下端口号不能相同
transport.tcp.port: 9301
# 设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
# 跨域调用
http:
cors:
enabled: true
allow-origin: "*"

elasticsearch-node03节点配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 集群名称,保证唯一
cluster.name: elasticsearch
# 节点名称,每个节点不能相同
node.name: node-03
# 本机的ip地址
network.host: 127.0.0.1
# 服务端口号,在同一机器下端口号不能相同
http.port: 9202
# 集群间通信端口号,在同一机器下端口号不能相同
transport.tcp.port: 9302
# 设置集群自动发现机器ip集合
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
# 跨域调用
http:
cors:
enabled: true
allow-origin: "*"

1
2
3
4
5
6
重启各个节点

注意: 如果在重启各个节点时出现点击启动脚本闪退的问题,可能造成的原因是配置文件需要使用UTF-8编码的格式编写
解决方式,使用notepad++修改当前配置文件的编码格式为utf-8

重启Head服务




1
2
1. 图中黑色的粗框代表这分片
2. 细的黑框代表着副本
第三章 基础概念
第1节 索引
1
含有相同属性的文档集合,相当于我们MYSQL数据库中的数据库(DATABASE)
第2节 类型
1
索引可以定义一个或多个类型(ES6中已经逐步弃用,在更高的7版本中已经删除),文档必须属于一个类型,相当于我们MYSQL中的一个表(TABLE)
第3节 文档
1
文档是可以被索引的基本数据单位,相当于MYSQL数据库表中的一行记录
第4节 分片/副本(备份)
分片(shard)
1
2
3
4
5
1. 每个索引有一个或多个分片
2. 索引的数据被分配到各个分片上,相当于一桶水使用多个杯子去装,分片有助于横向扩展
3. 如果将大量的数据保存到一个分片里面,那么分片越来越大数据越来越多,查找性能越来越差
4. 默认情况下一个索引创建5个分片
5. 分片会默认的分配到es集群的各个节点上,集群自动完成
副本(replica)
1
2
3
1. 副本,可以理解为分片的备份
2. 主分片和副本(备分片)不会出现在同一个节点上(防止单点故障)默认情况下一个索引创建5个分片一个备份(5个主分片+5个副本分片=10个分片)
3. 如果只有一个es节点,那么replica就无法分配(因为主/副不能同在一个节点上),此时cluster status会变成Yellow

免责申明:

本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!

《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:
https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:
https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack

0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群