2018/2/5 ELK技术栈之ElasticSearch学习笔记
npm config set registry https://registry.npm.taobao.org
npm config get registry
支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
一个异常加上
node.max_local_storage_nodes: 256
ElasticSearch是一个基于Lucence的搜索服务器.
它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.
相比于solr可以使用xml,csv,json等进行交互,ElasticSearch只能用json进行交互;
与lucence和solr创建索引时以一个域名和分词后的其值(组合起来教term)作为索引不同的是,ElasticSearch里静态词意的索引并不针对于term建立索引.而是一个类似数据库的逻辑命名空间;
动态词意上则可以称作将某个文档放到索引里;
再细化后就是Type,可以理解为表.
再细化后就是Document,相当于一行数据(这个倒是跟lucence和solr差不多).
最基础的单元就是field,相当于一列数据.
Shards(分片(每一个分片都是一个luncence实例,是一个完整的搜索引擎,但我们不直接与它通信)),ElasticSearch能自动根据节点的增加动态调整复制分片.这也是为什么说ElasticSearch天生就是分布式的原因之一,
ElasticSearch可以将一个索引分成若干个存到集群中的Node中(分片的数量是在建立索引时就需要确定的,但不用担心节点扩容和缩小的问题,ElasticSearch可以自动根据你的节点数量来迁移分片).
replicas(复制)见其名知其义,就是将索引复制一份或者多份,作为副本(复制单元是分片,本身有算法能保证不会有相同分片在同一个节点上,并且复制分片在主分片没有出问题的情况下,只负责读,读针对于客户端发来的请求以及从其它的分片中读取更新的文档).
在ElasticSearch中映射Mapping不需要定义映射类型,在我们存入第一行json时会自动根据我们存入的数据类型而确定其数据类型.
MasterNode负责整理和管理元信息;
DataNode负责存储和响应数据;
任何一个节点都是一个ElaticSearch实例,任何一个节点都可以接受客户端的请求,并能从元信息中获取到具体数据所在的节点,之后将请求转发到存在文档的对应节点上,之后收集各个节点返回的数据,最后一起返回给客户端;
与ElasticSearch服务端交互的三种方式:
一:节点客户端
ClientNode会作为一个非数据节点加入到集群中,它本身不保存任何数据,但ClientNode拥有元信息,这样当用户发来请求后ClientNode能根据元信息中的索引信息到对应的DataNode节点上进行数据请求;
二:传输客户端
不会加入集群,但可以把请求转发到集群中的一个节点上;
三:使用RESTful API进行交互
这个没什么说的,任何语言都可以使用json通过RESTful API与ElasticSearch服务进行交互.Linux则是通过curl命令(Linux下用来模拟http请求的技术)来进行交互;
ElaticSearch数据格式:
String:text/keyword(这两个的区别在于text会默认进行分词,而keyword则相反)
Number:六种数据类型:byte,short,Integer,long,double,float
data:这个可以自定义,比如,yyyy-MM-dd HH:mm:ss(默认类型为:strict_date_optional_time||epoch_millis)
boolean:布尔值
ip:(ipv4和ipv6都支持)
geo_point:地图坐标
nested:嵌套类型
object:json对象
binary:二进制
ElasticSearch集群分为三个状态,使用/_cluster/health可查询
green:所有主分片和副本分片都正常运行
yellow:不是所有的副本分片都正常,但主分片都正常
red:有主分片不正常并且没有副本分片能替代它(如果某一个主分片异常了,ElasticSearch能检测到,并升级对应的副本分片为主分片,在其恢复正常后,会重新将副本分片的数据重新导入给原主分片)
ElasticSearch模板和mapping索引字段类型映射:
mapping字段映射分为三种状态:1.dynamic:strict 2.dynamic:no 3.dunamic:true
第一种状态为严格的按照创建索引时指定的字段类型进行映射,如果你添加了非此类型的也不会报错,但是其不会被索引
第二种和第一种相同;
第三种就是动态的,你也可以在创建索引时指定,在之后你新增的类型字段会自动根据其类型加上映射索引字段
模板的意思就如同字面上一样,预定义一个模板,在之后可以指定这个模板,或者使用通配符自动为索引配置此模板里定义好的参数信息;
mapping和模板都可以使用通配符进行自动匹配,一般情况下是配合使用;mapping还可以使用match自动为某个字段定义类型;
并且模板可以设置order属性自定义优先级(order值越大优先级越高);
2018/2/5 ELK技术栈之ElasticSearch学习笔记的更多相关文章
- 2018/2/11 ELK技术栈之ElasticSearch学习笔记二
终于有时间记录一下最近学习的知识了,其实除了写下的这些还有很多很多,但懒得一一写下了: ElasticSearch添加修改删除原理:ElasticSearch的倒排索引和文档一旦生成就不允许修改(其实 ...
- ELK技术栈之-Logstash详解
ELK技术栈之-Logstash详解 前言 在第九章节中,我们已经安装好Logstash组件了,并且启动实例测试它的数据输入和输出,但是用的是最简单的控制台标准输入和标准输出,那这节我们就来深入的 ...
- 应用编排服务之ELK技术栈示例模板详解
日志对互联网应用的运维尤为重要,它可以帮助我们了解服务的运行状态.了解数据流量来源甚至可以帮助我们分析用户的行为等.当进行故障排查时,我们希望能够快速的进行日志查询和过滤,以便精准的定位并解决问题. ...
- 2018/2/13 ElasticSearch学习笔记三 自动映射以及创建自动映射模版,ElasticSearch聚合查询
终于把这些命令全敲了一遍,话说ELK技术栈L和K我今天花了一下午全部搞定,学完后还都是花式玩那种...E却学了四天(当然主要是因为之前上班一直没时间学,还有安装服务时出现的各种error真是让我扎心了 ...
- ElasticSearch学习笔记(超详细)
文章目录 初识ElasticSearch 什么是ElasticSearch ElasticSearch特点 ElasticSearch用途 ElasticSearch底层实现 ElasticSearc ...
- Elasticsearch学习笔记一
Elasticsearch Elasticsearch(以下简称ES)是一款Java语言开发的基于Lucene的高效全文搜索引擎.它提供了一个分布式多用户能力的基于RESTful web接口的全文搜索 ...
- elasticsearch学习笔记——相关插件和使用场景
logstash-input-jdbc学习 ES(elasticsearch缩写)的一大优点就是开源,插件众多.所以扩展起来非常的方便,这也造成了它的生态系统越来越强大.这种开源分享的思想真是与天朝格 ...
- 【原】无脑操作:ElasticSearch学习笔记(01)
开篇来自于经典的“保安的哲学三问”(你是谁,在哪儿,要干嘛) 问题一.ElasticSearch是什么?有什么用处? 答:截至2018年12月28日,从ElasticSearch官网(https:// ...
- elasticsearch学习笔记--原理介绍
前言:上一篇中我们对ES有了一个比较大概的概念,知道它是什么,干什么用的,今天给大家主要讲一下他的工作原理 介绍:ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户 ...
随机推荐
- ionic2 安装与cordova打包
1.安装: cnpm install -g cordova ionic ionic start name cd name cnpm install 2.环境配置: http://www.cnblo ...
- POJ 2387 Til the Cows Come Home(模板——Dijkstra算法)
题目连接: http://poj.org/problem?id=2387 Description Bessie is out in the field and wants to get back to ...
- don\'t have permission access on this server听语音
在网络上已经有很多的类型较多的框架,例如wamp,xmap等基于apache+mysql集成的框架,只要通过架包的方式,把相关的内容放到与这些的框架中后,启动服务器就可以执行架包内容,而在初始安装完成 ...
- [SinGuLaRiTy] 复习模板-数学
[SinGuLaRiTy-1047] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 质因数分解 void solve(int n) { == ...
- SDP(3):ScalikeJDBC- JDBC-Engine:Fetching
ScalikeJDBC在覆盖JDBC基本功能上是比较完整的,而且实现这些功能的方式比较简洁,运算效率方面自然会稍高一筹了.理论上用ScalikeJDBC作为一种JDBC-Engine还是比较理想的:让 ...
- Nodejs的运行原理-生态篇
前言 这里是重点:Nodejs 是由v8 engine,libuv和内置模块组成,可以将v8 engine和 libuv看成一个库,两者是以源码的方式直接编译执行node中去的. 这是一个广泛的介绍, ...
- PID算法
所谓PID就是比例-积分-微分的英文缩写,但并不是必须同时具备这三种算法,也可以是 PD, PI,甚至只有 P算法控制,下面分别介绍每个参数的含义:首先需要明确一个事实就是,要实现PID算法,必须在硬 ...
- Win2003 设置远程连接限制数
在开发过程中,很多同事需要连接到一台Win2003服务器,但是连接人数超过了10个,就连接不上了.想设置一下连接限制数,可以如下操作: 1:在运行里面输入gpedit.msc后,弹出"本地计 ...
- java 网络编程之UDP通信和简单的群聊程序
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- Linux下passwd和shadow文件内容详解
一./etc/passwd /etc/passwd 文件是一个纯文本文件,每行采用了相同的格式: name:password:uid:gid:comment:home:shell name 用户登录名 ...