自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 问答 (4)
  • 收藏
  • 关注

原创 Flink容错与状态一致性保证(文末有抽奖福利)

CheckPoint机制为了进行容错,我们在进行Flink的处理的时候,需要进行容错管理,难免我们的应用会发生故障的。而Flink提供了这样的一种容错机制CheckPoint,它能够保证Flink内部的一致性,实现内部Exact Once语义。首先看看什么是CheckPoint机制它是受Chandy-Lamport算法的启发,形成的一种轻量级的分布式快照,它的意思是每个操作(具体到是每一个并...

2020-03-06 11:32:18 32800

原创 RoaringBitMap在ClickHouse和Spark之间的实践-解决数据仓库预计算多维分析问题

​前面在中说了一下Spark计算在多维分析场景中的弊端,多维度分析会导致数据量指数级膨胀,搭配上去重计算字段越多,膨胀倍数也是线性增长,通过BitMap这个案例也更加让我们明白了,什么是数据倾斜,从根本来讲,并不仅仅是数据量的问题,而是倾斜Task在进行数据IO和数据计算的时候耗费过长时间,我理解为下面三种情况。

2022-11-11 17:30:19 1781 3

原创 Spark多维分析去重计数场景优化案例【BitMap精确去重的应用与踩坑】

场景前几天遇到一个任务,从前也没太注意过这个任务,但是经常破9点了,执行时长正常也就2个小时。看逻辑并不复杂,基本是几段SQL的JOIN操作,其中一个最耗时间的就是要根据底表数据Lateral view explode(array(字段, ‘all’)),一共lateral了4个字段,相当于数据量要扩大16倍。并且可怕的场景,lateral view之后还对11个字段进行了去重。select a22 as a, b22 as b, c22 as c, d22 as

2022-04-17 12:34:31 3939

原创 【Flink】实时归因场景踩坑

背景前几天思考了一个问题,在很多业务场景下,需要关注流量的来源或是某个业务哪个入口的流量最大,带来的效益最多,那么就涉及到流量的归因了。比如说,我是一个bilibili up主,那么我想知道我的某个视频到底是首页推荐的流量比较多,还是用户搜索带来的比较多。我觉得得分为两种情况应用埋点质量非常差的情况下,那么在一些APP或者H5发展之初,是不会太去注重埋点的质量,当流量密码时代到来了,才发现这是一个风口,埋点标准化改造就是一个必不可少的环节。那么在改造之前,就只能靠数据自己去归因,即按照时间窗口,根据用

2022-04-09 12:22:08 3418 1

原创 关于hive on spark的distribute by和group by使用以及小文件合并问题

问题导言最近在使用hive时,发现一些任务的因为使用mapreduce的缘故,跑的太慢了,才几十个G的数据就经常跑一个多小时,于是有了切换spark的想法。但是刚刚切换了spark,第二天发现跑出来的数据文件数大大增加,而且每个文件都非常小,导致下游spark任务为了每个小文件都启动一个task,申请资源对于spark来说是非常消耗资源的,任务又大大延迟了。查了下关于spark合并小文件,目前有几个参数会提供参考。输入端set mapred.max.split.size=256000000;设

2021-01-25 23:37:28 3477

原创 算法基础-十大排序算法及其优化(文末有抽奖福利哦)

算法基础-十大排序算法及其优化算法基础-十大排序算法及其优化[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kw1LA5Q4-1607527572080)(/uploads/upload_a0c557489af8d3a0355d51f4e5542e9c.png)]冒泡排序动图演示[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cwEmwSUV-1607527572082)(/uploads/upload_684311d14d127a8

2020-12-09 23:29:09 234

原创 Hive系列-巧用开窗函数解决分组Top-K问题

最近遇到一个需求,要将数据分组,然后取每组最新的数据,刚开始各种join操作,都很繁杂,对于大数据量来说,实为不妥,计算总是超过了300多秒。于是干脆直接用了开窗select t.field1,field2,field3,field4 from( select field1,field2,field3,field4,rank() over(partition by field1,field2 order by create_time desc) as ranks

2020-05-26 14:59:20 606

原创 分布式系列-从无到有实现一个RPC框架

Rpc框架深入实现前期提要Demo1:简易版RPC框架-无注册中心Demo1模型Demo1:服务接口Demo1:服务接口实现Demo1:RpcRequestDemo1:RpcServer和ProcessHandlerDemo1:RpcClientProxy客户端动态代理生成代理对象Demo1:TcpTransportDemo1测试:服务器发布服务Demo1测试:客户端发送数据前期提要RPC即远...

2020-05-04 11:40:04 395

原创 设计模式怎么玩-代理模式

先来看看几个场景,比如刷网课,我们都要自己刷对吧,一节节看,还有单元测试啥的,浪费时间又学不到自己感兴趣的东西,或者玩游戏,需要升级,但是又常常充满罪恶感,可惜自己没有好好学习。那我们用代码表示一下就是这样子。一个抽象主题接口,用来定义我们要做的事情的一个抽象接口:package com.ongbo.ProxyPattern;/** * 抽象主题接口角色 * */public int...

2020-05-02 21:57:01 259

原创 Hive系列-文件存储格式

TextFile默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理。源文件可以直接通过hadoop fs -cat 查看Sequence一种Hadoop API提供的二进制文件,使用方便、可分割、可压缩等特点。SEQUENCEFILE将数据以<key,value>的形式序列化到文件中。RC比如select a from tablelt...

2020-04-30 11:43:20 200

原创 Hive系列-in与left semi join

select s_id from score where c_id in(select c_id from score where s_id='01')group by s_id;select b.s_idfrom score b join score c on b.c_id=c.c_id and c.s_id='01' group by b.s_id;select s_idfr...

2020-04-28 22:03:25 518 1

原创 Hadoop系列 hadoop一直处于Safe Mode

之前在docker重新搭建了hadoop,过了一段时间重新使用的时候,发现高可用的两个NameNode一直都是StandBy,然后强制一个hadoop dfsadmin -safemode leave退出Safe Mode。结果呢,发现竟然退出不了。于是查看namenode日志,发现如下错误20/04/27 03:25:12 WARN namenode.NameNodeResourceCheck...

2020-04-27 11:49:30 573

原创 Flink SQL系列-在流数据Table中去执行Join

先来看看对比一下以前的join,如果对于普通的关系型数据库,我们很容易就想到join应该怎么做的,先来两个场景。场景一加入要计算某天对于第7天的留存率,那么对于传统关系型数据库来说,我们只需要计算出留存用户,然后和当天的用户活跃数去做个比值就OK了。insert into retention_userselect a.id,b.idfrom a left join b on a.id =...

2020-04-24 14:11:54 2739

原创 Flink SQL系列 关于Stream中的Dynamic Tables

我们以前使用的关系型数据库,比如mysql这种,都是统一个静态表,供我们查询,不管我们有多少数据,最好低于百万级别,都可以对某个表的所有数据进行统一操作,但是这仅仅就是一个静态表而已,也就是说,你的一次操作就会让数据编程另一种状态,比如你在中午表的状态是A状态,到了晚上你修改了一条数据,那么现在就变成了B状态了。我们在某个时间点去看,因为有这么大的时间跨度,就是一种静态表,而且它里面的数据涵盖的时...

2020-04-23 23:55:42 520

原创 Flink SQL系列:Table API使用

下面有两种API,分别是Apache社区的原生Flink API,还有一种是经过阿里优化过的一种APi,叫做Blink,两种API对于Batch和Stream有一些区别1:Blink对于“批”表会当做“流”表处理,所以“批”表和Dataset之间是不可以转换的,而DataSet回当做DataStream程序去处理,而DataStream和“流”表之间可以相互转换的。package flin...

2020-04-23 21:47:36 1775

原创 2020春招笔试+面经(陆续更新)

腾讯这个岗位没有想要的,就胡乱投了个后台开发。其实我根本不会后台开发,后台开发有好久没搞了。投了差不多一个星期,就约了面试,面试官挺好的,聊东西也聊了很久,这次没出算法题。1:介绍自己2:谈谈你的项目:讲了差不多半个小时为什么用到Hbase你怎么处理你的数据的,怎么保证一致性布隆过滤器uv pv计算方式3:flink的内存管理4:kafka的架构,生产消费原理,怎么保证不重...

2020-04-13 20:19:04 263

原创 Hive:Hive的开窗函数

不说了,直接使用别人的表来做一个测试表吧-- 建表create table student_scores(id int,studentId int,language int,math int,english int,classId string,departmentId string);-- 写入数据insert into table student_scores valu...

2020-04-07 17:06:44 251

原创 简易数据仓库搭建

日志服务器FlumeKafkaFlume->HiveFlink实时数仓

2020-04-05 18:08:59 914

原创 排序算法-归并排序及其优化

普通版本public class MergeSortTopDown extends BaseSort{ private static Comparable[] backarray; //自顶向下递归归并排序 public static <K extends Comparable<K>> void sortTopDown(K[] elems) { backar...

2020-04-04 22:59:25 120

原创 Hive on Tez

DownlondTez解压安装tar -zxvf apache-tez-0.9.1-bin.tar.gzmv apache-tez-0.9.1-bin/ tez-0.9.1我的文件目录:tez:/usr/local/tez-0.9.1hive: /usr/local/hive上传tez到集群hadoop fs -mkdir /tezhadoop fs -put tez-0....

2020-04-03 16:11:02 181

原创 Hadoop压缩配置

下载LZO支持包解压maven编译将编译好后的hadoop-lzo-0.4.20.jar 放入hadoop-2.7.2/share/hadoop/common/同步到其他主机添加配置core-site.xml<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="con...

2020-04-03 15:22:00 316

原创 CurrentHashMap源码分析

基础概念//最大容量 private static final int MAXIMUM_CAPACITY = 1 << 30; //默认容量 private static final int DEFAULT_CAPACITY = 16; //最大数组大小 static final int MAX_ARRAY_SIZE = Integer.MAX...

2020-04-02 20:59:08 753 1

原创 Docker本地搭建Hadoop高可用,Hbase,Spark,Flink,Zookeeper集群

前期准备#镜像拉取docker pull centos7#创建一个容器,作为基础容器,后期制作为镜像docker run -it --name hadoopimages centos /bin/bash#将scala和jdk的包拷贝到容器里docker cp scala-2.11.12.tgz hadoopimages:/docker cp jdk-8u201-linux-x64.t...

2020-04-02 00:16:32 3989 3

原创 排序算法——堆排序

package Sortpre;import ByteDance.sort;public class HeapSort extends BaseSort{ public static void main(String[] args) { Integer[] aIntegers= RandomArray.getRandomBoxedIntArray(0,1000,50); sor...

2020-03-31 22:20:16 119 2

原创 Kafka压力测试

Producer生产情况Consumer消费消费好像不是很好

2020-03-31 12:40:58 299

原创 排序算法汇总

从今天开始就把十大经典排序算法好好理一理

2020-03-30 20:40:58 69

原创 排序算法-BubbleSort及其优化

package Sortpre;import ByteDance.sort;public class Bubble_Sort extends BaseSort { public static void main(String[] args) { } /** 普通sort*/ public static <K extends Comparable<K>&g...

2020-03-30 20:40:20 142

原创 Flink消费Kafka数据

package flinkjava.Connecter.Kafka;import org.apache.kafka.clients.producer.ProducerConfig;import org.apache.kafka.clients.producer.ProducerRecord;import org.apache.kafka.common.serialization.Strin...

2020-03-28 17:40:40 1143

原创 给定一个序列,输出无重复,且按字典序的全排列——字典序算法

题目描述题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。重排序从右到左找到正序对从右到左找到第一个比正序对第一个元素大的元素交换那两个元素然后将正序对第一个元素...

2020-03-27 12:31:33 1186

原创 Java多线程:它的繁杂“锁”事

private Node addWaiter(Node mode) {//创建关于当前获取同步状态线程的Node节点 Node node = new Node(Thread.currentThread(), mode); // Try the fast path of enq; backup to full enq on failure //快速尝...

2020-03-19 17:19:58 135

原创 Java多线程:线程池

线程池

2020-03-18 16:59:29 91

原创 Java多线程-线程间的通信

package Thread;import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.TimeUnit;public class waitNotify { //标志 static boolean flag = true; //被锁住的对象 static Object ...

2020-03-18 15:55:42 88

原创 Java多线程:Volatile关键字

看几个示例public class Run { public static void main(String[] args) { RunThread thread = new RunThread(); thread.start(); try { Thread.sleep(1000); } catch (InterruptedException e) { // TOD...

2020-03-16 16:19:41 79

原创 今天来记录一次使用Sqoop定时增量导入数据到HDFS

LInux自带定时器Crontab定时器crontab参数:  -u:帮助其他用户建立或移除工作排程  -l:查阅crontab的工作内容  -r:移除所有的crontab的工作内容  -e:编辑crontab文件每项工作有六个字段:  *  *  *  *  *  *  分钟  小时  日期  月份  周  指令  0-59  0-23  1-31  1-12  0...

2020-03-13 00:11:18 498

原创 Flume采集日志到HDFS出现大量小文件

一边是配置,一边在执行。如此多的小文件。rollSize默认值:1024,当临时文件达到该大小(单位:bytes)时,滚动成目标文件。如果设置成0,则表示不根据临时文件大小来滚动文件。rollCount默认值:10,当events数据达到该数量时候,将临时文件滚动成目标文件,如果设置成0,则表示不根据events数据来滚动文件。round默认值:false,是否启用时间上的”舍...

2020-03-11 22:03:31 582

原创 java和flink实现kmeans,并实现‘“音吧”APP的人群推广

java实现K-Means基本节点类 public Point(int id, float[] localArray) { this.id = id; this.localArray = localArray; } public Point(float[] localArray) { this.id = -1; //表示...

2020-03-08 22:02:04 222

原创 基于java和Flink实现逻辑回归和“音吧”APP的性别预测

java实现逻辑回归基本矩阵类:Matrixpackage flinkjava.LR;import java.util.ArrayList;/** * 保存特征信息 * 主要保存特征矩阵 * */public class Matrix { /** * 分为两层ArrayList * 外面代表行 * 里面代表列 * */ pu...

2020-03-08 16:46:09 33451

原创 Hadoop集群入坑——突然看不到yarn的node了

Version Mismatch (Expected: 28, Received: 768 ) at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.readOpRegistered with ResourceManager as localhost:5006 with total resource of <memo...

2020-03-07 00:31:12 35296 2

原创 Flink:把状态State全都扒光,远走他乡(二):广播状态

受到

2020-03-05 16:51:29 32190

原创 Flink行走江湖Operators:底层API-Process Function

我们知道,Flink把API分成了好几层,每一层所能够看到的都各不相同。最底层的就是Process Function,它能够访问events访问状态State(容错,一致性,但是仅仅是在keyed流上)计时器,也仅仅在keyed流上。...

2020-03-04 17:40:56 32267

空空如也

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

TA关注的人

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