首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
疯子又如何
中南财经政法大学 数据分析师
发布于河南
关注
已关注
取消关注
@大数据左右手:
Hive面试简单26问
1. hadoop中两个⼤表实现join的操作,简单描述。(1)Hive中可以通过分区来减少数据量;(2)还可以通过优化HQL语句,⽐如只查询需要的字段,尽量避免全表、全字段查询;2. Hive中存放是什么?表。 存的是和hdfs的映射关系,hive是逻辑上的数据仓库,实际操作的都是hdfs上的⽂ 件,HQL就是⽤sql语法来写的mr程序。3. Hive与关系型数据库的关系?没有关系,hive是数据仓库,不能和数据库⼀样进⾏实时的CURD操作。 是⼀次写⼊多次读取的操作,可以看成是ETL⼯具。4. Hive中的排序关键字有哪些?sort by ,order by ,cluster by ,distribute by(1)sort by :不是全局排序,其在数据进⼊reducer前完成排序(2)order by :会对输⼊做全局排序,因此只有⼀个reducer(多个reducer⽆法保证全局有序).只有⼀个reducer,会导致当输⼊规模较⼤时,需要较⻓的计算时间。(3)cluster by : 当distribute by 和sort by的字段相同时,等同于cluster by.可以看做特殊的distribute + sort(4)distribute by :按照指定的字段对数据进⾏划分输出到不同的reduce中5. ⼤表和⼩表joinMap side join。将⼩表存⼊内存中,将⼩表复制多份,让每个map task内存中保留⼀份(⽐如存放到hash table中),这样只需要扫描⼤表。对于⼤表中的每⼀条记录key/value,在hash table中查找是否有相同的key,如果有,则连接后输出即可。6. 数据清洗怎么做的?怎么⽤spark做数据清洗数据清洗的⽬的是为了保证数据质量,包括数据的完整性、唯⼀性、⼀致性、合法性和权威性。数据清洗的结果是对各种脏数据进⾏对应的处理⽅式,从⽽得到标准的、⼲净的、连续的数据,提供给数据统计和数据挖掘使⽤。解决数据的完整性问题:(1) 通过其他信息不全;(2) 通过前后数据不全;(3) 如果实在⽆法不全,虽然可惜,但是还是要剔除掉进⾏统计。但是没必要删除,后续其他分析可能还需要。解决数据的唯⼀性问题: (1) 根据主键进⾏去除,去除重复数据; (2) 制定⼀系列规则,保证根据某种规则下只保存⼀条数据。解决数据权威性的问题:(1)选择最权威的数据作为统计和挖掘。解决合法性的问题:(1)设定判定规则,通过特定的规则来判断字段或者值来确定数据是否需要被清洗。7. Hadoop中⼆次排序怎么做?在hadoop中⼀般都是按照key进⾏排序的,但是有时候还需要按照value进⾏排序。有两种办法进⾏⼆次排序:buffer and int memory sort和value-to-key conversion。(1)Buffer and in memory sort主要是在reduce()函数中,将每个key对应的value值保存下 来,进⾏排序。但是缺点在于可能会出现out of memory。(2)Value-to-key conversion主要思想是将key和value拼接成⼀个组合key,然后进⾏排序,这样reduce()函数获取的结果就实现了先按照key排序,然后按照value进⾏排序。需要注意的是,⽤户需要⾃⼰实现paritioner,以便只按照key进⾏数据划分。8. hadoop常见的join操作?(1) reduce side join:是最简单的join操作,主要是在reduce端进⾏join操作;(2) Map side join:之所以存在reduce side join,是因为在map端不能获得需要连接的全部的字段。Reduce side join⽐较低效,因为shuffle传输数据需要消耗⼤量的性能。(3) Semijoin:半连接,对于reduce side join,跨机器的数据传输量特别⼤,成为join的⼀个瓶颈。如果能在map端过滤掉不会参加join的数据,那么可以⼤⼤节省⽹络IO。9. hive优化有哪些?(1) 数据存储及压缩。针对hive中表的存储格式通常有orc和parquet,压缩格式⼀般使⽤snappy。相⽐与textfile格式表,orc占有更少的存储。因为hive底层使⽤MR计算架构,数据流是hdfs到磁盘再到hdfs,⽽且会有很多次,所以使⽤orc数据格式和snappy压缩策略可以降低IO读写,还能降低⽹络传输量,这样在⼀定程度上可以节省存储,还能提升hql任务执⾏效率;(2) 通过调参优化。并⾏执⾏,调节parallel参数;调节jvm参数,重⽤jvm;设置map、reduce的参数;开启strict mode模式;关闭推测执⾏设置。(3) 有效地减⼩数据集将⼤表拆分成⼦表;结合使⽤外部表和分区表。(4) SQL优化⼤表对⼤表:尽量减少数据集,可以通过分区表,避免扫描全表或者全字段;⼤表对⼩表:设置⾃动识别⼩表,将⼩表放⼊内存中去执⾏。10. 分析函数?row_number() over(partition by regionX order by nameX desc) as tn 1 93;2 90;3 90 排名是连续的,相同的分数会有排名先后,前100名只有100个rank() over(partiition by regionX order by nameX desc) as tn 1 93;2 90;2 90;4 89 排名不是连续的,相同的分数是同名次,前100名只有100个dense_rank() over() 1 93;2 90;2 90;3 89排名是连续的,相同的分数是同名次,前100名可能多于100个11. 分析下hive数据倾斜问题,有什么解决⽅案?倾斜原因: map输出数据按Key Hash分配到reduce中,由于key分布不均匀、或者业务数据本身的特点。等原因造成的reduce上的数据量差异过⼤。(1)key分布不均匀(2)业务数据本身的特性(3)SQL语句造成数据倾斜解决⽅案:(1)参数调节:hive.map.aggr=truehive.groupby.skewindata=true有数据倾斜的时候进⾏负载均衡,当选项设定为true,⽣成的查询计划会有两个MR Job。第⼀个MR Job中,Map的输出结果集合会随机分布到Reduce中,每个Reduce做部分聚合操作,并输出结果,这样处理的结果是相同GroupBy Key有可能被分发到不同的Reduce中,从⽽达到负载均衡的⽬的;第⼆个MR Job在根据预处理的数据结果按照Group By Key 分布到Reduce中(这个过程可以保证相同的 Group By Key 被分布到同⼀个Reduce中),最后完成最终的聚合操作。(2)SQL语句调节: 1)选⽤join key 分布最均匀的表作为驱动表。做好列裁剪和filter操作,以达到两表join的时候,数据量相对变⼩的效果。 2)⼤⼩表Join: 使⽤map join让⼩的维度表(1000条以下的记录条数)先进内存。在Map端完成Reduce。 3)⼤表Join⼤表:把空值的Key变成⼀个字符串加上⼀个随机数,把倾斜的数据分到不同的reduce上,由于null值关联不上,处理后并不影响最终的结果。 4)count distinct⼤量相同特殊值:count distinct时,将值为空的情况单独处理,如果是计算count distinct,可以不⽤处理,直接过滤,在做后结果中加1。如果还有其他计算,需要进⾏group by,可以先将值为空的记录单独处理,再和其他计算结果进⾏union.12. 请说明hive中 sort by ,order by ,cluster by ,distribute by各代表什么意思?order by :会对输⼊做全局排序,因此只有⼀个reducer(多个reducer⽆法保证全局有序).只有⼀个reducer,会导致当输⼊规模较⼤时,需要较⻓的计算时间。sort by :不是全局排序,其在数据进⼊reducer前完成排序distribute by :按照指定的字段对数据进⾏划分输出到不同的reduce中cluster by :除了具有distribute by 的功能外还兼具sort by 的功能13. 描述数据中的null,在hive底层如何存储?null在hive底层默认是⽤"\N"来存储的,所以在sqoop到mysql之前需要将为null的数据加⼯成其他字符,否则sqoop提示错误14. Hive中 split、coalesce以及collect_list函数的⽤法?split将字符串转化为数组coalesce(T v1,T v2,...) 返回参数中的第⼀个⾮空值;如果所有值都为null,那么返回nullcollect_list列出该字段所有的值,不去重 select collect_list(id) from table;15. 如何将⽂件导⼊到hive表中?load data local inpath '/a.txt' overwrite into table test partition(xx='xx')16. Hive的排序分组⽅式?row_number() 是没有重复值的排序(即使两天记录相等也是不重复的),可以利⽤它来实现分⻚dense_rank() 是连续排序,两个第⼆名仍然跟着第三名rank() 是跳跃排序的,两个第⼆名下来就是第四名17. 请把下⼀语句⽤hive⽅式实现?SELECT a.key,a.valueFROM aWHERE a.key not in (SELECT b.key FROM b)答案:select a.key,a.value from a where a.key not exists (select b.key from b)18. Hive内外部表的区别删除表是否影响外部数据 内部表影响,外部表不影响19. Hive如何做到权限管理hive下可以修改配置后创建⽤户管理,但是仅仅是为了防⽌误操⽽已,如果要真的为了安全操作建议使⽤Kerberos(和Hadoop相同)20. 说说对桶表的理解对数据的细化 取模分开存储数据,提⾼查询效率21. hive有哪些保存元数据的⽅式,有什么特点(1)Single User Mode:默认安装hive,hive是使⽤derby内存数据库保存hive的元数据,这样是不可以并发调⽤hive的,这种模式时hive默认的存储模式。(2)Multi User Mode:通过⽹络连接到⼀个数据库中,是最经常使⽤到的模式。假设使⽤本机mysql服务器存储元数据。这种存储⽅式需要在本地运⾏⼀个mysql服务器,并作如下配置(需要将mysql的jar包拷⻉到$HIVE_HOME/lib⽬录下)。(3)Remote Server Mode:在服务器端启动⼀个 MetaStoreServer,客户端利⽤ Thrift 协议通过 MetaStoreServer 访问元数据库。22. hive能建多个库吗可以23. 请谈⼀下hive的特点是什么?hive和RDBMS有什么异同?hive是基于Hadoop的⼀个数据仓库⼯具,可以将结构化的数据⽂件映射为⼀张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进⾏运⾏。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专⻔的MapReduce应⽤,⼗分适合数据仓库的统计分析。24. hive 是如何实现分区的?(1)建表语句: create table tablename (id) partitioned by (dt string)(2)增加分区: alter table tablenname add partition (dt = ‘2016-03-06’)(3)删除分区: alter table tablename drop partition (dt = ‘2016-03-06’)25. hive 相对于 Oracle 来说有那些优点?(1)存储,hive 存储在 hdfs 上,oracle 存储在本地⽂件系统。(2)扩展性,hive 可以扩展到数千节点,oracle 理论上只可扩展到 100 台左右。(3)单表存储,数据量⼤ hive 可以分区分桶,oracle 数据量⼤只能分表。26. Hive 的 sort by 和 order by 的区别!(1)order by 会对输⼊数据做全局排序,只有⼀个 reduce,数据量较⼤时,很慢。(2)sort by 不是全局排序,只能保证每个 reduce 有序,不能保证全局有序,需设置mapred.reduce.tasks>1。
点赞 4
评论 1
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
05-08 21:05
海康威视_技术支持部_云存储开发工程师(准入职员工)
海康威视内推-海康威视内推码
真实工作体验!【工作时间】 海康实行弹性工作制,一般九点半之前到公司就可以。对于实习生来说,一般只要打够八个半小时的卡就好了。这点还是不错的,早点上班就可以早点下班。正式工可能需要大小周,具体看部门要求。实习生应该都是双休的,不过周末去的话也会给你发工资。中午休息一个半小时,大部分员工都会自己买午休床。 【公司环境】 实习报到的时候会给你分配一台电脑,一般都是无盘机,配置很普通,不允许自己带电脑。海康对网络管控比较严格,很多网站不能访问。想要访问外网的话只能通过虚拟机,然后通过公司内部的文件传输工具传到红网,这点还是比较麻烦的。 海康食堂还行,样式挺丰富的,价格也不贵。早餐我一般在5-10...
海康威视公司福利 327人发布
点赞
评论
收藏
分享
05-11 12:03
华中科技大学 游戏运营
最熟悉的陌生人莫过于和室友在同一场群面
想当年校招真的面了很多试,所以也碰上了各种各样、奇奇怪怪的事,最好笑的就是和相亲相爱的室友在同一场群面遇上了,还要疯狂装不熟,给我憋笑得难受哈哈哈哈 故事的开始是我点进一场群面线上会议,在茫茫竞争者中看到了和我一样的学校前缀。再往后看,这不是我亲爱的室友的名字嘛!再看脸!这不就是我亲爱的室友本人嘛!她看起来好像在开小差,但又好像发现了什么。我迅速低头划手机认亲👇别问为什么群面还能玩手机,因为我俩都并不想去这个公司(走下坡路的传统行业),就当面试练手了。但暴露我俩同居两年的关系也不太好,以免有被认为作弊和拉帮结派的风险,室友大义凌然地说道:但是我们自我介绍的学校和专业都是一样的哇!不过别人就算...
你也爱听富士山下吗:
好好笑,之前我做家教兼职的时候和室友找了一样的机构,时间还约在前后脚(因为我们课程一样的空闲时间也一样),结果刚面试完不久,室友那边也开始面试了,结果她还忘记关公放麦了,我从她的电脑里听到了刚才面试官的声音啊啊啊啊
职场碎碎念
牛友故事会
牛客激励计划
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
05-01 13:13
就业率已经废了
已经炸了
ecece:
这么明目张胆虚报就业率啊
点赞
评论
收藏
分享
04-18 09:01
已编辑
字节跳动_客服平台_前端开发(准入职员工)
第一个offer,开始休息了
咦哟,从去年八月份开始长跑,两处实习转正都失败了,风雨飘摇,终于拿到offer了更新一下面试记录:秋招:多部门反复面试然后挂掉然后复活,具体问了啥已经忘了,只是被反复煎炸,直至焦香😋春招:base北京抖音hr打来电话说再次复活,准备面试,gogogo北京抖音一面:六道笔试题:1.promise顺序2.定义域问题3.flat展开4.并发请求5.岛屿数量算法(力扣)深度,广度都写6.忘记了,好像也是算法,难度中等其他问题多是框架底层设计,实习项目重难点~~~秒过😇北京抖音二面:三道笔试题:(为什么只有三道是因为第三道没做出来,卡住了)1.中等难度算法(忘记啥题了,应该是个数组的)2.认识js的继承本质(手写继承模式,深入js的面相对象开发)3.手写vue的响应式(卡在了watch,导致挂掉)---后知后觉是我的注册副作用函数写得有问题,有点紧张了其他题目多是项目拷打,项目亮点,对实习项目的贡献~~~第二天,挂,but立马复活转战深圳客服当天约面深圳客服一面:六道笔试题,由于面过太多次字节,面试官叫我直接写,不用讲,快些写完😋,具体都是些继承,深拷贝(注意对数组对象分开处理,深层次对象,循环引用),加中等难度算法题~~~秒过深圳客服二面:口诉八股大战:大概囊括网络,浏览器渲染原理,动画优化,时间循环,任务队列等等(你能想到的简单八股通通拉出来鞭尸😋)算法题:笔试题6道:1:找出数组内重复的数,arr[0]-arr[n]内的数大小为[1-n],例如[1,2,2,3,3]返回[2,3],要求o(n),且不使用任何额外空间(做到了o(n),空间方面欠佳,给面试官说进入下一题,做不来了)2:原滋原味的继承(所以继承真滴很重要)3:力扣股票购买时机难度中等其他滴也忘记了,因为拿到offer后鼠鼠一下子就落地了,脑子自动过滤掉可能会攻击鼠鼠的记忆😷~~~秒过深圳客服三面:项目大战参与战斗的人员有:成员1:表单封装及其底层原理,使用成本的优化,声明式表单成员2:公司内部库生命周期管理成员3:第三方库和内部库冲突如何源码断点调试并打补丁解决成员4:埋点的艺术成员5:线上项目捷报频传如何查出内鬼成员6:大文件分片的风流趣事成员7:设计模式对对碰成员8:我构建hooks应对经理的新增的小需求的故事可能项目回答的比较流利,笔试题3道,都很简单,相信大家应该都可以手拿把掐😇~~~过过过无hr面后续煎熬等待几天直接hr打电话发offer了,希望大家也可以拿到自己心仪的offer
法力无边年:
牛哇,你真是准备得充分,我对你没有嫉妒,都是实打实付出
,
查看19道真题和解析
点赞
评论
收藏
分享
05-12 17:10
中国科学技术大学 前端开发其它
写代码的真实情况
复制粘贴骂ai!
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
学院本27届如何找到实习的一点点经验
1.3W
2
...
大二双非非科班成功拿下字节offer
1.3W
3
...
💬救命!原来被AI整破防了是这种感觉...
1.2W
4
...
那些在焦虑里种下的希望,终于在大厂 offer 里开了花
1.1W
5
...
面试时反问这些显得很有"水平"
1.1W
6
...
二战学校领导,**学校是人 ?阿里子公司不让去实习?
1.1W
7
...
滴滴秋储 oc
1.0W
8
...
从过来人视角告诉你,你不会找不到工作
8100
9
...
为什么我怎么选都是错的
7029
10
...
主包发现妈妈在玩xhs后
6079
创作者周榜
更多
正在热议
更多
#
一人一个landing小技巧
#
3868次浏览
74人参与
#
安利/避雷我的专业
#
68397次浏览
500人参与
#
京东TGT
#
56798次浏览
192人参与
#
面试问题记录
#
79679次浏览
1102人参与
#
选完offer后,你后悔学本专业吗
#
40140次浏览
219人参与
#
牛油的搬砖plog
#
789次浏览
13人参与
#
工作中,你有没有遇到非常爱骂人的领导?
#
22345次浏览
149人参与
#
面试经验谈
#
56975次浏览
914人参与
#
上班到公司第一件事做什么?
#
42669次浏览
390人参与
#
技术转行的心路历程
#
49769次浏览
665人参与
#
找工作的破防时刻
#
3730次浏览
44人参与
#
求职季如何保持心态不崩
#
109970次浏览
907人参与
#
工作时那些社死瞬间
#
27883次浏览
201人参与
#
实习生应该准时下班吗
#
205441次浏览
1337人参与
#
互联网行业现在还值得去吗
#
8633次浏览
42人参与
#
你觉得技术面多长时间合理?
#
88534次浏览
647人参与
#
硬件人的简历怎么写
#
259567次浏览
2905人参与
#
工作一周年分享
#
21414次浏览
113人参与
#
拼多多工作体验
#
19113次浏览
153人参与
#
面试吐槽bot
#
20756次浏览
112人参与
#
你遇到过哪些神仙同事
#
77385次浏览
668人参与
牛客网
牛客企业服务