用dw做的网站能用吗,龙岗网站建设联系电话,网页设计代码居中,明朝传奇网页游戏一、环境
此次笔记使用的运行环境以及软件版本
系统:WIN10
JDK版本#xff1a;1.8
Elasticsearch版本#xff1a;7.15.2
elasticsearch-head版本#xff1a;最新
IK分词器版本#xff1a;7.15.2
Kibana版本#xff1a;7.15.2
二、Elasticsearch基本知识
2.1 介绍…一、环境
此次笔记使用的运行环境以及软件版本
系统:WIN10
JDK版本1.8
Elasticsearch版本7.15.2
elasticsearch-head版本最新
IK分词器版本7.15.2
Kibana版本7.15.2
二、Elasticsearch基本知识
2.1 介绍
ES是一个开源的高扩展的分布式全文检索引擎它可以近乎实时的存储、检索数据本身扩展性很好可以扩展到上百台服务器处理PB级别的数据。
Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性从而让全文搜索变得简单。
2.2 使用场景 1监听网站Nginx的日志时时同步到ES通过Kibana来分型日志是否存在问题服务器层面的监控 2监听Mysql日志对日志进行监控检测对于业务来说可以进行一些辅助分析 3用户行为数据埋点收集提供大数据分析数据支持 4使用ES来构建网站的全文检索引擎 2.3 Elasticsearch 特点 1分布式的实时文件存储每个字段都被索引并可被搜索 2分布式的实时分析搜索引擎 3可弹性扩展到上百台服务器规模处理PB级结构化或非结构化数据 4开箱即用安装即可使用它提供了许多合理的缺省值并对初学者隐藏了复杂的搜索引擎理论。只需很少的学习既可在生产环境中使用。 2.4 ElasticSearch核心概念倒排索引
关系型数据库 拿着文档找单词 elasticSearch 拿着单词找文档
elasticSearch中可以包含多个索引(数据库)每个索引中可以包含多个类型(表)每个类型可以包含多个文档(行)每个文档可以包含多个字段(列)
es是面向文档的一切都是json。
关系型数据库和elasticSearch对比
关系型数据库elasticSearch数据库(database)索引 indices表(table)类型 types行(row)文档 documents字段(columns)fields
2.5 ElasticSearch基本概念
1 Cluster
集群是一个或多个节点的集合它们共同保存您的整个数据并提供跨所有节点的联合索引和搜索功能。群集由唯一的名称标识默认情况下为“elasticsearch”。此名称很重要因为如果节点设置为按名称加入群集则该节点只能是群集的一部分。
确保不要在不同的环境中重用相同的群集名称否则很可能会导致节点加入错误的群集。例如您可以使用logging-devlogging-stage以及logging-prod用于开发预发和生产环境。
如果群集中只有一个节点那么它是完全正常的。此外您还可以拥有多个独立的集群每个集群都有自己唯一的集群名称。
2 Node
节点是作为集群一部分的单个服务器存储数据并参与集群的索引和搜索功能。就像集群一样节点由名称标识默认情况下该名称是在启动时分配给节点的随机通用唯一标识符UUID。如果不需要默认值可以定义所需的任何节点名称。此名称对于管理目的非常重要您可以在其中识别网络中哪些服务器与Elasticsearch集群中的哪些节点相对应。
可以将节点配置为按集群名称加入特定群集。默认情况下每个节点都设置为加入一个名为cluster的集群elasticsearch这意味着如果您在网络上启动了许多节点并且假设它们可以相互发现它们将自动形成并加入一个名为elasticsearch的集群。
在单个集群中可以拥有任意数量的节点。此外如果网络上当前没有其他Elasticsearch节点正在运行则默认情况下启动单个节点将形成一个名为elasticsearch的新单节点集群。
ElasticSearch本质上是一个分布式数据库允许多台服务器协同工作每台服务器可以运行多个 ElasticSearch实例。单个 ElasticSearch实例称为一个节点node。一组节点构成一个集群cluster。
3Index
索引是具有某些类似特征的文档集合。
例如可以给客户数据建立一个索引给产品目录建立另一个索引或给订单数据的建立一个索引。
索引有一个名称标识必须全部小写此名称用于在对其中的文档执行索引搜索更新和删除操作时引用索引所用。
在单个群集中您可以根据需要定义任意数量的索引。
ElasticSearch会索引所有字段经过处理后写入一个反向索引Inverted Index。查找数据的时候直接查找该索引。所以ElasticSearch数据管理的顶层单位就叫做 Index索引。它是单个数据库的同义词。每个 Index 即数据库的名字必须是小写。通过下面命令可以访问当前节点的所有 Index curl -X GET http://localhost:9200/_cat/indices?v4Type
Type是一个逻辑意义上的分类或者叫分区允许在同一索引中建立多个type。本质是相当于一个过滤条件高版本将会废弃type概念。
Document 可以分组比如 weather 这个 Index 里面可以按城市分组北京和上海也可以按气候分组晴天和雨天。这种分组就叫做 Type它是虚拟的逻辑分组用来过滤 Document。
不同的 Type 应该有相似的结构schema举例来说 id 字段不能在这个组是字符串在另一个组是数值。这是与关系型数据库的表的一个区别。性质完全不同的数据比如 products 和 logs 应该存成两个 Index而不是一个 Index 里面的两个 Type虽然可以做到。
下面的命令可以列出每个 Index 所包含的 Type。 curl localhost:9200/_mapping?prettytrue注意Elastic 6.x 版只允许每个 Index 包含一个 Type7.x 版将会彻底移除 Type。
5Document
Document是可以编制索引的基本信息单元。例如您可以为单个客户提供文档为单个产品提供另一个文档为单个订单提供另一个文档。该文档以JSONJavaScript Object Notation表示JSON是一种普遍存在的互联网数据交换格式。
在索引/类型中可以根据需要存储任意数量的文档。
值得注意的是尽管文档实际上驻留在索引中但实际上必须将文档分配给索引中的一个类型type中。
Index 里面单条的记录称为 Document文档。许多条 Document 构成了一个 Index。同一个 Index 里面的 Document不要求有相同的结构scheme但是最好保持相同这样有利于提高搜索效率。
Document 使用 JSON 格式表示如下所示 {id: 000001,name: joshua317,age: 28
}6分片Shards
索引可能存储大量可能超过单个节点硬件限制的数据。例如占用1TB磁盘空间的十亿个文档的单个索引可能不适合单个节点的磁盘或者可能太慢而无法单独从单个节点提供搜索请求。
为了解决这个问题Elasticsearch提供了将索引细分为多个称为分片的功能。创建索引时只需定义所需的分片数即可。每个分片本身都是一个功能齐全且独立的“索引”可以托管在集群中的任何节点上。
分片很重要主要有两个原因 它允许集群进行水平扩展 它允许集群跨分片可能在多个节点上分布和并行化操作从而提高性能和吞吐量。 分片的分布方式以及如何将其文档聚合回搜索请求的机制完全由Elasticsearch管理对用户而言是透明的。
7副本Replicas
副本主要是针对主分片Shards的复制Elasticsearch中主分片可以拥有0个或多个的副本。
副本分片的主要目的就是为了故障转移。
分片副本很重要主要有两个原因 它在分片或节点发生故障时提供高可用性。因此副本分片永远不会在与其复制的主分片相同的节点 副本分片也可以接受搜索的请求可以并行搜索从而提高系统的吞吐量。 每个Elasticsearch分片都是Lucene索引。单个Lucene索引中可以包含最大数量的文档。截止LUCENE-5843限制是2,147,483,519 Integer.MAX_VALUE - 128文档。您可以使用_cat/shardsAPI 监控分片大小。 三、Elasticsearch-7.15.2安装
3.1 下载安装包
访问地址Download Elasticsearch | Elastic 下载地址https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.2-windows-x86_64.zip
3.2 解压运行
解压到自己的安装目录 目录文件作用
bin 脚本文件包括 ES 启动 安装插件等等
config elasticsearch.ymlES 配置文件、jvm.optionsJVM 配置文件、日志配置文件等等
JDK 内置的 JDKJAVA_VERSION13.0.2
lib 类库
logs 日志文件
modules ES 所有模块包括 X-pack 等
plugins ES 已经安装的插件。默认没有插件
data ES 启动的时候会有该目录用来存储文档数据。该目录可以设置
运行直接双击bin目录下面的 elasticsearch.bat 文件 注意会出现下面的告警信息主要说的是本机安装的jdk1.8版本不满足需要Elasticsearch7.x所需要的jdk版本是java11可以忽略这个告警当然也可以根据需要调整到java11的版本。 warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
Future versions of Elasticsearch will require Java 11; your Java version from [C:\MyProgram\Java\jdk1.8.0_281\jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set.
Future versions of Elasticsearch will require Java 11; your Java version from [C:\MyProgram\Java\jdk1.8.0_281\jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set.
Warning: with JDK 8 on Windows, Elasticsearch may be unable to derive correctergonomic settings due to a JDK issue (JDK-8074459). Please use a newerversion of Java.
Warning: MaxDirectMemorySize may have been miscalculated due to JDK-8074459.Please use a newer version of Java or set MaxDirectMemorySize explicitly.
在elasticsearch7.x之后的版本, 已经集成了自带的jdk, 在根目录下的jdk文件夹中 这里需要修改elasticsearch-env.bat启动文件的配置内容, 设置系统使用elasticsearch自带的jdk版本 在 bin/elasticsearch-env.bat 文件中找到关于JAVA_HOME的配置, 注释掉if…else判断的东西, 替换为如下三行代码
把下面的代码 # now set the path to java
if [ ! -z $ES_JAVA_HOME ]; thenJAVA$ES_JAVA_HOME/bin/javaJAVA_TYPEES_JAVA_HOME
elif [ ! -z $JAVA_HOME ]; then# fallback to JAVA_HOMEecho warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME 2JAVA$JAVA_HOME/bin/javaJAVA_TYPEJAVA_HOME
else# use the bundled JDK (default)if [ $(uname -s) Darwin ]; then# macOS has a different structureJAVA$ES_HOME/jdk.app/Contents/Home/bin/javaelseJAVA$ES_HOME/jdk/bin/javafiJAVA_TYPEbundled JDK
fi改为 set JAVA%ES_HOME%\jdk\bin\java.exe
set JAVA_HOME%ES_HOME%\jdk
set JAVA_TYPEbundled jdk然后重新启动。
启动成功后会出现下面的信息 简单访问下 四、elasticsearch-head插件安装
为了便于管理ES可使用head插件这是最初级的管理工具在浏览器中显示ES集群索引等信息十分简便好用。
安装elasticsearch-head需要安装node和grunt
4.1 node下载并安装
node访问地址
Node.js
node下载地址
https://nodejs.org/dist/v16.13.0/node-v16.13.0-x64.msi
直接双击进行安装安装完成后可以通过 node -v 查看 )
4.2 elasticsearch-head下载并安装
访问地址
GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster
下载地址
https://github.com/mobz/elasticsearch-head/archive/refs/heads/master.zip
解压 elasticsearch-head-master到 elasticsearch的安装目录 4.3 安装grunt
grunt 是基于Node.js的项目构建工具可以进行打包压缩、测试、执行等等的工作head插件就是通过grunt启动。
在命令行下执行 npm install -g grunt-cli 4.4 安装依赖
在elasticsearch-head-master目录下执行 npm install 安装依赖 4.5 修改elasticsearch-head-master配置
修改服务器监听地址,配置文件 Gruntfile.js connect: {server: {options: {port: 9100,base: .,keepalive: truehostname: *}}}4.6 修改elasticsearch配置重新启动
修改elasticsearch安装目录下的配置文件 config/elasticsearch.yml # 设成0.0.0.0让任何人都可以访问线上服务不要这样设置。
network.host: 0.0.0.0
http.port: 9200
# 解决elasticsearch-head 集群健康值: 未连接问题, 配置解决跨域, 否则es-head连接会跨域
http.cors.enabled: true
http.cors.allow-origin: *
node.name: node-1
cluster.initial_master_nodes: [node-1]注意
1elasticsearch.yml文件的编码是utf-8
2如果出现下面报错信息 node validation exception
[1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured这个问题是由于配置的问题导致的, 修改配置文件即可解决在elasticsearch.yml中配置node节点 node.name: node-1
cluster.initial_master_nodes: [node-1]修改完配置后重启elasticsearch服务
4.7 启动运行elasticsearch-head服务
在elasticsearch-head-master目录下执行 grunt server 命令 如果在PowerShell下以管理员的身份下执行 grunt server 下面错误 PS C:\MyProgram\elasticsearch-7.15.2-windows\elasticsearch-head-master grunt --version
grunt : 无法加载文件 C:\Users\joshua317\AppData\Roaming\npm\grunt.ps1因为在此系统上禁止运行脚本。有关详细信息请参阅https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1grunt --version~~~~~ CategoryInfo : SecurityError: (:) []PSSecurityException FullyQualifiedErrorId : UnauthorizedAccess需要执行下面命令,然后选择Y set-ExecutionPolicy RemoteSigned关闭PowerShel 然后执行 get-ExecutionPolicy 发现变成了RemoteSigned就成功了 然后重新执行 grunt server 命令即可 4.8 访问elasticsearch-head服务
访问Node Exporter 如果出现集群健康值未连接请查看Elasticsearch配置是否正确,Elasticsearch服务是否启动 五、IK分词器安装
在Elasticsearch中使用较多的中文分词器是 elasticsearch-analysis-ik这个是 es 的一个第三方插件代码托管在 GitHub 上GitHub - medcl/elasticsearch-analysis-ik: The IK Analysis plugin integrates Lucene IK analyzer into elasticsearch, support customized dictionary.
注意Elasticsearch的版本7.15.2所以需要对应的ik分词器插件版本应该也是7.15.2也就是说IK分词器的版本要选择和Elasticsearch版本号一样
项目访问地址GitHub - medcl/elasticsearch-analysis-ik: The IK Analysis plugin integrates Lucene IK analyzer into elasticsearch, support customized dictionary. 下载地址https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.15.2/elasticsearch-analysis-ik-7.15.2.zip 1安装方式一
直接进入进入Elasticsearch安装目录的的bin目录下打开命令行窗口执行命令即可。 .\elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.15.2/elasticsearch-analysis-ik-7.15.2.zip2安装方式二
下载地址https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.15.2/elasticsearch-analysis-ik-7.15.2.zip
直接将elasticsearch-analysis-ik-7.15.2.zip文件拷贝到Elasticsearch安装目录的plugins目录下解压后并将elasticsearch-analysis-ik-7.15.2解压后的文件夹重命名为ik
重新运行bin/elasticsearch.bat重启ik安装完成。
不知道如何验证是否安装成功可以先使用帮助命令 elasticsearch-plugin -h 查看可用的命令 C:\MyProgram\elasticsearch-7.15.2-windows\bin ./elasticsearch-plugin -h
A tool for managing installed elasticsearch pluginsCommands
--------
list - Lists installed elasticsearch plugins
install - Install a plugin
remove - removes plugins from ElasticsearchNon-option arguments:
commandOption Description
------ -----------
-E KeyValuePair Configure a setting
-h, --help Show help
-s, --silent Show minimal output
-v, --verbose Show verbose output所以我们可以使用 elasticsearch-plugin list 查看已安装得插件。
C:\MyProgram\elasticsearch-7.15.2-windows\bin ./elasticsearch-plugin list
ik六、Kibana安装
Kibana 是一个 Elastic 公司推出的一个针对 es 的分析以及数据可视化平台可以搜索、查看存放在 es 中的数据。
访问地址Download Kibana Free | Get Started Now | Elastic
下载地址https://artifacts.elastic.co/downloads/kibana/kibana-7.15.2-windows-x86_64.zip
解压kibana-7.15.2-windows-x86_64.zip到目标路径修改kibana-7.15.2-windows-x86_64\config路径下的kibana.yml server.port: 5601
elasticsearch.hosts: [http://localhost:9200]启动Kibana
注意需要先启动elasticsearch.bat再启动kibana.bat
直接通过链接访问http://localhost:5601/ 进入到开发者工具http://127.0.0.1:5601/app/dev_tools#/console 禁用Kibana安全提示Elasticsearch built-in security features are not enabled Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. See https://www.elastic.co/guide/en/elasticsearch/reference/7.15/security-minimal-setup.html to enable security.在 elasticsearch.yml 配置禁用安全选项 xpack.security.enabled 之后重启ElasticSearch即可 xpack.security.enabled: false YAML
Copy 最后报错不要慌在安装或者运行过程中遇到异常或者报错查看Elasticsearch安装目录下的logs目录里面的文件