自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 收藏
  • 关注

原创 SQL相关

设置一个flag,用户每进入一次,flag设为1,每退出一次,flag设为-1。计算每个视频类型下面播放量前10的视频id。a b 表示a关注b。求直播间最大在线人数。

2022-09-29 09:29:33 140 1

原创 Sqoop面试题

mapreduce,具体的说,是map任务。

2022-08-22 15:06:20 206

原创 Flume面试题

sink:输出到下游,sink是完全事务性的。3 ,增大 batchSize : 可以增大一次性批处理的 event 条数,适当调大这个参数,可以调高 source 搬运数据到 channel 的性能。(2kafka追求的是高吞吐,高负载,同一topic下可以有多个partition,由于是pull模式拉取数据,因此适合多个消费者的场景。2 ,使用 file channel 时,dataDirs 配置多个不同盘下的目录可以提高性能。1 ,memory :性能好,但是,如果发生意外,可能丢失数据。

2022-08-22 11:14:40 234

原创 开发经验介绍

去重指标的增量计算优化方案1 背景统计最近30天的uv(去重指标)select visitor_idfrom (select item_id ,count(distinct visitor_id) as ipv_uv_1d_001 from tbcdm.dwd_tb_log_obj_vst_di where ds <= '{bizdate}' and ds >= to_char(datea

2022-08-11 17:10:39 387

原创 草稿nkw问题

系统总会有一些坑,需要把这些坑填上,填坑的过程就是熟悉系统的过程。历史代码经过多次迭代总会导致复杂度高(分支、嵌套、循环很多),耦合严重,设计漏洞,性能隐患等,很难维护,这些就需要我们去重构了。抖音有一张流量表和一张交易表,分别是 table_a(mid, pv) 和 table_b(mid, gmv),如何将他们进行合并,数据倾斜如何处理。这块主要关注底层数据的模型,不仅仅要关注实体本身,更要关注实体间的数据流动,例如主从同步策略,数据迁移策略,以及不同数据模型的转换。客服反馈的常见问题有哪些?.....

2022-08-03 19:24:43 299

原创 数据仓库-数据治理

数据治理主要解决的问题,用通俗的话讲就是,我们有什么数据,数据对不对,为什么还没有跑出来。

2022-08-01 10:29:54 237

原创 数据质量监控

数据质量监控与保障:数据质量保障的学习,包括方法,数据测试,DQC配置,能发现数据问题,排查问题,解决问题,总结问题数据质量是数据开发里面非常重要的,错误的数据可能还会带来错误的决策。我们主要是监控数据的准确性、完成行、一致性、及时性。采取的措施是三步法:事前-事中-事后。事前主要通过自测,sqlscan,事中主要通过dqc进行监控,事后主要是处理分析,沉淀方法。准确性:数据信息是否存在存在错误或异常,是否符合业务预期,如号码位数是否正确,统计指标是否正常完整性:数据记录和信息是否完整,如数据记录缺失、字

2022-06-24 15:51:38 424

原创 离线性能优化

离线性能优化

2022-06-24 15:39:44 111

原创 项目面试题

为什么要做这个项目?是为了解决什么问题?项目的性质是什么?多少个人完成?你负责了什么工作?有什么亮点?难点?运用了哪些技术?有什么收获?ODS层采用什么压缩方式和存储格式?压缩采用Snappy,存储采用orc,压缩比是100g数据压缩完10g左右。DWD层做了哪些事? 数据清洗 空值去除 过滤核心字段无意义的数据,比如订单表中订单id为null,支付表中支付id为空 对手机号、身份证号等敏感数据脱敏 对业务数据传过来的表进行

2022-05-29 11:22:43 84

原创 Linux面试题

1.查看内存的指令free 内容:总内存、使用内存、剩余内存等

2022-05-29 10:13:11 37

原创 Flink面试题

1.WatermarkAssignerWithPeriodicWatermarks当flink基于eventtime的时间窗口处理数据时,必须确定所有该时间窗口内的数据全都进入之后,才会开始处理数据,由于数据可能是乱序的,在watermark里面有个时间戳,flink会使用watermark标记所有小于该时间戳的消息都已流入,当操作符处理到WaterMark时,它对所有小于该WaterMark时间戳的时间窗口的数据进行处理并发送到下一个操作符节点,然后也将WaterMark发送到下一个操作符节点

2022-05-29 10:11:32 263

原创 ZooKeeper面试题

1.zookeeper选举机制1.初始化时的选举优先看zxid,zxid相同的情况下看myid集群启动时,1号zxid=0,myid=1,2号zxid=0,myid=2,3号zxid=0,myid=31号启动,先投给自己一票2号启动,zxid与1号相同,myid比1号大,因此1号投给2号,2号也投给2号,超过半数,因此2号成为leader,1号成为follower3号启动,已经有了Leader,3号成为follower当选举结束后,更新状态,Leader更新为Leading,fo

2022-05-29 10:10:13 39

原创 Kafka面试题

1.kafka为什么快1.数据压缩,减少网络IO,压缩格式包括Gzip、Snappy2.批量传输,先将消息缓存在内存中,然后达到某个条件(比如到多少条数据,或者到几秒钟)就flush一次,flush到磁盘上3.顺序读写,避免随机寻址,写入时是单个partition末尾添加4.利用操作系统的page cache优化读写5.零拷贝技术。在producer和consumer两个方面都使用了零拷贝技术。网络数据持久化到磁盘 (Producer 到 Broker)。(使用了mmap)磁盘文

2022-05-29 10:08:32 176

原创 MapReduce面试题

1. MR是怎么确定MapTask数量的如果不进行任何设置,默认的map个数是和blcok_size相关的。default_num = total_size / block_size;如果输入中有很多小文件,依然想减少map个数,则需要将小文件merger为大文件2. MapReduce流程(1)首先是对文件进行切片split,根据文件的大小和block的大小进行切片。默认block为128M(2)然后对切片后的数据解析问key-value。key为偏移量,value为具体的内容

2022-05-29 10:07:22 128

原创 Hadoop面试题

1.Hadoop高可用有2台机器,2个namenode,一个active,一个standby有一个守护进程journalnodes,会和2个nn进行通信,当activeNN对命名空间信息修改时,会持久化到editslog上,然后standbyNN观察editslog,并更新自己的信息,保持信息和activeNN同步。还有一个zookeeper failover controller,通过zookeeper failover controller里面的health monitor监控NN,如果ac

2022-05-29 10:06:32 39

原创 HDFS面试题

1.2nn作用帮助nn进行管理,nn主要存储元数据信息,当nn运行的时候,元数据信息是存在内存中的,也可以持久化到磁盘上。持久化到磁盘上有两个文件,一个是fsimage,一个是edits log。Fsimage是nn启动时的一个快照,edits log是nn启动后做的改动。只有当nn重启时,edits log才会合并到fsimage中,但是nn不会经常重启,因此edits log就会变得很大。此时2nn会将edits log中的信息更新到自己的fsimage中,然后将自己的fsimage复制给nn的

2022-05-29 10:05:49 49

原创 Yarn面试题

1.Yarn任务提交过程1.Client向rm提交程序,申请运行时需要的资源2.ResourceManager收到请求之后,调用ApplicationManager向NodeManager发送请求,申请一个资源(Container),并且要求Container启动ApplicationMaster.3.ApplicationMaster启动之后,首先注册自己到ResourceManager,然后为自己的Task申请Container,ResourceManager收到请求之后,会要求NodeMa

2022-05-29 10:05:03 201

原创 数据仓库面试题

1.Hive的执行过程?1)解析器parser:进来一个SQL字符串,将SQL解析,解析的结果是AST(抽象语法树见官网详细解释以及使用)AST本质还是字符串2)遍历AST Tree,抽象出查询的基本组成单元QueryBlock3)逻辑执行计划解析,遍历QueryBlock,翻译为执行操作树OperatorTree4)逻辑执行计划优化,将OperatorTree变换,合并不必要的ReduceSinkOperator,减少shuffle数据量5)物理执行计划解析,生成MapReduce任务

2022-05-29 10:04:11 638

原创 算法面试题

1. 内存受限的情况下,有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数:用mapreduce的思想,首先对数据进行哈希,将hash后的值按照范围划分到不同的机器上,这样每台机器就只处理一部分数据,然后统计每台机器上出现次数最多的前N个数据,然后将每台机器统计出来的结果进行汇总,再求出总的前N个数据。............

2022-05-29 10:01:50 43

原创 数据库面试题

1.数据库隔离等级1.脏读:事务A读取到了事务B未提交的数据2.不可重复读:两次查询结果不一致,因为两次查询中间有另外一个事务往里面更新了数据,不可重复读和脏读的区别:脏读读到的是一位未提交的数据,不可重复读读到的是前一个事务提交的数据,解决不可重复读就是多读几次,以最后一次为准,或者锁行3.幻读:幻读和不可重复读都是读取另外一个已经提交的事务,但是不可重复读一般是发生在update时,数据被修改,幻读发生在insert或者delete时,数据会多出来一条,解决幻读可以锁表隔离.

2022-05-29 09:59:58 49

原创 Java面试题

1.Hashmap和treemap的异同异:Hashmap中元素无序,通过hashcode查找,treemap中元素按照某一顺序排列 Hashmap基于hash表实现,treemap基于红黑树实现 Hashmap适用于map插入、删除、定位元素,treemap适用于按自然顺序遍历同:1.都是线程不安全的2.说说多态1.多态是同一个对象,在不同的时刻表现出来的不同状态2.前提:(1)有继承或者实现(2)有方法的重写(3)父类的引用指向子类对象3.多态特点:表现为.......

2022-05-29 09:54:16 359

原创 java Comparator接口自定义排序规则

如果是后-前,就是降序排序如果是前-后,就是升序排序 Arrays.sort(people, new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) { if (o1[0] != o2[0]){ //后-前,降序 retu

2022-03-28 11:10:22 722

原创 动态规划-关于dp[i]含义的一点心得

关于dp[i]的含义,目前接触到的有两种:第一种:dp[i]表示以索引i结尾的最大值,这种情况包含的结果内必须是i是最后一个元素,包括下标i之前的最大连续子序列和为dp[i]。举例:leetcode53. 最大子数组和给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1.

2022-03-11 15:46:11 861

原创 leetcode二叉树103二叉树的锯齿形层序遍历

给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。示例 1:输入:root = [3,9,20,null,null,15,7]输出:[[3],[20,9],[15,7]]示例 2:输入:root = [1]输出:[[1]]示例 3:输入:root = []输出:[]注意点:关于顺序的问题1.removeFirst()永远是和addLast()搭配,removeLast()永远是和

2022-02-22 18:09:57 6856

原创 leetcode回溯五题

回溯模板:void backtracking(){if(终止条件) {收集结果return }for(集合的元素集,类似子节点的个数){处理结点递归函数;回溯操作(撤销处理结点12, 2撤销 ,13 撤销3, 14)}}何时要startindex?(在组...

2022-02-07 16:09:33 5535

原创 leetcode15. 三数之和

给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]思路:排序,一次遍历+双指针注意点:需要去重有三个点需要去重...

2022-02-04 17:37:25 72

原创 leetcode双指针11盛最多水的容器

给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。示例 2:输入..

2022-02-04 16:42:35 73

原创 leetcode字符串5最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"示例 3:输入:s = "a"输出:"a"示例 4:输入:s = "ac"输出:"a"思路:遍历字符串,对每个位置进行一次判定(在其位置的最大回文子串)注意:回文子串不是指非得从中间开始的,例如ccccbbaabb,最大回文子串为bbaabb,因此需要从每个位置都要遍

2022-02-02 14:37:11 167

原创 leetcode字符串3无重复字符的最长子串

给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"...

2022-02-01 17:04:03 6335

原创 leetcode链表2两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9,

2022-01-30 17:04:12 91

原创 leetcode二进制461汉明距离

两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。给你两个整数 x 和 y,计算并返回它们之间的汉明距离。示例 1:输入:x = 1, y = 4输出:2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。示例 2:输入:x = 3, y = 1输出:1注意点:1. Integer.bitCount(参数) 统计参数中有几个12. 异或运算 ^ 相同为0,不同为1...

2022-01-30 16:12:59 1658

原创 leetcode二分法剑指 Offer 11. 旋转数组的最小数字

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。给你一个可能存在重复元素值的数组numbers,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组[3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0使用二分查找:原本是一个排好序的数组,现分为两个排好序的数组,里面有个分隔点(也就是最...

2022-01-27 15:47:59 75

原创 leetcode112. 路径总和

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。叶子节点 是指没有子节点的节点。输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22输出:true解释:等于目标和的根节点到叶节点路径如上图所示。三部曲:终止条件;返回

2022-01-27 15:01:20 367

原创 leetocde双指针剑指 Offer 57 - II. 和为s的连续正数序列

输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]思路:双指针引用自作者:jyd设连续正整数序列的左边界 ii 和右边界 jj ,则可构建滑动窗口从左向右滑动。循环中,每轮判断滑动窗口内元素

2022-01-26 16:11:54 63

原创 leetcode剑指 Offer 09. 用两个栈实现队列

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:["CQueue","deleteHead","appendTail.

2022-01-26 14:54:30 62

原创 leetcode剑指 Offer 10- I. 斐波那契数列

写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0,F(1)= 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1示例 2:输入:n = 5输出...

2022-01-25 20:08:06 178

原创 leetcode数组118. 杨辉三角

给定一个非负整数numRows,生成「杨辉三角」的前numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例 1:输入: numRows = 5输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例2:输入: numRows = 1输出: [[1]]注意点1:注意这种嵌套写法,不一定要分开来写,可以一步到位,按照题目返回的类型写ArrayList<List<Integer>>...

2022-01-25 17:38:33 152

原创 leetcode字符串剑指 Offer 58 - II. 左旋转字符串

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = "abcdefg", k = 2输出:"cdefgab"示例 2:输入: s = "lrloseumgh", k = 6输出:"umghlrlose"思路1:substring(起点(包含),终点(不包含))public class reverse..

2022-01-25 16:56:41 69

原创 leetcode二叉树226翻转二叉树

翻转一棵二叉树。示例:输入: 4 / \ 2 7/ \ / \1 3 6 9输出: 4 / \ 7 2/ \ / \9 6 3 1解析:每次交换的是当前节点其左右子节点的值我们来看一下递归三部曲:确定递归函数的参数和返回值参数就是要传入节点的指针,不需要其他参数了,通常此时定下来主要参数,如果在写递归的逻辑中发现还需要其他参数的时候,随时补充。返回值的话其实也不需要,但是题目中...

2022-01-21 14:19:20 77

原创 leetcode字符串剑指 Offer 05替换空格

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."思路:将字符串转为字符数组遍历字符数组,如果是空格,stringbuilder.append("%20")注意:在if( ' ' == (chars[i]) )中,必须用单引号,因为 chars[i] 为字符类型,如果用双引号为字符串类型,无法比较,会报错!必须用单引号和字符类型比较public class replac

2022-01-20 16:02:26 55

空空如也

空空如也

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

TA关注的人

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