- 博客(28)
- 收藏
- 关注
原创 hbase rowkey设计
hbase存储是按照rowkey排序的所以如果经常需要scan,而且没有热点,那么不需要打散,如果有一批相近的rowkey是热点,那么就需要打散,通过加既然前缀,或者倒过来,打散是要有规则的,否则就没法查了,可以一批相近的rowkey还是需要放一起,那么就需要根据某个子串来去hash,而不是所有的比如算来是uid+timestamp,那么可以只根据uid来打扰,同样uid的key还能保证在一起,可以scan,同时做到了不同的uid是完全打散的,避免了一批相近uid都是热点的话,导致某个region
2020-05-20 08:12:25
251
转载 四层和七层负载均衡的区别
1、OSI七层模型属于理论模型,TCP4层模型属于实际应用的工业标准模型;2、osi划分的层次比tcp模型更多;3、从层次功能内上分析:1前者应用层、表示层和会话层的功能容对应tcp模型应用层功能;2前者传输层对应tcp模型传输层的功能;3前者网络层对应tcp模型网际层的功能4前者数据链路层和物理层对应tcp模型网络接口层功能。 (一) 简单理解四层和七层负载均衡: ①所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MA...
2020-05-15 20:21:22
485
原创 maven shade插件来解决 fatjar中的包和执行环境里的包冲突问题
https://medium.com/@minyodev/relocating-classes-using-apache-maven-shade-plugin-6957a1a8666d比如fatjar中,需要用一个 A版本的包foo-pkg, 在环境里需要用到B版本的包foo-pkg光在maven冲突里排除掉是没有用需要使用 shade插件的重定向功能1. 首先还是要先排除包冲突...
2020-03-22 16:53:04
1544
原创 web服务健康检查的间隔问题
不能太长也不能太端太长了,可能web服务本身挂了,也不知道,还把流量打过去太短了,如果名字服务本身和web服务之间 出现网络抖动,那么就会误任务web服务有问题,导致流量打不到 web服务上,导致web服务出现 网络抖动...
2020-02-25 12:39:22
258
原创 udf udaf udtf
udf 输入一,输出一 不支持两次输入处理之间,传递状态udaf 输入多,输出一 初始化方法,map方法,reduce方法,最终terminate方法,决定输出的数据长啥样udtf 输入一,输出多,或者输入多,输出多 有init方法,process方法,close方法 init方法是初始化一些全局的 可以...
2020-02-24 19:57:51
347
转载 在Word中如何设置分级标题?
https://jingyan.baidu.com/article/afd8f4decf352634e286e9ca.html空白文档,选择这个,就可以自动生成分级的标题了,在目录里也能看到,非常简单
2020-02-14 18:06:53
1777
原创 https和加密方法和hash加盐
参考:https://www.sohu.com/a/294450321_1001341381. 确保内容不被窃听(无法被揭密): 先用对方公钥加密A->B发送内容,确保内容不被 黑客 拦截并解密内容, A要用用B的非对称公钥 来对对称加密的密钥进行加密, B用自己的非对称私钥来解开 对称密钥, 然后再用对称密钥 对加密的内容进行解密发送密文的一方使用对方的公钥进...
2020-02-12 16:41:31
797
转载 解决IntelliJ Idea上执行打包时自动下载maven-metadata文件而导致卡住很久的问题!
参考:https://blog.youkuaiyun.com/weixin_42486373/article/details/86583361
2020-01-12 23:45:34
433
转载 解决IntelliJ Idea上执行打包时自动下载maven-metadata文件而导致卡住很久的问题!
参考:https://blog.youkuaiyun.com/weixin_42486373/article/details/86583361
2020-01-12 20:56:54
1169
原创 宽表和数仓dws层
宽表意思是 把很多的 维度、指标都合到一个表里,需要冗余,为了后续数据统计方便 宽表由于把不同的内容都放在同一张表存储,宽表已经不符合三范式的模型设计规范,随之带来的主要坏处就是数据的大量冗余,与之相对应的好处就是查询性能的提高与便捷。dws 就是主题宽表 不一定就是只一张表 dws就是 数据较高程度的聚合,不同类型的内容要聚合到一起,冗...
2019-09-23 14:07:41
6397
1
原创 大数据驱动
今日头条,先把某些新文章,通过给5万实验用户进行下发,看用户反馈,如果点赞分享比较多,就可以判定是个好文章,就大规模推广,如果没什么反应,那么就推荐少了,所以,搜集用户对文章的反馈,非常重要,形成文章的画像!任何问题,都可以用大数据,人工智能来解决,来驱动大数据可以统计,对比分析,可以计算概率...
2019-09-22 23:37:51
405
原创 有哪些方式加速大数据查询速度
一般的大数据都是躺在磁盘上,一般是通过key的partition找到对应region,然后再找每个小分片文件,总之会比较慢。1. 一般会在内存中有一些数据,然后还有一些是缓存,然后再是查小文件,而且小文件是有序的2. 对于列式存储,分不同的rowkey进行分裂,不同的列簇也是存在不同文件的,这样能做到参考hbase的查询方式:https://www.jianshu.com/p/52a6...
2019-08-29 20:57:24
857
原创 大数据查询的分类
快速查询:就是针对大数据的快速返回查询结果交互式查询:就是在一个终端,提交查询条件,然后等待结果展示在终端上, 这个过程可以快,可以慢 比如hive的就比较慢, presto、druid等就比较快oltp:在线的分析查询 单次查询返回数据量小,但是经常会涉及服务器端简单的聚合操作,要求查询响应速度快,一般应用于在线处理;olap:在线的事务处理,一般是交互式查询, ...
2019-08-29 18:39:57
1298
原创 mapreduce二次排序
map和reduce之间交互过程里面有三个重要的概念:分区partition根据key中一个或几个字段,来判断,是要把这条数据发送到哪个reducer排序sort根据key中一个或几个字段,来判断,在map输出结果里数据的排序方式,和reduce归并排序的时候数据根据哪几个字段进行比较分组group在reducer阶段,根据哪几个字段,来将数据组合成 一个key对多个...
2019-08-29 15:50:35
164
原创 hive sql join算子的理解
join的本质就是 根据 左表left,右表right的key字段,进行关联,得到一个结果底层怎么做的呢?就是对 左表和右表 的数据 根据key,partition到一个reduce中然后左右表的相同key的数据,在一个reduce中,需要进行笛卡儿积所以,如果存在某个key数据倾斜比较严重,那么这个join是会出问题的这时候需要调整sql了,先增加一个额外的维度进行一次...
2019-08-29 15:45:35
284
原创 flink的window计算、watermark、allowedLateness、trigger
watermark其实是流式系统中,主要用于解决流式系统中数据乱序问题,方法是用于标记当前处理到什么水位的数据了,这意味着再早于这个水位的数据过来会被直接丢弃endtime早于watermark,那么对应的 聚合 中间状态 会被从内存中清楚!注意这里说的聚合 不仅仅指windows聚合,还包括group等聚合操作。那么在watermark之后的数据,都会触发对应的 聚合...
2019-08-29 15:08:05
1063
原创 流式处理的原理
接收流式输入通过通过各种转化,变成一个个消息(storm里是元组,包含多个字段)可以进行按照时间窗口、数量窗口的聚合可以按照消息里的某个或某几个字段作为key进行分组,group/partition一些比较高级的功能:中间状态的记录、结果持久化、消息处理结果反馈(ack机制)、处理语义(exact once、at least once、at most once)che...
2019-08-29 08:29:22
931
原创 数仓分层聚合的理解
统计本身就是从明细数据汇总出结果的过程。但是如果很多的统计任务都从明细数据直接得到结果,那么就会存在很多的重复计算尤其是明细数据一般会比较多,那么就会造成计算资源的浪费所以分层聚合的目的就是将一些公共的聚合提前做好后续的统计,只需要基于这个初步聚合的数据。聚合就是根据维度,关联这些维度在多个业务角度的统计指标,比如一个app用户,一天使用多个功能的统计数据,pv...
2019-08-16 08:16:59
1274
原创 hive表多层分区的作用
可以创建多层分区,而不仅仅只有个时间区有了多层分区,那么可以接收多个来源的sql往同一个表进行 insert overwrite,相互之间不影响
2019-08-08 17:28:54
1413
原创 hive sql里 涉及null的判断
select 1 where null != 1 没有返回select 1 where "" != 1 没有返回select 1 where 0 != 1 有返回select length(NULL) 返回NULL ,而不是0最好是把null coalesce成目标类型的某个默认值select 1 where COALESCE(null, 0) != 1...
2019-06-05 06:55:15
4472
原创 大数据工具
大数据工具:https://blog.youkuaiyun.com/duozhishidai/article/details/83537931Avro 这个Apache项目提供了数据序列化系统,拥有丰富的数据结构和紧凑格式。 模式用JSON来定义,它很容易与动态语言整合起来。Flume 可以从其他应用程序收集日志数据,然后将这些数据送入到Hadoop。 官方网站声称:“...
2019-05-05 23:54:09
274
转载 【转】为什么要在密码里加点“盐”
https://libuchao.com/2013/07/05/password-salt为什么要在密码里加点“盐”盐(Salt)在密码学中,是指通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为“加盐”。以上这句话是维基百科上对于 Salt 的定义,但是仅凭这句话还是很难理解什么叫 Salt,以及它究竟起到什么作用。第一代...
2019-04-28 11:15:16
136
转载 虚函数和纯虚函数的区别
<br /><br />虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数!<br />纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!<br />虚函数<br />引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。<br />class Cman<br />{<br />public:<br /> virtual void Eat(){……};<br /> void Move();<br />pri
2010-07-29 13:14:00
504
转载 C语言内存管理(林锐博士的文章,绝对经典)
<br />程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本章的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 7.1内存分配方式 <br />内存分配方式有三种: <br />(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 <br />(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在
2010-07-20 16:32:00
812
转载 查看window、Linux和Aix机CPU位数和操作系统版本
<br /><br />题记:今天看到一篇关于查看CPU和操作系统信息的文章,转过来和大家分享一下,O(∩_∩)O!<br />了解cpu架构 http://blog.youkuaiyun.com/wyzxg/archive/2009/12/17/5027738.aspx<br />前两天简单总结了cpu架构,今天总结下查看各种os系统的位数和cpu硬件支持的位数,因为这些我们在日常工作中要经常用到的,作为日常的一个备忘录,总结下可以加强自己的记忆,也可以让自己在总体上有个认识;每间隔一段时间就总结下,慢慢你会发现
2010-07-14 11:37:00
14223
原创 自己对函数接口的新认识
<br />之前写一些函数,并没有多少接口的概念在脑海中,最近在做一个项目,多个人负责不同的模块,差不多一个人维护一个类,之前一直没搞懂一件事情,就是我们写一个类到底是做什么用的,一直在用面向过程的理念把之理解为去实现一个模块的功能,后来,别人要调用我的接口,我有种感觉就是我写了这个函数并不是我来用的,最后确实给了别人去用,写完之后就不是我的了,从这一点上来说我算是对接口这一概念有了一定的新的认识,这也是和面向对象的理念分不开的。<br />我们写程序,大到一整个系统,小到一个模块,一个类,一个方法,其实最
2010-07-06 10:55:00
658
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人