自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shuimofengyang的博客

感兴趣遍地都是,投入和坚持不懈才是稀缺的。

  • 博客(23)
  • 资源 (5)
  • 收藏
  • 关注

原创 Elasticsearch 倒排索引核心原理

例子:doc1:I really liked my small dogs, and I think my mom also liked them.doc2:He never liked any dogs, so I hope that my mom will not expect me to liked him.分词,初步的倒排索引的建立 *表示有word doc1 doc2I ...

2019-03-22 16:37:54 581

原创 Elasticsearch mapping到底是什么

概念: 自动或手动为index中的type建立的一种数据结构和相关配置,简称为mapping例子插入几条数据,让es自动为我们建立一个索引PUT /website/article/1{“post_date”: “2017-01-01”,“title”: “my first article”,“content”: “this is my first article in this we...

2019-03-22 15:46:54 1477

原创 Elasticsearch query string search语法以及_all metadata原理

1、query string基础语法GET /test_index/test_type/_search?q=test_field:testGET /test_index/test_type/_search?q=+test_field:testGET /test_index/test_type/_search?q=-test_field:test一个是掌握q=field:search ...

2019-03-22 14:51:20 188

原创 Elasticsearch分页搜索以及deep paging性能问题深度图解揭秘

size,from语法:GET /_search?size=10GET /_search?size=10&from=0GET /_search?size=10&from=20例子GET /test_index/test_type/_search“hits”: {“total”: 9,“max_score”: 1,我们假设将这9条数据分成3页,每一页是3条数据,...

2019-03-21 19:50:49 340

原创 Elasticsearch 多index&多type搜索模式解析以及搜索原理初步图解

1、multi-index和multi-type搜索模式:告诉你如何一次性搜索多个index和多个type下的数据/_search:所有索引,所有type下的所有数据都搜索出来/index1/_search:指定一个index,搜索其下所有type的数据/index1,index2/_search:同时搜索两个index下的数据/*1,*2/_search:按照通配符去匹配多个索引...

2019-03-21 12:22:41 1496

原创 搜索引擎_search结果深入解析 和search timeout机制

GET /_search{“took”: 6,“timed_out”: false,“_shards”: {“total”: 6,“successful”: 6,“failed”: 0},“hits”: {“total”: 10,“max_score”: 1,“hits”: [{“_index”: “.kibana”,“_type”: “config”,“_id”...

2019-03-21 11:19:28 424

原创 Elasticsearch _document查询内部原理

1、客户端发送请求到任意一个node,成为coordinate node2、coordinate node对document进行路由,将请求转发到对应的node,此时会使用round-robin随机轮询算法,在primary shard以及其所有replica中随机选择一个,让读请求负载均衡3、接收请求的node返回document给coordinate node4、coordinate n...

2019-03-19 21:24:09 119

原创 Elasticsearch 写一致性原理以及quorum机制深入剖析

(1)consistency,one(primary shard),all(all shard),quorum(default)我们在发送任何一个增删改操作的时候,比如说put /index/type/id,都可以带上一个consistency参数,指明我们想要的写一致性是什么?put /index/type/id?consistency=quorumone:要求我们这个写操作,只要有一个p...

2019-03-19 21:01:48 222

原创 剖析document数据路由原理和document的增删改原理

(1)document路由到shard上是什么意思?(2)路由算法:shard = hash(routing) % number_of_primary_shards举个例子,一个index有3个primary shard,P0,P1,P2每次增删改查一个document的时候,都会带过来一个routing number,默认就是这个document的_id(可能是手动指定,也可能是自动生成)...

2019-03-07 11:50:31 132

原创 bulk批量增删改

1、bulk语法POST /_bulk{ “delete”: { “_index”: “test_index”, “_type”: “test_type”, “_id”: “3” }}{ “create”: { “_index”: “test_index”, “_type”: “test_type”, “_id”: “12” }}{ “test_field”: “test12” }...

2019-03-07 10:44:46 510

原创 Elasticsearch mget批量查询api

1、批量查询的好处就是一条一条的查询,比如说要查询100条数据,那么就要发送100次网络请求,这个开销还是很大的如果进行批量查询的话,查询100条数据,就只要发送1次网络请求,网络请求的性能开销缩减100倍2、mget的语法(1)一条一条的查询GET /test_index/test_type/1GET /test_index/test_type/2(2)mget批量查询 如果查询...

2019-03-07 10:42:33 516

原创 Elasticsearch partial update 实现原理

1、什么是partial update?PUT /index/type/id,创建文档&替换文档,就是一样的语法一般对应到应用程序中,每次的执行流程基本是这样的:(1)应用程序先发起一个get请求,获取到document,展示到前台界面,供用户查看和修改(2)用户在前台界面修改数据,发送到后台(3)后台代码,会将用户修改的数据在内存中进行执行,然后封装好修改后的全量数据(4)然...

2019-03-06 09:58:25 197

原创 基于external version进行乐观锁并发控制

1.概念external versiones提供了一个feature,就是说,你可以不用它提供的内部_version版本号来进行并发控制,可以基于你自己维护的一个版本号来进行并发控制。举个列子,加入你的数据在mysql里也有一份,然后你的应用系统本身就维护了一个版本号,无论是什么自己生成的,程序控制的。这个时候,你进行乐观锁并发控制的时候,可能并不是想要用es内部的_version来进行控制,...

2019-03-06 08:52:18 120

原创 Elasticsearch内部如何基于_version进行乐观锁并发控制

(1)_version元数据PUT /test_index/test_type/6{“test_field”: “test test”}{“_index”: “test_index”,“_type”: “test_type”,“_id”: “6”,“_version”: 1,“result”: “created”,“_shards”: {“total”: 2,“succe...

2019-03-05 20:58:08 182

原创 document的全量替换,强制创建以及lazy机制

1、document的全量替换(1)语法与创建文档是一样的,如果document id不存在,那么就是创建;如果document id已经存在,那么就是全量替换操作,替换document的json串内容(2)document是不可变的,如果要修改document的内容,第一种方式就是全量替换,直接对document重新建立索引,替换里面所有的内容(3)es会将老的document标记为d...

2019-03-05 17:29:29 164

原创 document的_source元数据以及定制返回结果的解析

1、_source元数据put /test_index/test_type/1{“test_field1”: “test field1”,“test_field2”: “test field2”}get /test_index/test_type/1{“_index”: “test_index”,“_type”: “test_type”,“_id”: “1”,“_vers...

2019-03-05 17:07:43 178

原创 Elasticsearch document id的手动创建和自动创建

1、手动指定document id(1)根据应用情况来说,是否满足手动指定document id的前提:一般来说,是从某些其他的系统中,导入一些数据到es时,会采取这种方式,就是使用系统中已有数据的唯一标识,作为es中document的id。举个例子,比如说,我们现在在开发一个电商网站,做搜索功能,或者是OA系统,做员工检索功能。这个时候,数据首先会在网站系统或者IT系统内部的数据库中,会先有...

2019-03-05 16:43:32 3079

原创 Elasticsearch document的核心元数据以及剖析index创建反例

1、_index元数据2、_type元数据3、_id元数据{“_index”: “test_index”,“_type”: “test_type”,“_id”: “1”,“_version”: 1,“found”: true,“_source”: {“test_content”: “test test”}}1、_index元数据(1)代表一个document存放在哪个...

2019-03-05 16:23:29 140

原创 Elasticsearch容错机制 mastedr选举,replica容错,数据恢复

(1)9 shard,3 node(2)master node宕机,自动master选举,red(3)replica容错:新master将replica提升为primary shard,yellow(4)重启宕机node,master copy replica到该node,使用原有的shard并同步宕机后的修改,green...

2019-03-05 15:59:17 128

原创 Elasticsearch 横向扩容过程,如何超出扩容极限,以及如何提升容错性

(1)primary&replica自动负载均衡,6个shard,3 primary,3 replica(2)每个node有更少的shard,IO/CPU/Memory资源给每个shard分配更多,每个shard性能更好(3)扩容的极限,6个shard(3 primary,3 replica),最多扩容到6台机器,每个shard可以占用单台服务器的所有资源,性能最好(4)超出扩容极限...

2019-03-05 15:40:22 502

原创 剖析Elasticsearch的分布式架构

1、Elasticsearch对复杂分布式机制的透明隐藏特性Elasticsearch是一套分布式的系统,分布式是为了应对大数据量隐藏了复杂的分布式机制分片机制(我们之前随随便便就将一些document插入到es集群中去了,我们有没有care过数据怎么进行分片的,数据到哪个shard中去)cluster discovery(集群发现机制,我们之前在做那个集群status从yellow转g...

2019-03-05 15:39:05 144

原创 Elasticsearch基本概念

elasticsearch,基于lucene,隐藏复杂性,提供简单易用的restful api接口、java api接口(还有其他语言的api接口)(1)分布式的文档存储引擎(2)分布式的搜索引擎和分析引擎(3)分布式,支持PB级数据开箱即用,优秀的默认参数,不需要任何额外设置,完全开源2、elasticsearch的核心概念(1)Near Realtime(NRT):近实时,两个意思...

2019-03-05 12:23:52 128

原创 Elasticsearch安装

这里写自定义目录标题1、安装JDK,至少1.8.0_73以上版本,java -version2、下载和解压缩Elasticsearch安装包,目录结构3、启动Elasticsearch:bin\elasticsearch.bat,es本身特点之一就是开箱即用,如果是中小型应用,数据量少,操作不是很复杂,直接启动就可以用了4、检查ES是否启动成功:http://localhost:9200...

2019-03-05 12:19:45 152

jar.tar.gz

flume1.8 同步日志到hdfs需要的jar ,经过自己亲测可以使用。

2019-10-22

各种情况手机号清洗udf函数(hive impala)

历史数据原因诸多格式的手机号码,需要清洗出要想的格式,各种正则,还有处理这些问题的思路,还有详细使用文档。

2018-12-06

hadoop2.7.2 win10编译下的

win10下编译的hadoop2.7.2。自带的本地库都不缺,适合自己的电脑。。如有问题也可以看看我的博客,也有遇到的坑。

2018-06-16

Linux rpm格式MySQL5.6包及安装文档

Linux rpm格式 服务端和客户端 MySQL5.6包及安装文档。自己看很多有包无安装无文档,有文档无包。查了很多资料和踩了坑总结了一个详细文档。一个一分,希望对大家有帮助

2018-06-01

程序员送浪漫表白的自动刷新js

程序员表白的自动刷新pc端js。自己再修改成自己的姓名,她的姓名,相识日期。哄女友,表白,烘托氛围。有些女生还是挺感动的,但除了前端啊,会觉得很low的

2018-04-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除