
面试
鸭梨山大哎
life hard take it easy
展开
-
深圳某牛大数据面试题
flink如何关联维表?flink kafka consumer offset在什么时候提交?如何保证只消费一次?flink有哪些state backends?有什么区别?flink taskManager 内存模型?spark如何处理数据倾斜?Spark 1个executor (8 core,8G)和8个executor(1 core,1G) 有什么区别?如何选择spark Streaming失败重启,重启后发现大量数据积累,这个怎么处理?...原创 2021-03-04 20:33:36 · 216 阅读 · 1 评论 -
Hive group by后面不能用列别名
比如,如下是会报错的,year这个别名此时还是不能用的select deptno `dept`, year(hiredate) `year`, sum(sal)from tb_empgroup by deptno,year;org.apache.hadoop.hive.ql.parse.SemanticException:Line 5:16 Invalidtable alias or column reference ‘year’: (possible column原创 2021-02-26 12:51:15 · 1330 阅读 · 0 评论 -
Hive什么时候可以用别名?
举个例子,求各部门工资和总工资的比例1 首先求各部门工资以及总工资select deptno, sum(sal) over (distribute by deptno) `d_dal`, sum(sal) over() `total_sal`from tb_emp;2 求比例如下写法是错误的,此时还不能用别名select deptno, sum(sal) over (distribute by deptno) `d_sal`, sum(s原创 2021-02-26 12:38:11 · 2618 阅读 · 0 评论 -
Hive增加一列固定值
需求同时查出各部门的工资以及公司的总工资with a as ( select sum(sal) `total sal` from tb_emp)select deptno, sum(sal) over (distribute by deptno), a.`total sal`from tb_emp,a;执行结果+------+-----+---------+|deptno|c1 |total sal|+------+-----+---------+|NUL原创 2021-02-26 12:23:41 · 3234 阅读 · 0 评论 -
大数据面试题
你们公司的数仓是怎么搭建的你们是怎么解决缓慢变化维的问题?拉链表如何在分组内排序,不能使用开窗函数Spark的调优Olap的两种分类讲一下你精准推荐用到的算法,以及他们的原理如果你们公司的技术选型满足不了需求是怎么处理的你们公司的集群有多大,服务器的配置,各种数据有多大,Container的并发多大,Kafka有多少台Mysql事务隔离级别当程序在并发跑的时候,有一个节点出问题了,数据会跑不出来还是跑出来有丢失,怎么解决的hadoop和Spark的区别,各有什么优缺点你们是如何保证数原创 2021-02-26 10:30:39 · 164 阅读 · 1 评论 -
大数据简答50道
1、 HDFS读写流程? 写:客户端发出请求 hdfs dfs -put /etc/profile /qf/datanamenode查看维护的目录结构,检查/qf/data是否存在,如不存在直接报错”no such file or directory“,如存在返回给客户端同意上传文件请求,将操作写入日志文件客户端请求上传第一个块,询问namenode块的存储位置namenode查看自己的datanode池,返回给客户端一个datanode列表客户端发出请求建立pipeline客户端先把文件写入缓原创 2020-12-29 14:04:18 · 2743 阅读 · 0 评论 -
大数据面试题总结
一 美团自我介绍一下?介绍一下最近的项目?目前在研究什么技术?如何判定一个表是事实表还是维度表?数据建模过程说一下?三范式知道吗,说一下?数据仓库模型建设可以使用范式建模吗,你是怎么看的?缓慢变化维处理方式?大宽表的优点与缺点?拉链表的实现逻辑说一下?Mapreduce执行流程说一下?Shulffle过程瓶颈在哪里,你会怎么解决?你刚说到会有小文件和数据倾斜,这个怎么处理?空值key加随机数是一种数据倾斜解决方案,如果有单个转载 2020-12-28 16:20:04 · 2727 阅读 · 3 评论 -
Hive优化入门
环境方面可以修改相关服务器的配置、容器的配置、环境搭建explain 和 explain extendedexplain : 只有对hql语句的解释。explain extended:对hql语句的解释,以及抽象表达式树的生成。stage 相当于一个job,一个stage可以是limit、也可以是一个子查询、也可以是group by等。hive默认一次只执行一个stage,但是如果stage之间没有相互依赖,将可以并行执行。任务越复杂,hql代码越复杂,stage越多,运行的时间一般越长。原创 2020-12-26 10:35:26 · 252 阅读 · 0 评论 -
redis面试题简义
1、redis工作原理,使用场景是什么?排行榜计数2、你在项目中redis的存储有哪些?3、redis支持的最大数据量是多少? redis集群下怎么从某一台集key-value。64G4、列举一个常用的Redis客户端的并发模型。5、Redis,传统数据库,hbase,hive每个之间的区别6、redis支持的数据格式7、 redis的性能瓶颈在哪里?8、如何使得redis高并发可以支持10万Qps+?...原创 2020-12-22 11:49:46 · 201 阅读 · 1 评论 -
Hive数据倾斜入门
含义表现为某个reduc任务的原因原因原创 2020-12-21 09:12:24 · 112 阅读 · 0 评论 -
spark优化入门
spark计算的瓶颈可能有很多,比如cpu,带宽,内存等等. 本文主要从序列化以及内存优化两方面来谈.数据序列化- 序列化在任何分布式应用程序的性能中起着重要的作用- 将对象序列化为消耗大量字节的格式会大大减慢计算速度- spark提供了两个序列化库,java序列化和kryo序列化- spark默认使用java序列化,但是java序列化比较慢,且序列化后的对象体积大- kryo序列化比较快,但缺点是并不支持所有的类型.- kryo使用自定义类需要注册,注册方法如下val conf = ne原创 2020-12-13 17:03:55 · 396 阅读 · 0 评论 -
Spark面试题梳理
SortShuffle1 mapTask将map(聚合算子)或array(join算子)写入内存2 达到阀值发生溢写,溢写前根据key排序,分批写入磁盘,最终将所有临时文件合并成一个最终文件,并建立一份索引记录分区信息。一个mapTask最终形成一个文件。3 reduceTask拉取各个task中自己的分区数据去计算。和hadoop shuffle的区别1 MR没有所谓的DAG划分,一次MR任务就意味着一次shuffle;spark并不是每次都会触发shuffle2 MR要进行3次排序,map阶原创 2020-12-12 17:59:40 · 435 阅读 · 1 评论 -
数仓简答
什么是数仓?一个面向主题的,集成的,稳定的,时变的,存储历史数据的仓库时变性得是存储的数据有时效性,过期的数据导出到其他地方保存-稳定是相对稳定,数据进入仓库后不会轻易改变,但是可以根据需求追加数据集成的意思是不同来源的数据整合在一起什么是数仓分层?数仓往往分为三层,ods、dw、dm,而dw层又可以根据业务细分为dwd、dws、dwa等多层7.1.1 ods层操作型数据层,存放的是从不同来源进入数仓的原始数据,ods层往往只存放少量加工的原始数据,因此这里的数据不是集成的。原创 2020-12-10 14:01:46 · 799 阅读 · 1 评论 -
java 面试题
1. hashmap与treemap的区别?2. 什么是ConcurrentHashMap ?3. 多线程有哪些?如何创建?4. JVM怎么分的?5. 堆、栈区的作用?6. gc有几种?分别在什么场景下使用?7. 线程的使用周期?有几种状态?分别是什么?8. RPC机制?9. 排序方式:插入、选择、归并、交换?各排序的时间复杂度?什么情况下为最优?什么情况下为最劣?10. 快排:递归、非递归...原创 2020-12-06 17:49:02 · 114 阅读 · 0 评论 -
Spark 理论简答
1、怎么理解scala里的方法和函数• scala方法用def定义,函数用val定义• scala方法可以和函数进行转换• scala 方法用=>连接方法体,函数用=连接方法体• scala方法是个块,而函数可以认为是个对象,可以传递• scala 函数可以作为method的参数• scala method也可以作为method的参数,表明有隐式转换把方法转换成了function2、Spark的RDD是什么• RDD意思是弹性分布式数据集• RDD有三个重要特性:• 不可变性: 发原创 2020-12-06 09:41:42 · 196 阅读 · 0 评论 -
Spark 面试题
1. 了解shuffle代码2. Spark的优化?3. Task与Job之间的关系4. 任务提交流程(18步图)5. RDD的弹性表现在哪里?6. Transform 类型的RDD与action类型的RDD各有哪些?7. 发生Shuffle的算子有哪些?8. Spark Streaming对应kafka中的三种语义,分别是什么?9. Spark任务提交参数有哪些?(结合项目)10. RDD的特性?11. 写Spark SQL12. Spark跑任务的方式及时间?13. Spark原创 2020-12-03 09:37:55 · 352 阅读 · 0 评论 -
kafka创建Topic的一道面试题
当你使用kafka-topics.sh创建(删除)了一个topic之后,Kafka背后会执行什么逻辑?1)会在zookeeper中的/brokers/topics节点下创建一个新的topic节点,如:/brokers/topics/first2)触发Controller的监听程序3)kafka Controller 负责topic的创建工作,并更新metadata cache对以上内容进行验证,首先启动zookeeper,查看[zk: localhost:2181(CONNECTED) 3] .原创 2020-12-02 20:50:29 · 285 阅读 · 0 评论 -
kafka面试题简答
kafka分区数如何设置?kafka中消息传输一致中的最多一次、最少一次、恰好一次,是如何实现的?Spark Steaming拉取数据,如何实现恰好一次?Spark为什么比Hadoop快?(不止是基于内存,需扩充)kafka为什么会发生数据丢失?Kafka数据丢失了如何解决?Kafka与zookeeper选举机制间的区别?Kafka的组成?kafka为什么快?监控kafka的文件?kafka的数据积压如何解决?Spark Streaming读取kafka数据的方式?kafka的IS.原创 2020-12-02 13:50:39 · 257 阅读 · 0 评论 -
Hbase面试题简要总结
读流程(1) Client访问Zookeeper,获取.META.表信息。(2) 从.META.表查找,获取存放目标数据的Region信息,从而找到对应的RegionServer。(3) 通过RegionServer获取需要查找的数据。(4) Regionserver的内存分为MemStore和BlockCache两部分,MemStore主要用于写数据,BlockCache主要用于读数据。读请求先到MemStore中查数据,查不到就到BlockCache中查,再查不到就会到StoreFile上读,并原创 2020-11-30 15:38:11 · 394 阅读 · 0 评论 -
Hive小文件
小文件是如何产生的1.动态分区插入数据,产生大量的小文件,从而导致map数量剧增。2.reduce数量越多,小文件也越多(reduce的个数和输出文件是对应的)。3.数据源本身就包含大量的小文件。小文件问题的影响1.从Hive的角度看,小文件会开很多map,一个map开一个JVM去执行,所以这些任务的初始化,启动,执行会浪费大量的资源,严重影响性能。2.在HDFS中,每个小文件对象约占150byte,如果小文件过多会占用大量内存。这样NameNode内存容量严重制约了集群的扩展。小文件问题的解原创 2020-11-28 21:31:34 · 786 阅读 · 0 评论 -
hive explode函数入门及其与lateral view的结合
举个例子select collect_list(name) from t_order;结果+------------------------------------------------------------------------------------------------------+|c0原创 2020-11-28 18:01:32 · 221 阅读 · 0 评论 -
Hive面试题整理
行转列、列转行CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字符串;CONCAT_WS(separator, str1, str2,…):它是一个特殊形式的 CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接的字符串之间;COLLECT_SET(col):函数只接受基本数据类型,原创 2020-11-28 17:44:47 · 528 阅读 · 0 评论