
大数据面试
星空下的那个人影
不像程序员的程序猿
展开
-
SQL-统计连续N天登陆的用户
统计连续N天登陆的用户原创 2022-06-22 22:12:42 · 1792 阅读 · 2 评论 -
SparkStreaming 有几种方式消费 Kafka 中的数据(与 kafka 集成的方式)
SparkStreaming 有哪几种方式消费 Kafka 中的数据,它们之间的区别是什么?原创 2022-06-19 22:58:35 · 552 阅读 · 0 评论 -
sql 优化
sql 优化原创 2022-06-19 20:40:16 · 334 阅读 · 0 评论 -
手写 Spark-WordCount
手写wordcount原创 2022-06-18 19:37:26 · 363 阅读 · 0 评论 -
spark RDD 行动算子
spark rdd action 算子原创 2022-06-18 19:27:12 · 222 阅读 · 0 评论 -
hive 的存储格式
hive的存储格式原创 2022-06-18 00:16:39 · 3015 阅读 · 0 评论 -
那你介绍一下 Mapreduce 工作原理?
mapreuce工作原理原创 2022-06-17 13:42:46 · 472 阅读 · 0 评论 -
数据仓库之维度建模
数据仓库原创 2022-06-13 19:09:45 · 2088 阅读 · 0 评论 -
计算每个月的累计薪资是多少?一月份赚了3000,二月份赚了6000,想二月份变成9000,每一次都是累加的
sql原创 2022-06-13 17:32:05 · 199 阅读 · 0 评论 -
数据仓库之拉链表
拉链表原创 2022-06-13 14:46:39 · 392 阅读 · 0 评论 -
JVM 垃圾回收机制
jvm 垃圾回收机制原创 2022-06-05 21:42:29 · 383 阅读 · 0 评论 -
说一下 zookeeper 的选举过程
zookeeper 的选举过程原创 2022-06-05 16:19:40 · 494 阅读 · 0 评论 -
Spark 任务如何调优
spark 调优原创 2022-06-05 00:59:44 · 877 阅读 · 0 评论 -
如何基于MapReduce做Hadoop的优化的?
基于 MapReduce做 Hadoop 的优化原创 2022-06-04 22:59:19 · 198 阅读 · 0 评论 -
Spark 数据倾斜
数据倾斜原创 2022-06-04 20:01:49 · 1083 阅读 · 0 评论 -
Spark 算子调优
算子调优原创 2022-06-04 17:33:02 · 435 阅读 · 0 评论 -
Spark Shuffle调优
Shuffle 调优原创 2022-06-04 11:54:05 · 230 阅读 · 0 评论 -
Spark JVM调优总结
JVM调优原创 2022-06-04 10:12:23 · 283 阅读 · 0 评论 -
Spark 性能调优总结
spark性能调优原创 2022-06-03 23:36:49 · 946 阅读 · 0 评论 -
Synchronized 与 Lock 的区别
synchronized与Lock的区别原创 2022-06-03 20:10:06 · 103 阅读 · 0 评论 -
kafka如何确保数据不丢失?
kafka防止数据丢失原创 2022-06-03 20:05:48 · 2081 阅读 · 0 评论 -
数据仓库都分哪几层?
数据仓库分哪些层原创 2022-06-03 19:57:58 · 2028 阅读 · 0 评论 -
说说JVM的垃圾回收算法
引用计数法、复制算法、标记算法、标记整理原创 2022-06-03 12:07:06 · 104 阅读 · 0 评论 -
根据项目中的介绍,谈谈为什么要对数仓进行分层?
数仓进行分层的一个主要原因就是希望在管理数据的时候,能对数据有一个更加清晰的掌握。原创 2022-06-02 23:30:57 · 336 阅读 · 0 评论 -
Flume拦截器
优缺点、步骤原创 2022-06-02 20:08:12 · 237 阅读 · 0 评论 -
请你说说进程和线程的区别
进程是包含线程的,一个进程可以包含一个或多个线程原创 2022-06-02 11:37:28 · 146 阅读 · 0 评论 -
说说你了解的JVM内存模型
JVM由三部分组成:类加载子系统、执行引擎、运行时数据区。原创 2022-06-02 11:04:51 · 204 阅读 · 0 评论 -
产生死锁的四个必要条件
互斥、请求与保持、不剥夺、循环等待原创 2022-06-01 16:36:34 · 118 阅读 · 0 评论 -
什么是类加载器,类加载器有哪些?
实现通过类的权限定名获取该类的二进制字节流的代码块叫做类加载器。原创 2022-06-01 16:22:27 · 813 阅读 · 0 评论 -
Kafka 消息丢失和重复问题
要确定 Kafka 的消息是否丢失或重复,从两个方面分析入手:消息发送和消息消费。消息发送Kafka 消息发送有两种方式:同步和异步,默认是同步方式,可通过 producer.type 属性进行配置。Kafka 通过配置 request.required.acks 属性来确认消息的生产:0——表示不进行消息接收是否成功的确认;1——表示当 Leader 接收成功时确认;-1——表示 Leader 和 Follower 都接收成功时确认;综上所述,有6种消息生产的情况,下面分情况来分析消息丢失的原创 2022-05-27 18:54:36 · 1922 阅读 · 0 评论 -
调优之前与调优之后性能的详细对比(例如调整 map 个数,map 个数之前多少、之后多少,有什么提升)
这里举个例子。比如我们有几百个文件,会有几百个 map 出现,读取之后进行 join 操作,会比较慢。这个时候我们可以进行 coalesce 操作,比如 240个 map,我们合成 60 个map,也就是 窄依赖。这样再shuffle,过程产生的文件数会大大减少。提高 join 的时间性能。...原创 2022-05-27 16:47:27 · 184 阅读 · 0 评论 -
如何使用Spark实现TopN的获取(描述思路或使用伪代码)
方法1:a. 按照 key 对数据进行聚合(groupByKey)b. 将 value 转换为数组,利用 scala 的 sortBy 或者 sortWith 进行排序(mapValues)注意:当数据量太大时,会导致OOM。val rddData1 = sparkSession.parallelize(Array(("sivela", 15),("sivela", 18),("sivela", 16),("Alice", 15),("Bob", 18)))val rddGroup = rdd.原创 2022-05-26 19:47:01 · 582 阅读 · 0 评论 -
Hadoop 解决数据倾斜方法
一般发生在 reduce端,其他任务10s以内就执行完了,有一个任务执行了50分钟还没有执行完,程序卡在99%不动了,甚至爆出了内存溢出。原因分析:导致数据倾斜的 key 大量分布在相同的 mapper,map 端解决:提前在 map 进行 combine,减少传输的数据量。在 Mapper 加上 combiner 相当于提前进行 reduce,即把一个 Mapper 中的相同 key 进行了聚合,减少了 shuffle 过程中传输的数据量,以及 Reducer 端的计算量。导致数据倾斜原创 2022-05-26 12:42:01 · 438 阅读 · 1 评论 -
Kafka 的 ISR 副本同步队列
ISR,副本同步队列。ISR 中包括 Leader 和 Follower。如果 Leader 进程挂掉,会在 ISR 队列中选择一个服务作为新的 Leader。有延迟条数和延迟时间两个参数决定一台服务是否可以加入 ISR 副本队列,在0.10 版本移除了 延迟条数 参数,防止服务频繁的进去队列。任意一个维度超过阈值都会把 Follower 剔除出 ISR,存入到 OSR 列表,新加入的 Follower 也会先存放在 OSR 中。...原创 2022-05-25 19:58:00 · 642 阅读 · 0 评论 -
请列举会引起 shuffle 过程的 spark 算子,并简述功能
byKey类的操作:比如 reduceByKey、groupByKey、sortByKey 等;因为要对一个key,进行聚合操作,那么肯定要保证集群中,所有节点上的,相同的 key,一定是到同一个节点上进行处理;a. reduceByKey :将数据按照相同的 key 对 value进行聚合;b. groupByKey :将数据按照相同的 key 对 value进行分组;c. aggregateByKey :将数据按照不同的规则进行分区内计算和分区间计算;d. foldByKey:当分区内计算规则.原创 2022-05-25 12:30:13 · 770 阅读 · 1 评论 -
在项目中是否自定义过UDF、UDTF函数,以及用他们处理了什么问题,及自定义步骤?
自定义过用 UDF 函数解析公共字段;用 UDTF 函数解析事件字段自定义 UDF:继承 UDF,重写 evaluate 方法自定义 UDTF:继承自 GenericUDTF,重写3个方法:initialize(自定义输出的列名和类型),process(将结果返回 forward(result)),close为什么要自定义 UDF/UDTF,因为自定义函数,可以自己埋点Log打印日志,出错或者数据异常,方便调试。...原创 2022-05-24 19:13:06 · 366 阅读 · 0 评论 -
简述 SparkSQL中RDD、DataFrame、DataSet 三者的区别与联系?
RDDRDD:是弹性分布式数据集**,是Spark中最基本的数据抽象,代表一个不可变,可分区、里面的元素可并行计算的集合。优点:a. 编译时类型安全:编译时就能检查出类型错误;b. 面向对象的编程风格:直接通过类名点的方式来操作数据;缺点:a. 序列化和反序列化的性能开销:无论是集群间的通信,还是IO操作都需要对对象的结构和数据进行序列化和反序列化;b. GC (垃圾回收)的性能开销,频繁的创建和销毁对象,势必会增加GC(程序进行GC时,所有任务都是暂停);DataFrameDa..原创 2022-05-24 12:16:02 · 868 阅读 · 0 评论 -
简述 SparkStreaming 窗口函数的原理
窗口函数就是在原来定义的 SparkStreaming 计算批次大小的基础上再次进行封装,每次计算多个批次的数据,同时还需要传递一个滑动步长的参数,用来设置当次计算任务完成之后下一次从什么地方开始计算;图中 time1 就是 SparkStreaming 计算批次大小,虚线框以及实线大框就是窗口大小,必须为批次的整数倍。虚线框到大实线框的距离(相隔多少批次),就是滑动步长。...原创 2022-05-19 21:15:01 · 688 阅读 · 0 评论 -
StringBuffer 和 StringBuilder 区别
StringBuffer 与 StringBuilder 中的方法和功能完全是等价的;只是 StringBuffer 中的方法大都采用了 synchronized 关键字进行修饰,因此是线程安全的,而 StringBuilder 没有这个修饰,可以被认为是线程不安全的;在单线程程序下,StringBuilder 效率更快,因为它不需要加锁,不具备多线程安全,而 StringBuffer 则每次都需要判断锁,效率相对较低。...原创 2022-05-18 21:24:57 · 167 阅读 · 0 评论 -
了解哪些Hadoop的参数优化
在 hdfs-site.xml 文件中配置多目录,最好提前配置好,否则更改目录需要重新启动集群;Namenode 有一个工作线程池,用来处理不同 DataNode 的并发心跳以及客户端并发的元数据操作dfs.namenode.handler.count=20*log2(cluster size)比如集群规模为10台,此参数设置为60编辑日志存储路径 dfs.namenode.edits.dir 设置与镜像文件存储路径 dfs.namenode.name,dir 尽量分开,达到最低写入..原创 2022-05-18 12:51:16 · 209 阅读 · 0 评论