首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【秋招面试】货拉拉面试(1面过程)

下面是面试题: 由于我准备面试时大部分项目准备是围绕数据仓库开发准备, 而我面试是货拉拉大数据开发岗, 所以整个面试过程面试官也在反复和我确认到底是面试应用开发还是数仓开发。。。...如何处理Hive数据倾斜 如何解决数据倾斜一类问题,可参见这篇: Hive千亿级数据倾斜解决方案 描述一下HiveMapReduce过程 mapreduce三大阶段: map阶段:并行处理阶段...k2进行字典排序 规约–默认没有此阶段,是优化手段,可以提前合并 分组–相同k2value会放到同一个集合中 自定义reduce函数,讲分组得到k2,v2转成k3,v3输出 设置输出OutputFormat...唯一原则:每条rowkey唯一表示一条数据 组合原则:常用查询条件组合作为Rowkey 原则:rowkey构建不能连续 长度原则:满足业务需求越短越好 最后一问:项目的数据流转 4....一些问题 unionunion all区别 左连接连接连接连接 什么是最左前缀原则?

51830

一场比较有深度面试

2、原则:由于rowkey是按字典有序,故应避免rowkey连续有序而导致在某一台RegionServer上堆积现象。例如可以拼接随机数、将时间戳倒序等。...1、TCPkeep-alive机制可能在短暂网络异常中,将一个良好连接给断开; 2、keep-alive设计初衷是清除回收死亡时间长连接,不适合实时性高场合,而且它会先要求连接一定时间内没有活动...四、请介绍一下MapReduce工作原理。 【解】MapReduce是一个分布式计算框架,用于大规模数据集并行运算。...合并(Merge):溢写可能会生成多个文件,这时需要将多个文件合并成一个文件。合并过程中会不断地进行 sort & combine 操作,最后合并成了一个已分区且已排序文件。...2、Shuffle阶段:广义上Shuffle阶段横跨Map端Reduce端,在Map端包括Spill过程,在Reduce端包括copymerge/sort过程。

58830
您找到你想要的搜索结果了吗?
是的
没有找到

多表连接三种方式详解 hash join、merge join、 nested loop

取决于连接是否有索引 取决于连接是否排序 下面来介绍三种不同连接工作方式不同: 实验sql 假如有10000个城市,对应于10个国家(此例子仅仅可以解释join工作过程) 更换优化器,添加索引...Hash join连接是CBO 做大数据集连接常用方式,优化器使用两个表中较小表(通常是小一点那个表或数据源)利用连接键(JOIN KEY)在内存中建立列表,将数据存储到hash列表中...二.SORT MERGE JOIN:排序合并连接 Merge Join 是先将关联表关联各自做排序,然后从各自排序表中抽取数据,到另一个排序表中做匹配。...因为merge join需要做更多排序,所以消耗资源更多。 通常来讲,能够使用merge join地方,hash join都可以发挥更好性能,即连接效果都比排序合并连接要好。...然而如果行源已经被排过序,在执行排序合并连接时不需要再排序了,这时排序合并连接性能会优于连接

4.2K10

Oracle-多表连接三种方式解读

对应 Nested Loops,Hash Join Sort Merge Join. ---- 三种连接方式 NESTED LOOP 对于被连接数据子集较小情况,嵌套循环连接是个较好选择。...---- Sort Merge Join 通常情况下连接效果都比排序合并连接要好,然而如果行源已经被排过序,在执行排序合并连接时不需要再排序了,这时排序合并连接性能会优于连接。...Hash Join 连接(Hash Join )是CBO 做大数据集连接常用方式,优化器使用两个表中较小表(或数据源)利用连接键在内存中建立列表,然后扫描较大表并探测列表,找出与列表匹配行...也可以用USE_HASH(table_name1 table_name2)提示来强制使用连接. Hash join用在两个表数据量差别很大时候....---- 三种连接工作方式比较 Hash join工作方式是将一个表(通常是小一点那个表)做hash运算,将数据存储到hash列表中,从另一个表中抽取记录,做hash运算,到hash 列表中找到相应

58410

谷歌借AI打破十年排序算法封印,每天被执行数万亿次,网友却说是最不切实际研究?

而通过强化学习,系统会在给定程序状态之下保留树结构中不同分支工作信息。随着时间推移,系统将逐渐“学会”如何以最高得分(代表最低延迟)获得游戏胜利(成功完成排序)。...从排序 在发现更快排序算法后,DeepMind 测试了 AlphaDev 是否可以概括改进不同计算机科学算法:。 哈希是计算中用于检索、存储压缩数据基本算法。...就像使用分类系统来定位某本书图书管理员一样,算法可以帮助用户知道他们正在寻找什么以及在哪里可以找到它。...计算机使用此来快速检索与密钥相关数据,而不是搜索所有数据。 DeepMind 将 AlphaDev 应用于数据结构中最常用算法之一,以尝试发现更快算法。...当将其应用于函数 9-16 字节范围时,AlphaDev 发现算法速度提高了 30%。

18930

面试问题之谈一谈Push-based shuffle

在 Map 任务结束时,它会产生 2 个文件,一个用来存储 Shuffle 数据,另一个用来索引前者 Shuffle 块。为了这样做, Map 任务会根据分区键值对所有转换记录进行排序。...一旦此信息变为可用,每个Reduce 任务将会建立对应 Spark ESS 实例连接,以便获取其输入数据。...在该体系上,所有连接异常都是non-fatal,可以理解为每个环节上连接断开或异常,都有一个对应备选兜底方案: 如果Map task输出Block没有成功Push到magnet上,并且反复重试仍然失败...这些元数据会告诉 Spark Driver 每个未合并 Shuffle block 块合并 Shuffle 文件位置大小,还有哪些 block 块会合并到每一个 Shuffle 合并文件中。...因此,Spark Driver 可以完整看到,怎样去获取每个 Reduce 任务已合并Shuffle 文件合并 Shuffle 块。

1.5K20

spark面试题目_面试提问问题及答案

算法对应函数是rangeBounds 15.什么是二次排序,你是如何用spark实现二次排序?...按天分表,两个字节,四个字节存储时分毫秒。...③基于目的地址hash 这种调度算法基于源地址hash异曲同工,都是为了维持一个session,基于目的地址hash,将记住同一请求目的地址,将这类请求发往同一台目的服务器。...简而言之,就是发往这个目的地址请求都发往同一台服务器。而基于源地址hash,就是来自同一源地址请求都发往同一台服务器。 ④基于源地址hash 上述已讲,不再赘述。...也就是说,将数据按行排序,按存储,将相同字段数据作为一个族来聚合存储。

1.5K20

PGA设置与调整

(Stack)     PGA=UGA+排序区+区+位图合并区   3、UGA           与PGA相关另一概念即是UGA(User Global Area),即用户全局区,与特定会话相关联...如果采用专用服务器连接模式,PGA中包含UGA,其他区域用来排序位图合并。   ...手动PGA内存管理:用户指定排序区所使用内存,每个连接使用相同内存。        ...被分为可调整区不可调整区,可调整区为SQL工作区,其余为不可调整区      e.当少量用户连接到数据库时,则每个用户享有相对较多PGA内存,而当大量用户连接时则每个用户分配相对较少PGA内存。...f.单个串行查询(非并行查询)可能包括多个排序/操作,每个排序/操作最多使用5%PGA内存。      h.单个并行查询最多可用到30%PGA内存,无论有多少并行进程。

98320

自适应查询执行:在运行时提升Spark SQL执行性能

AQE完全基于精确运行时统计信息进行优化,引入了一个基本概念Query Stages,并且以Query Stage为粒度,进行运行时优化,其工作原理如下所示: 由shufflebroadcast...当CustomShuffleReader标志为coalesced时,表示AQE已根据目标分区大小在shuffle后检测并合并了小分区。此节点详细信息显示合并无序分区数分区大小。 ?...当CustomShuffleReader标志为"skewed"时,这意味着AQE在排序合并连接操作之前检测到一个或多个分区中数据倾斜。...为了查看使用Spark UI效果,用户可以比较查询执行之前执行完成后计划图: ? || 检测倾斜join 倾斜连接优化效果可以通过连接节点名来识别。 在Spark UI中: ?...为了获得最佳估计精度规划结果,通常需要维护详细、最新统计信息,其中一些统计信息收集成本很高,比如直方图,它可用于提高选择性基数估计或检测数据倾斜。

2.2K10

hive基本使用

) 加载数据到Hive 加载到普通表 可以将本地文本文件内容批量加载到Hive表中,要求文本文件中格式Hive表定义一致,包括:字段个数、字段顺序、分隔符都要一致。...排序后,如果指定了conmbiner方法,就运行combiner方法使得map结果更紧凑,从而减少写入磁盘将来网络传输数据量 ##### 合并溢出文件 环形缓冲区每次溢出,都会生成一个文件,所以在...map任务全部完成之前,会进行合并成为一个溢出文件,每次溢出各个文件都是按照分区进行排好序,所以在合并文件过程中,也要进行分区排序,最终形成一个已经分区排好序map输出文件。...写入磁盘之前,会对各个map节点来数据进行合并排序合并时如果指定了combiner,则会再次执行combiner以尽量减少写入磁盘数据量。...为了合并,如果map输出是压缩过,要在内存中先解压缩后合并 ##### 合并数据 合并排序其实是复制文件同时并行执行,最终目的是将来自各个map节点数据合并排序后,形成一个文件 ####

82720

基于Python数据分析之pandas统计分析

在实际工作中,我们可能需要处理是一系列数值型数据框,如何将这个函数应用到数据框中每一呢?可以使用apply函数,这个非常类似于R中apply应用方法。...删除 bank.drop(‘job’, axis=1) #删除年龄,axis=1必不可少 排序 bank.sort_values(by=[‘job’,’age’]) #根据工作、年龄升序排序...bank.sort_values(by=[‘job’,’age’], ascending=False) #根据工作、年龄降序排序 多表连接 准备数据: import numpy as np...左连接中,没有Score学生Score为NaN 缺失值处理 现实生活中数据是非常杂乱,其中缺失值也是非常常见,对于缺失值存在可能会影响到后期数据分析或挖掘工作,那么我们该如何处理这些缺失值呢...数据打乱(shuffle) 实际工作中,经常会碰到多个DataFrame合并后希望将数据进行打乱。在pandas中有sample函数可以实现这个操作。

3.3K20

阅读查询计划:SQL Server 索引进阶 Level 9

图5 - 计划在每个表上使用支持索引JOIN查询 因为两个输入流现在都由连接谓词ContactID排序; 查询JOIN部分可以在不分割流情况下完成,也不需要; 从而将工作负荷26 + 5...排序,推送 许多查询操作要求在执行操作之前将数据分组。这些包括DISTINCT,UNION(意味着不同),GROUP BY(及其各种聚合函数)JOIN。...实际上,如果将鼠标放在最近查询中合并连接”图标上,则会使用两个适当排序输入流匹配行,并利用它们排序顺序。会出现。这会通知您两个表/索引行使用内存处理器时间绝对最小值进行连接。...哈希是一种可以使用大量内存技术,但通常比分类更有效。在执行DISTINCT,UNIONJOIN操作时,排序相比有一个优势,即单个行可以传递到下一个操作,而不必等待所有传入行被。...信息所需内存量与所需组数量直接相关。

1K60

2022年Hadoop面试题最全整理,两万字干货分享【建议收藏】

6.当循环缓冲区中数据达到溢出比(默认为0.8)即80M时,溢出线程启动,需要对这80MB空间中键进行排序排序是MapReduce模型默认行为。这里排序也是序列化字节排序。...合并排序:把分散数据合并成一个大数据后,还会再对合并数据排序。...2.溢出阶段:当内存中数据量达到一定阈值时,数据将被写入本地磁盘。在将数据写入磁盘之前,需要对数据进行一次排序。如果配置了合并器,具有相同分区号数据也将被排序。...5.在ReduceTask阶段合并:当reduce任务远程复制数据时,将在后台启动两个线程,将数据文件从内存合并到本地。 6.排序阶段:在合并数据同时,进行排序操作。...(2) 增加 Reducer,提升并行度 JobConf.setNumReduceTasks(int) (3) 实现自定义分区 根据数据分布情况,自定义函数,将 key 均匀分配到不同 Reducer

85210

面试题(三)

当然为了保证多台数据库数据一致性,需要主从复制。 如何处理负载,高并发?...图片服务器分离 把图片单独存储,尽量减少图片等大流量开销,可以放在一些相关平台上,如七牛等 数据库集群库表及缓存 数据库并发连接为100,一台数据库远远不够,可以从读写分离、主从复制,数据库集群方面来着手...NULL 合并运算符:由于日常使用中存在大量同时使用三元表达式 isset()情况,NULL 合并运算符使得变量存在且值不为NULL, 它就会返回自身值,否则返回它第二个操作数。...使用过Memcache缓存吗,如果使用过,能够简单描述一下它工作原理吗?...选取最适用字段属性,应该尽量把字段设置为NOT NULL 使用连接(JOIN)来代替子查询(Sub-Queries) 使用联合(UNION)来代替手动创建临时表 尽量少使用 LIKE 关键字通配符

2.4K10

面试题(四)

当然为了保证多台数据库数据一致性,需要主从复制。 如何处理负载,高并发?...图片服务器分离 把图片单独存储,尽量减少图片等大流量开销,可以放在一些相关平台上,如七牛等 数据库集群库表及缓存 数据库并发连接为100,一台数据库远远不够,可以从读写分离、主从复制,数据库集群方面来着手...NULL 合并运算符:由于日常使用中存在大量同时使用三元表达式 isset()情况,NULL 合并运算符使得变量存在且值不为NULL, 它就会返回自身值,否则返回它第二个操作数。...使用过Memcache缓存吗,如果使用过,能够简单描述一下它工作原理吗?...选取最适用字段属性,应该尽量把字段设置为NOT NULL 使用连接(JOIN)来代替子查询(Sub-Queries) 使用联合(UNION)来代替手动创建临时表 尽量少使用 LIKE 关键字通配符

2.3K20

Spark+Celeborn:更快,更稳,更弹性

传统 Shuffle 实现如上图中间部分所示,每个 Mapper 对 Shuffle Output 数据,根据 Partition ID 做排序,然后把排序数据索引写入本地盘。...第三,Shuffle Read 有大量网络连接,逻辑连接数是 m×n。 第四,存在大量随机读盘。...同时 Shuffle Read 从随机读转换成了顺序读,网络连接数也从乘数关系变成了线性关系。这就解决了传统 Shuffle 主要缺陷。...众所周知,行存存是两种常见数据布局方式。好处是相同类型数据放在一起,易于编码,如字典编码、行程编码、Delta 编码、前缀编码等,可以非常大程度降低数据量。...为了在 Apache Spark 中实现列式 Shuffle,Celeborn 引入了行列转换代码生成,在 Shuffle Write 时候把行存数据转化成存,在 Shuffle Read 时候把转化为行存

39210

Hive LLAP概念透析

查询初始阶段被推送到 LLAP。 在 reduce 阶段,大型 shuffle 在单独容器中执行。 多个查询应用程序可以同时访问 LLAP。...查询片段执行 对于如上所述部分执行,LLAP 节点执行“查询片段”,例如过滤器、投影、数据转换、部分聚合、排序、分桶、连接/半连接等。...数据以简单 RLE 编码格式传递给执行,该格式已准备好进行矢量化处理; 这也是缓存格式,旨在最大限度地减少 I/O、缓存执行之间复制。 多种文件格式。...在将数据放入缓存之前执行合并增量文件以产生表特定状态。 多个版本是可能,并且请求指定要使用哪个版本。 这样做好处是异步进行合并,并且只对缓存数据进行一次合并,从而避免了对操作员管道影响。...安全 LLAP 服务器是在比“每个文件”更细粒度级别强制执行访问控制自然场所。 由于守护进程知道处理了哪些记录,因此可以对这些对象实施策略。

1.5K10
领券