当前位置: 首页 > news >正文

湟源县wap网站建设公司张家界建设网站制作

湟源县wap网站建设公司,张家界建设网站制作,微网站首页,湖南宁乡建设局网站1.介绍 ElasticSearch是基于Lucene的开源搜索及分析引擎#xff0c;使用Java语言开发的搜索引擎库类#xff0c;并作为Apache许可条款下的开放源码发布#xff0c;是当前流行的企业级搜索引擎。 它可以被下面这样准确的形容#xff1a; 一个分布式的实时文档存储#xf…1.介绍 ElasticSearch是基于Lucene的开源搜索及分析引擎使用Java语言开发的搜索引擎库类并作为Apache许可条款下的开放源码发布是当前流行的企业级搜索引擎。 它可以被下面这样准确的形容 一个分布式的实时文档存储每个字段可以被索引与搜索。一个分布式实时分析搜索引擎。能胜任上百个服务节点的扩展并支持 PB 级别的结构化或者非结构化数据。 1.1.主要功能及应用场景 除了搜索结合Kibana、Logstash、Beats开源产品Elastic Stack简称ELK还被广泛运用在大数据近实时分析领域 主要功能 1海量数据的分布式存储以及集群管理达到了服务与数据的高可用以及水平扩展 2近实时搜索性能卓越。可以对结构化、全文、地理位置等类型数据的处理 3海量数据的近实时分析聚合功能 应用场景 1网站搜索、垂直搜索、代码搜索 2日志管理与分析、安全指标监控、应用性能监控、Web抓取舆情分析。 1.2.ELK生态认知 如下是从官方博客中找到图这张图展示了ELK生态以及基于ELK的场景最上方 1.3.基础概念 Near RealtimeNRT 近实时。数据提交索引后立马就可以搜索到。Cluster 集群一个集群由一个唯一的名字标识默认为“elasticsearch”。集群名称非常重要具有相同集群名的节点才会组成一个集群。集群名称可以在配置文件中指定。Node 节点存储集群的数据参与集群的索引和搜索功能。像集群有名字节点也有自己的名称默认在启动时会以一个随机的UUID的前七个字符作为节点的名字你可以为其指定任意的名字。通过集群名在网络中发现同伴组成集群。一个节点也可是集群。Index 索引: 一个索引是一个文档的集合等同于solr中的集合。每个索引有唯一的名字通过这个名字来操作它。一个集群中可以有任意多个索引。Type 类型指在一个索引中可以索引不同类型的文档如用户数据、博客数据。从6.0.0 版本起已废弃一个索引中只存放一类数据。Document 文档被索引的一条数据索引的基本信息单元以JSON格式来表示。Shard 分片在创建一个索引时可以指定分成多少个分片来存储。每个分片本身也是一个功能完善且独立的“索引”可以被放置在集群的任意节点上。Replication 备份: 一个分片可以有多个备份副本 为了方便理解作一个ES和数据库的对比 2.安装 2.1.官网 官方网站https://www.elastic.co/cn/ 官方2.x中文教程中安装教程https://www.elastic.co/guide/cn/elasticsearch/guide/current/running-elasticsearch.html 官方ElasticSearch下载地址https://www.elastic.co/cn/downloads/elasticsearch 官方Kibana下载地址https://www.elastic.co/cn/downloads/kibana 2.2.安装 安装Java安装 Elasticsearch 之前你需要先安装一个较新的版本的 Java最好的选择是你可以从 www.java.com在新窗口打开 获得官方提供的最新版本的 Java。安装以后确认是否安装成功 下载ElasticSearch 解压 增加elasticSearch用户必须创建一个非root用户来运行ElasticSearch(ElasticSearch5及以上版本基于安全考虑强制规定不能以root身份运行。)如果你使用root用户来启动ElasticSearch则会有如下错误信息 所以我们增加一个独立的elasticsearch用户来运行 进入elasticsearch.yml文件修改上述的data和log路径 修改Linux系统的限制配置 1修改系统中允许应用最多创建多少文件等的限制权限。Linux默认来说一般限制应用最多创建的文件是65535个。但是ES至少需要65536的文件创建权限。 2修改系统中允许用户启动的进程开启多少个线程。默认的Linux限制root用户开启的进程可以开启任意数量的线程其他用户开启的进程可以开启1024个线程。必须修改限制数为4096。因为ES至少需要4096的线程池预备。ES在5.x版本之后强制要求在linux中不能使用root用户启动ES进程。所以必须使用其他用户启动ES进程才可以。 3Linux低版本内核为线程分配的内存是128K。4.x版本的内核分配的内存更大。如果虚拟机的内存是1G最多只能开启3000个线程数。至少为虚拟机分配1.5G以上的内存。 启动ElasticSearch 查看安装是否成功 安装kibana 下载Kibana Kibana是界面化的查询数据的工具下载时尽量下载与ElasicSearch一致的版本。 解压 使用elasticsearch用户权限 启动 配置密码 1停止kibana和elasticsearch服务 2将xpack.security.enabled设置添加到ES_PATH_CONF/elasticsearch.yml文件并将值设置为true 3启动elasticsearch (./bin/elasticsearch -d) 4执行如下密码设置器./bin/elasticsearch-setup-passwords interactive来设置各个组件的密码 5将elasticsearch.username设置添加到KIB_PATH_CONF/kibana.yml 文件并将值设置给elastic用户 elasticsearch.username: “elastic” 6创建kibana keystore, ./bin/kibana-keystore create 7在kibana keystore 中添加密码 ./bin/kibana-keystore add elasticsearch.password 8重启kibana 服务即可 nohup ./bin/kibana 3.查询和聚合的使用 3.1.DSL查询之复合查询 3.1.1 bool query(布尔查询) Bool查询语法有以下特点 子查询可以任意顺序出现 可以嵌套多个查询包括bool查询 如果bool查询中没有must条件should中必须至少满足一条才会返回结果。 bool查询包含四种操作符分别是must,should,must_not,filter。他们均是一种数组数组里面是对应的判断条件。 must 必须匹配。贡献算分 must_not过滤子句必须不能匹配但不贡献算分 should 选择性匹配至少满足一条。贡献算分 filter 过滤子句必须匹配但不贡献算分 3.1.2 function_score(函数查询 script_score 如果需要预定义函数之外的功能可以根据需要通过脚本进行实现 3.2.DSL查询之全文搜索 3.2.1.match多个词深入 它在内部实际上先执行两次 term 查询然后将两次查询的结果合并作为最终结果输出。和如下语句查询结果是等同的 3.2.2.match的匹配精度 如果用户给定 3 个查询词想查找至少包含其中 2 个的文档该如何处理将 operator 操作符参数设置成 and 或者 or 都是不合适的。 match 查询支持 minimum_should_match 最小匹配参数这让我们可以指定必须匹配的词项数用来表示一个文档是否相关。 我们可以将其设置为某个具体数字更常用的做法是将其设置为一个百分数因为我们无法控制用户搜索时输入的单词数量 当给定百分比的时候 minimum_should_match 会做合适的事情在之前三词项的示例中 75% 会自动被截断成 66.6% 即三个里面两个词。无论这个值设置成什么至少包含一个词项的文档才会被认为是匹配的。 3.3.DSL查询之term 查询分基于文本查询和基于词项的查询term主要讲基于词项的查询 字段是否存在:exist文档字段的索引值可能不存在exist表示查找是否存在字段 前缀:prefix通过前缀查找某个字段 多个分词匹配:terms按照多个分词term匹配它们是or的关系 通配符:wildcard通配符匹配比如* 范围:range常常被用在数字或者日期范围的查询 正则:regexp通过正则表达式查询 3.4.聚合查询之Bucket ElasticSearch中桶在概念上类似于 SQL 的分组GROUP BY 标准的聚合聚合操作被置于顶层参数 aggs 之下完整形式 aggregations 同样有效 动态脚本的聚合ElasticSearch还支持一些基于脚本生成运行时的字段的复杂的动态聚合 对number类型聚合Range基于Range的聚合使用户能够定义一组范围-每个范围代表一个桶。 对IP类型聚合IP Range专用于IP值的范围聚合 对日期类型聚合Date Range专用于日期值的范围聚合 3.5.聚合查询之Metric 指标Metrics 对桶内的文档进行统计计算类似于 COUNT() 、 SUM() 、 MAX() 等统计方法 单值分析: 标准stat类型 avg 平均值 max 最大值 min 最小值 sum 和 value_count 数量 其它类型 weighted_avg 带权重的avg cardinality 基数distinct去重 median_absolute_deviation 中位值 非单值分析 stats型 stats 包含avg,max,min,sum和count matrix_stats 针对矩阵模型 string_stats 针对字符串 百分数型 percentiles 百分数范 percentile_ranks 百分数排行 地理位置型 geo_bounds Geo bounds geo_centroid Geo-centroid geo_line Geo-Line Top型 top_hits 分桶后的top hits top_metrics 3.6.聚合查询之Pipline 管道聚合Pipeline Aggregation)简单而言就是让上一步的聚合结果成为下一个聚合的输入 嵌套的bucket聚合聚合出按月价格的直方图 Metic聚合对上面的聚合再求平均值 字段含义 buckets_path指定聚合的名称支持多级嵌套聚合。 gap_policy 当管道聚合遇到不存在的值有点类似于term等聚合的(missing)时所采取的策略可选择值为skip、insert_zeros。 skip此选项将丢失的数据视为bucket不存在。它将跳过桶并使用下一个可用值继续计算。 format 用于格式化聚合桶的输出(key)。 以上内容主要用于构筑知识体系用的时候查询下即可 4.性能优化 4.1.硬件配置优化 CPU 配置大多数 Elasticsearch 部署往往对 CPU 要求不高。因此相对其它资源具体配置多少个CPU不是那么关键。常见的集群使用4 到 8 个核的机器。 内存配置如果有一种资源是最先被耗尽的它可能是内存。排序和聚合都很耗内存所以有足够的堆空间来应付它们是很重要的。64 GB 内存的机器是非常理想的但是 32 GB 和 16 GB 机器也是很常见的。少于8 GB 会适得其反你最终需要很多很多的小机器大于 64 GB 的机器也会有问题。 内存分配当机器内存小于 64G 时遵循通用的原则50% 给 ES50% 留给 lucene。 禁止 swap禁止 swap一旦允许内存与磁盘的交换会引起致命的性能问题。可以通过在 elasticsearch.yml 中 bootstrap.memory_lock: true以保持 JVM 锁定内存保证 ES 的性能。 磁盘硬盘对所有的集群都很重要对大量写入的集群更是加倍重要例如那些存储日志数据的。硬盘是服务器上最慢的子系统这意味着那些写入量很大的集群很容易让硬盘饱和使得它成为集群的瓶颈。尽量使用固态硬盘SSD。 4.2.查询方面优化 带 routing 查询查询的时候可以直接根据 routing 信息定位到某个分配查询不需要查询所有的分配经过协调节点排序。routing 默认值是文档的 id也可以采用自定义值比如用户 ID。 Filter VS QueryElasticsearch 针对 Filter 查询只需要回答「是」或者「否」不需要像 Query 查询一样计算相关性分数同时Filter结果可以缓存。 深度翻页在使用 Elasticsearch 过程中应尽量避免大翻页的出现。 正常翻页查询都是从 from 开始 size 条数据这样就需要在每个分片中查询打分排名在前面的 fromsize 条数据。如果 from 或者 size 很大的话导致参加排序的数量会同步扩大很多最终会导致 CPU 资源消耗增大。 可以结合实际业务特点文档 id 大小如果和文档创建时间是一致有序的可以以文档 id 作为分页的偏移量并将其作为分页查询的一个条件。 Cache的设置及使用QueryCache: ES查询的时候使用filter查询会使用query cache, 如果业务场景中的过滤查询比较多建议将querycache设置大一些以提高查询速度。 FieldDataCache: 在聚类或排序时field data cache会使用频繁因此设置字段数据缓存的大小在聚类或排序场景较多的情形下很有必要。 4.3.集群架构设计 Elasticsearch 集群在架构拓朴时采用主节点、数据节点和负载均衡节点分离的架构在 5.x 版本以后又可将数据节点再细分为“Hot-Warm”的架构模式。 Elasticsearch 的配置文件中有 2 个参数node.master 和 node.data。这两个参数搭配使用时能够帮助提供服务器性能。 主master节点 配置 node.master:true 和 node.data:false该 node 服务器只作为一个主节点但不存储任何索引数据专门负责处理集群的管理以及加强状态的整体稳定性。 因为这 3 个 master 节点不包含数据也不会实际参与搜索以及索引操作所以master 节点的 CPU内存以及磁盘配置可以比 data 节点少很多的。 数据data节点 配置 node.master:false 和 node.data:true该 node 服务器只作为一个数据节点只用于存储索引数据使该 node 服务器功能单一只用于数据存储和数据查询降低其资源消耗率。 hot 节点主要是索引节点写节点同时会保存近期的一些频繁被查询的索引。由于进行索引非常耗费 CPU 和 IO即属于 IO 和 CPU 密集型操作建议使用 SSD 的磁盘类型保持良好的写性能。将节点设置为 hot 类型需要 elasticsearch.yml 如下配置node.attr.box_type: hot。 warm节点是为了处理大量的而且不经常访问的只读索引而设计的。由于这些索引是只读的warm 节点倾向于挂载大量磁盘普通磁盘来替代 SSD。内存、CPU 的配置跟 hot 节点保持一致即可节点数量一般也是大于等于 3 个。将节点设置为 warm 类型需要 elasticsearch.yml 如下配置node.attr.box_type: warm。
http://www.yutouwan.com/news/280673/

相关文章:

  • 进口外贸流程无锡seo公司网站
  • 做机械的有什么网站邢台哪里可以做网站
  • 扬州建设信息网站苏州网站建设kgu
  • 网站后wordpress文章编辑页面太原网站的公司
  • 手机模板网站开发河南南阳油田网站建设
  • 企业网站建设和实现 论文学建模去什么学校
  • 国外游戏网站设计广州建站服务商
  • 花钱做网站要多少钱免费的wordpress怎样提高浏览量
  • 招聘网站销售怎么做微信小程序开发实战
  • 网站开发图片框杭州品牌设计公司
  • 介绍几个有趣的网站做烘焙网站
  • 内江网站建设大型网站开发工具
  • 网站分析百度重庆市建设工程安全管理协会
  • 东莞住房建设网站的网网站开发 加密存储 解密 二次计算
  • 青浦华新网站建设融资平台公司定义
  • 广告设计网站素材网站开发网上悼念
  • 建设企业官方网站英文网站定制公司
  • 专业建网站价格昆明网站制作代理
  • 深圳企业网站建设标准网页设计与网站开发的实践目的
  • 整站seo优化一般多少钱ideas wordpress theme 2.0
  • 个人网站如何备企业网页加速器怎么用
  • 怎样建网站平台凡科建设网站怎么保存
  • 建设银行住房公积网站任城网络推广教程
  • joomla做的网站做网站新手流程
  • 网站建设方维中国建筑装饰网王凤波
  • 网站设计侵权网站右下角flash
  • 北京网站优化推广公司苏州网站建设问问q778925409强涵
  • 做网站建设需要网站优化怎么做分录
  • 网站审批公司建设电商型网站的作用
  • 一个域名一个ip做多个网站南京企业网站开发