自定义博客皮肤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的博客

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

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

原创 hive Cannot obtain block length for LocatedBlock 报错定位

1.背景:昨天运维同事生产升级了MySQL,跑的定时任务出错。2.查看job发现规律 所有的查询都跑完,但插入不进去数据。3.查看日志mr都100%但插入的都被kill掉了,最后有个映射错误啥的,错误不明显。4,在HUE上测试的确是查可查,但插入不了,页面报错这个。很玄乎没啥好定位的,但确认是有错,且是插入错误。5,截图联系运维人员一起排查。运维人员进入集群后看server2日志看...

2019-11-12 21:04:05 490

原创 flume的配置详解

1.flume版本是1.8关于flume的各个source channel sink选型 注意看看官网http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.htmlsource sink 选型。看你是T+1还是实时,是监控目录还是tail -F 文件。具体优缺点看这篇博客https://blog.csdn.net/u0...

2019-11-06 14:05:14 287

原创 spark常见的RDD

RDD定义弹性分布式数据集。 是spark为简化用户的使用,对所有的底层数据进行的抽象,以面向对象的方式提供了RDD很多的方法,通过这些方法来对RDD进行计算和输出。RDD是Spark的基石,所有的上层模块全部都是由RDD来实现。RDD的特性a)不可变, 对于所有RDD的操作都将产生一个新的RDD。b)可分区, RDD是通过将数据进行分区保存的。c)弹性:存储的弹性:内存与...

2019-08-29 23:35:00 643

原创 spark四种运行模式

spark的核心组件1.1DriverSpark 驱动器节点,用于执行 Spark 任务中的 main 方法,负责实际代码的执行工作。Driver 在 Spark 作业执行时主要负责:1.1.1) 将用户查询转化为任务;1.1.2)在 Executor 之间调度任务;1.1.3)跟踪 Executor 的执行情况;1.1.4)通过 UI 展示查询运行情况;1.2Executor...

2019-08-28 21:11:19 2975

原创 scala中偏函数和柯里化的区别

1.概念:偏函数:就是固定部分参数,生成另外一个参数更少的方法柯里化:把一个多参数的方法,改造成可以接受单一参数的方法,并返回接受剩余参数的新函数。区别:柯里化是可以将n个参数的方法拆成n次调用;偏函数则是将n个参数的方法拆成n-x个参数调用和x参数的方法。可以理解成偏函数演变成柯里化的一种不完全形式。例如参照:http://www.caotama.com/91202.html...

2019-08-25 07:28:46 558

原创 并发编程模型AKKA

1.AKKA简介AKKA是JAVA虚拟机JVM平台上构建高并发,分布式和容错应用的工具包。也可以理解成scala语言编写的并发框架。这个应用在spark和flink集群中master和worker通信就是应用这个框架,因此应用还是比较广泛和重要的。2.AKKA的作用:方便开发人员写出高效稳定的并发框架,不再过多的考虑线程,锁,网络通讯和资源竞争等细节。AKKAActor 模型用于解决什么问...

2019-08-24 21:56:53 589

转载 hive利器 宏macro的详解

声明:本帖子不是我自己原创,都是为了学习和了解宏,照搬和参考下面大佬的,做个一个综合的。向几位大佬致敬。建议看原贴,链接在最下面。1.macro初步了解宏可以看做是一个简短的函数,或者是对一个表达式取别名,同时可以将这个表达式中的一些值做成变量调用时传入,比较适合于做分析时为一些临时需要用到很多次的表达式操作封装一下取个简短点的别名来调用。宏只在当前会话有效,当退出hive控制台再进入时上次...

2019-07-24 15:31:43 2034

原创 hive去重问题的几种方式

在做维表时,很重要一点是要去重。那么去重有那些方式呢?1.distinct2.group by前面两种关系型的也常用,我就不说了。3.row_numberinsert overwrite table dw_dw.dw_dim_addressselectrow_number() over() as pk_address_code, t2.province_name,t2.city_...

2019-07-24 10:38:53 3102

原创 hive中几种唯一主键的选择和优劣比较

hive表是没有主键的,但在建表时最好加一个主键,方便查询。联合主键另说,其实也就可一利用联合主键来。1.uuid2.row_number()例子:insert into tbl_dimselect row_number() over (order by tbl_stg.id) + t2.sk_max, tbl_stg.*from tbl_stg join (select coale...

2019-07-23 16:40:19 20649 2

原创 rank,dense_rank,row_number,ntile区别和用法。

背景,忙完了。终于不用再赶了,自己在做项目中遇到的和当时迷惑的某些点,记录了一下,现在来做一个总结。RANK() 排序相同时会重复,总数不会变。DENSE_RANK()排序相同时会重复,总数会减少。 (dense:稠密的意思)1建表create table product_sell (big_class string,small_class string,money double)...

2019-07-23 15:36:08 524

原创 hive数据新旧平台迁移

背景:年前就已经规划好了,今年要将所有的数据接入一个大的平台,新平台搭建好,将旧平台的数据迁移过去即可。此时轮到本小组将自己的旧平台数据迁移到新平台中。注:旧平台5.12,新平台6.1.1。自己遇到的问题并解决。1.脚本中文传参不行,会出现乱码,这个其实没根本解决。最后是将这些品类 自定义标准码 利用数字或英文来代替,在脚本中做一个if判断,变量接收传进入的。2.由于新平台权限管制很严。有些...

2019-04-22 17:54:38 758

原创 hive 同步数据到 Elasticsearch

add jar /var/lib/hadoop-hdfs/elasticsearch-hadoop-hive-5.2.1.jar;#创建hive_es 表CREATE EXTERNAL TABLE uup.t_es_user( useraction array<struct<id:string,pay_type:string,total:double,channel_src:...

2019-04-09 19:22:44 1284

转载 Elasticsearch document写入原理及数据恢复

1)数据写入buffer(2)commit point(3)buffer中的数据写入新的index segment(4)等待在os cache中的index segment被fsync强制刷到磁盘上(5)新的index sgement被打开,供search使用(6)buffer被清空每次commit point时,会有一个.del文件,标记了哪些segment中的哪些document...

2019-04-03 14:30:41 330

原创 Elasticsearch 基于scoll+bulk+索引别名实现零停机重建索引

1、重建索引一个field的设置是不能被修改的,如果要修改一个Field,那么应该重新按照新的mapping,建立一个index,然后将数据批量查询出来,重新用bulk api写入index中批量查询的时候,建议采用scroll api,并且采用多线程并发的方式来reindex数据,每次scoll就查询指定日期的一段数据,交给一个线程即可(1)一开始,依靠dynamic mapping,插入...

2019-04-03 12:17:36 227

原创 Elasticsearch 自定义dynamic mapping

1、定制dynamic策略true:遇到陌生字段,就进行dynamic mappingfalse:遇到陌生字段,就忽略strict:遇到陌生字段,就报错例子:PUT /my_index{“mappings”: {“my_type”: {“dynamic”: “strict”,“properties”: {“title”: {“type”: “text”},“addres...

2019-04-03 10:55:15 296

原创 Elasticsearch修改分词器以及自定义分词器

1、默认的分词器standardstandard tokenizer:以单词边界进行切分standard token filter:什么都不做lowercase token filter:将所有字母转换为小写stop token filer(默认被禁用):移除停用词,比如a the it等等2、修改分词器的设置启用english停用词token filterPUT /my_inde...

2019-04-02 15:42:24 8781

原创 Elasticsearch 手动创建、修改以及删除索引

1、为什么我们要手动创建索引?某些字段如姓名,邮箱等不需要分词,不能直接自动创建2、创建索引创建索引的语法PUT /my_index{“settings”: { … any settings … },“mappings”: {“type_one”: { … any mappings … },“type_two”: { … any mappings … },…}}创建索引的...

2019-04-02 14:08:01 3561

原创 Elasticsearch _filter与_query区别对比

1、filter与query示例PUT /company/employee/2{“address”: {“country”: “china”,“province”: “jiangsu”,“city”: “nanjing”},“name”: “tom”,“age”: 30,“join_date”: “2016-01-01”}PUT /company/employee/3{...

2019-04-01 08:59:17 410

原创 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 1474

原创 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 338

原创 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 1492

原创 搜索引擎_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 423

原创 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 118

原创 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 504

原创 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,创建文档&amp;替换文档,就是一样的语法一般对应到应用程序中,每次的执行流程基本是这样的:(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 180

原创 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 163

原创 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 176

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

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

2019-03-05 16:43:32 3065

原创 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 138

原创 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&amp;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 126

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关注的人

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