面试相关
记录IT技术相关的面试题
Alienware^
喜欢专研Java,Scala,Python,数据库,以及大数据框架系列知识。希望通过不断的学习,记录自己的点点滴滴。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
== 和 equals的区别
它们最大的区别就是,==是运算符,equals是方法, == 来说的话,如果说比较的对象是基本数据类型,则比较的是数值是否相等。 如果说比较的是引用数据类型,则比较对象的地址值是否相等。 而equals是用来比较两个方法的两个对象内容是否相等。 注意的是,equals不能用于比较基本数据类型的变量,如果没有对equals方法进行重写。则比较是引用数据类型的变量,所指向的对象的地址。 ...原创 2021-11-03 21:13:51 · 830 阅读 · 0 评论 -
Hive的窗口函数和锁表
常用的窗口函数, 锁表怎么用原创 2021-11-01 18:35:21 · 209 阅读 · 0 评论 -
Spark 的宽依赖和窄依赖
针对不同函数,Spark 分为宽依赖和窄依赖, 窄依赖是一个父RDD 分区对应一个子RDD 分区,或者说是多个父RDD分区对应一个子RDD分区,比如map,flapmap,filter 宽依赖是一个父RDD分区对应多个子RDD分区,groupByKey,reduceByKey,sortByKey。 总体来说,如果父RDD 对应一个 子RDD ,那么它就是窄依赖,否则就是宽依赖。 ...原创 2021-09-26 09:26:33 · 1309 阅读 · 0 评论 -
Spark的 RDD 和 RDD血统依赖
什么是RDD ? RDD是一个弹性和复原的分步式数据集。 可以解决数据容错时的高效性,以及划分任务起到的重要作用。 RDD 是混合型的编程模型, 可以支持迭代计算, 关系查询, MapReduce, 流计算 RDD 不可变,可分区。是只读的 RDD 之间有依赖关系, 根据执行操作的操作符的不同, 依赖关系可以分为宽依赖和窄依赖 就是在大量记录上执行的单个文件操作,将创建的RDD的一系列的血缘记录下来,以便恢复丢失的数据,相邻两个RDD之间的关系称为依赖关系,新的RDD依赖旧的RDD,多个连续的RDD 相互依原创 2021-09-25 17:57:28 · 465 阅读 · 0 评论 -
mysql练习题
非常经典哈 ,从别的作者里拿出来的。。。。 https://blog.csdn.net/paul0127/article/details/82529216?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0.no_search_link&spm=1001.2101.3001.4242原创 2021-09-24 11:14:16 · 157 阅读 · 0 评论 -
如何解决数据倾斜
四个方面 1,从业务逻辑上处理,设计避免数据倾斜的问题,想办法把数据分配的更加均匀,分散一点。 比如 :统计商家容易数据倾斜,我可以统计不同种类商品,比如生鲜,母婴,因为我只是知道整个平台的销售情况,商家维度不好找,我换成商品维度去统计,也省了很多人力资源。 2,从技术方案解决 统计一年的数据搞不定,可以统计每个月,如果每个月的数据量不大,就不会产生数据倾斜问题。 3,以上都考虑锅了,可以在细节问题解决,比如对数据预处理,过滤少数导致的key,使用随机前缀等等。 4,条件可以的话,可以从硬件上去解决,比如.原创 2021-09-23 10:47:26 · 703 阅读 · 0 评论 -
什么是数据倾斜
数据倾斜是怎么发生的? 数据倾斜:shuffle过程数据分布不均匀。 shuffle:洗牌。 分步式计算,相同key的数据会到一个节点去处理。 举个例子:某宝想统计各个商家的一年销售额,有的商家卖了很多产品,但有的商家比较冷清,一年到头,卖不了多少东西,我想要对整年的所有商家的订单做个汇总,也就是,同一商家销售额数据累加到一起。你就会发现,你的hive,mr,spark程序,运行到某个阶段,突然不动了。这是因为,在shuffle过程中,有的商家数量比较少,但是有些商家是数量比较多,其他商家已经计算完了,他.原创 2021-09-23 07:50:27 · 420 阅读 · 0 评论 -
HDFS 的读写流程
文章目录读流程写流程 读流程 1,客户端通过Disributed FileSystem 向 NameNode 请求下载文件 NameNode 通过查询元数据,找到文件块所在的 DataNode 地址。 2,挑选一台DataNode 服务器 (就近原则,然后随机),请求读取数据。 3,DataNode 开始传输数据给客户端, 4,客户端以Packet为单位接受,现在本地缓存,然后写入本地文件。 写流程 1,客户端会向namenode发送请求,namenode会检测文件和文件目录是否存在。 2,nameno返回原创 2021-09-22 22:59:23 · 293 阅读 · 0 评论 -
Hive小文件的解决方案
第一种:从数据产生的途径上进行解决。 1)尽量用sequencefile (SequenceFile文件是Hadoop用来存储二进制形式的key-value对而设计的一种平面文件(Flat File)。),减少使用textfile (文本文件),从一定程度上能减少小文件的产生。 2)可以减少reduce的个数, 3)少用动态表,多用distribute by 分区 第二种:对于已经存在的小文件进行解决方案。 1)可以用hadoop achieve 归档命令,对文件进行归档。 2)重建表,重建表的时候来设.原创 2021-09-22 22:45:59 · 1309 阅读 · 0 评论 -
kafka分区的目的,以及如何做到消息的有序性
分区对kafka集群的好处是:实现负载均衡,分区对于消费者来说,可以提高并发度,提升效率。 kafka中每个partition 中的消息,是写入时就是有有序的,而且单独一个partition 只能由一个消费者去消费,可以在里面保证,消息的顺序性,但是分区之间的消息,不保证有序的。 ...原创 2021-09-22 15:21:36 · 731 阅读 · 0 评论 -
什么场景下会选择kafka?
1,日志收集:可以用kafka收集各种log,通过kafka以统一接口服务的方式,开放给各种消费者(consumer),例如hadoop,Hbase,Solr等。 2,消息系统:解耦和生产者消费者,缓存消息等。 3,用户活动追终:比如用户用app通过网页,搜索,点击,等等操作,发送的kafka的topic上去,做一些实时监控分析,或者装载到hadoop上,数据仓库中进行离线分析和挖掘。 4,运营指标:kafka经常用来记录监控数据,收集数据,比如报警信息,报告。 5,Spark Streaming 和 Fl原创 2021-09-22 15:18:01 · 1059 阅读 · 0 评论 -
Kafka的数据放在磁盘上还是内存上,为啥速度会快
kafka使用的是磁盘存储。 速度快是因为: 1,顺序写入,因为磁盘是机械结构,每次读写都会寻址 -> 写入,其中寻址是一个机械动作,他是耗时的,所以磁盘很讨厌 随机IO , 喜欢顺序IO,为了提高读写硬盘的速度,kafka用的就是顺序IO。 2,Memory Mapped Files(内存映射文件),64位操作系统中一般可以表示20G的数据文件,他的工作原理是直接利用操作系统的page (内存管理单元) 来实现文件到物理内存的直接映射,完成映射后,对物理内存的操作会被同步到磁盘上。 3,kafka原创 2021-09-21 16:06:47 · 4253 阅读 · 0 评论 -
为什么使用kafka
从五个方面来处理: 1,缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器去保证冗余 (数据冗余是指同一个数据在系统中多次重复出现)。kafka可以起到一个缓冲的作用,把消息暂存到kafka中,下游服务就可以按照自己的节奏慢慢处理。 2,解耦和扩展性:项目开始时,不确定具体的需求,消息队列可以作为一个接口层,解耦重要业务流程,只需要遵守约定,针对数据编程即可获取扩展能力。 3,冗余:采用一对多方式,一个生产者生产消息,可以被多个订阅topic的消费服务到,供多个毫无关联的业务应用。原创 2021-09-20 13:57:29 · 2604 阅读 · 0 评论
分享