首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
大数据的奇妙冒险
大数据开发工程师
关注
已关注
取消关注
本人于2024年3月5日22点20分更新此篇文章,请各位审阅,望周知
@大数据的奇妙冒险:
大数据开发面试题之Hive篇
hive的架构hive外部表和内部表的区别内部表的数据由hive管理,且存储在hive.metastore.warehouse.dir配置下的路径中;外部表的数据由HDFS存储,路径可以自己指定;删除表时,内部表会把元数据及真实数据删除;外部表不删除真实数据。你用过hive哪些窗口函数可参考:面试官:你用过哪些窗口函数一般用什么文件格式可参考:面试官:“你们实际生产中hive用什么文件格式和压缩方式”Hive中order by,sort by,distribute by和cluster by的区别1、order by:对数据进行全局排序,只有一个reduce工作2、sort by:在数据进入reduce前完成排序,一般和distribute by使用,且distribute by写在sort by前面。当mapred.reduce.tasks=1时,效果和order by一样3、distribute by:类似MR的Partition,对key进行分区,结合sort by实现分区排序4、cluster by:当distribute by和sort by的字段相同时,可以使用cluster by代替,但cluster by只能是升序,不能指定排序规则。说下对Hive桶的理解?桶是对数据某个字段进行哈希取值,然后放到不同文件中存储。数据加载到桶表时,会对字段取hash值,然后与桶的数量取模。把数据放到对应的文件中。物理上,每个桶就是表(或分区)目录里的一个文件,一个作业产生的桶(输出文件)和reduce任务个数相同。为什么要使用 Hive? hive 的优缺点?Hive的作用是什么?这几个问题比较类似,实际上就是要你回答 hive 的特点:提供类SQL查询,容易上手,开发方便;封装了很多方法,尽量避免了开发MapReduce程序,减少成本;适用于处理大规模数据,小数据的处理没有优势;执行延迟较高,适合用于数据分析,不适合对时效性要求较高的场景。说下Hive是什么? 跟数据库区别?hive 是用于大数据分析处理的工具,存储基于 HDFS,计算基于 MapReduce 或 Spark,提供类 SQL 查询。hive 除了可以通过类 SQL 查询这一点和数据库有点关系外,其它基本没啥关联。数据库支持事务,可读可写;而hive一般不支持事务(高版本除外),一般用于读多写少的情况,不建议改动数据,因为数据存储在HDFS中,而HDFS的文件不支持修改;hive延迟比较大,因其底层是MapReduce,执行效率较慢。但当数据规模较大的情况下,hive的并行计算优势就体现出来了,数据库的效率就不如hive了;hive不支持索引,查询的时候是全表扫描,这也是其延迟大的原因之一。Hive内部表和外部表的区别?外部表在建表的时候需要加关键字 EXTERNAL;创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径, 不对数据的位置做任何改变;删除内部表会直接删除元数据【metadata】及存储数据,删除外部表仅仅删除元数据,HDFS上的文件不会被删除;内部表数据存储在hive.metastore.warehouse.dir【默认:/user/hive/warehouse】,外部表数据存储位置由用户自己决定。Hive建表语句CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name[(col_name data_type [COMMENT col_comment], ...)][COMMENT table_comment][PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)][CLUSTERED BY (col_name, col_name, ...)[SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS][ROW FORMAT row_format][STORED AS file_format][LOCATION hdfs_path][TBLPROPERTIES (property_name=property_value, ...)][AS select_statement | like⑩ table_name]Hive数据倾斜以及解决方案参考:浅谈数据倾斜的原因及解决办法Hive的三种自定义函数是什么?它们之间的区别是什么?UDF:用户自定义函数,user defined function。一对一的输入输出。UDTF:用户自定义表生成函数。user defined table-generate function.一对多的输入输出。UDAF:用户自定义聚合函数。user defined aggregate function,多对一的输入输出比如count sum等。Hive分区和分桶的区别分区针对的是数据的存储路径;分桶针对的是数据文件。参考:hive从入门到放弃(四)——分区和分桶Hive的执行流程1.(执行查询操作)Execute Query命令行或Web UI之类的Hive接口将查询发送给Driver(任何数据库驱动程序,如JDBC、ODBC等)以执行。2.(获取计划任务)Get PlanDriver借助查询编译器解析查询,检查语法和查询计划或查询需求3.(获取元数据信息)Get Metadata编译器将元数据请求发送到Metastore(任何数据库)。4.(发送元数据)Send MetadataMetastore将元数据作为对编译器的响应发送出去。5.(发送计划任务)Send Plan编译器检查需求并将计划重新发送给Driver。到目前为止,查询的解析和编译已经完成6.(执行计划任务)Execute PlanDriver将执行计划发送到执行引擎。7.(执行Job任务)Execute Job在内部,执行任务的过程是MapReduce Job。执行引擎将Job发送到ResourceManager,ResourceManager位于Name节点中,并将job分配给datanode中的NodeManager。在这里,查询执行MapReduce任务.7.1.(元数据操作)Metadata Ops在执行的同时,执行引擎可以使用Metastore执行元数据操作。8.(拉取结果集)Fetch Result执行引擎将从datanode上获取结果集;9.(发送结果集至driver)Send Results执行引擎将这些结果值发送给Driver。10.(driver将result发送至interface)Send ResultsDriver将结果发送到Hive接口Hive SQL优化处理优先过滤,过滤后的结果集再进行处理;count(distinct) 改成 sum + group by 的组合;大小表注意 MapJoin;使用分区;注意数据倾斜相关的问题,可参考:Hive的存储引擎和计算引擎存储:HDFS; 计算引擎:MR 或 SparkHive的文件存储格式都有哪些?参考:hive从入门到放弃(五)——数据存储格式介绍下知道的Hive窗口函数,举一些例子参考:通俗易懂:窗口函数 | 全是案例Hive的union和union all的区别?Union:将多个结果合并为一个,且结果去重且排序Union all:将多个结果合并为一个,且结果不去重不排序Hive的join操作原理?在 Map 阶段将 on 的字段设为 key,然后将选择的字段集作为 value; 在 Reduce 阶段将相同 key 值的数据分发到同一个 Reducer。Hive如何优化join操作若有大量 null key,则过滤掉或者赋随机值;若大小表 join,可使用 MapJoin;若两张大表 join ,可将倾斜的 key 过滤出来单独 join,则会分散到多个 task 进行 join 操作,最后再进行 unionHive的mapjoinmapjoin 会将小表数据加载到内存中,在 Map 阶段完成 join 操作。Hive有哪些保存元数据的方式,都有什么特点? 内嵌模式:将元数据保存在本地内嵌的derby数据库中,内嵌的derby数据库每次只能访问一个数据文件,也就意味着它不支持多会话连接。 本地模式:将元数据保存在本地独立的数据库中(一般是mysql),这可以支持多会话连接。 远程模式:把元数据保存在远程独立的mysql数据库中,避免每个客户端都去安装mysql数据库。 内存数据库derby,占用空间小,但是数据存于内存,不稳定;mysql数据库,数据存储模式可自己设置,持久化好,查看方便。Hive SOL实现查询用户连续登陆,讲讲思路参考:面试官:“如何用 SQL 查询每个用户最大连续登录日期?”row_number,rank,dense_rank的区别row_number 表示行数,每行都是前面基础加1;rank 是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)dense_rank 是连续排序,有两个第二名时仍接下来即使第三名。Hive count(distinct)有几个reducer,海量数据会有什么问题如果没有 group by 就是一个 Reducer,海量数据用一个reducer执行效率过慢,甚至造成内存溢出。开窗函数中加Order By和不加Order By的区别?当为排序函数,如row_number(),rank()等时,over中的order by只起到窗口内排序作用。当为聚合函数,如max,min,count等时,over中的order by不仅起到窗口内排序,还起到窗口内从当前行到之前所有行的聚合,不加则整个分区聚合。parquet文件优势可参考:hive从入门到放弃(五)——数据存储格式Hive里metastore是干嘛的?客户端连接 metastore,metastore 再去连接 MySQL 存取元数据。使得多个客户端可以同时连接,且这些客户端无需知道 MySQL 数据库的用户名密码,只需连接 metastore 服务即可。以上的 hive 篇先总结到这,如果觉得文章对你有帮助,可以点个小赞加收藏。如果有误,欢迎大家指正,谢谢!
点赞 7
评论 2
大数据学习交流
全部评论
推荐
最新
楼层
滴滴
校招火热招聘中
官网直投
相关推荐
下午吃泡馍
04-24 15:38
科锐国际_HR
关于OD你需要知道的(转载,欢迎交流)
华为OD说说我的了解,欢迎大家讨论(大家可以讲你真实知道的事情,不要用一些听说、猜测的事情来质疑 ),欢迎大家提问,也欢迎大家投递。华为员工,每年增加15000人左右,补充途径只有3种:1、校招8000人,难度中,22届毕业生特别多,其他大厂招的少,难度大了许多;2、OD转华为6000人,难度低,社招,工作内容、强度与华为员工一样,薪资待遇也基本一致;3、17级以上社招,难度高,简历筛选要求高,面试难度大,有大厂经历的可以走这条路,薪资待遇还是可以匹配的。华为OD是什么:OD。全称(Outsourcing Dispacth)模式,目前华为和德科联合招聘的简称。目前华为社招大多数是OD招聘,17...
投递网易有道等公司10个岗位 >
软件开发薪资爆料
点赞
评论
收藏
转发
fireflies2000
04-26 14:54
已编辑
西安交通大学 计算机类
25届0offer鼠鼠道心快要破碎了
简单记录一下求职进度吧美团平台java后端:笔试 5/5 第一次二面排序挂、第二次二面直接挂、4.22第三次二面至今无消息小红书社区技术-java后端:笔试3/3 4.16一面后无消息pdd服务端:笔试4/4 4.20一面 4.25二面华为-通用软件开发:免笔试 4.26一面携程:笔试4/4 尚未约面饿了么:笔试没做 4.23一面后无消息(疑似KPI)腾讯云:笔试没做 4.17一面后10分钟接着挂简历挂:快手、高德地图无实习选手真的找不到暑期实习吗,虽然希望很小,但还是期待能拿个offer啊4/26 更新:团子offer了,我是团孝子!
投递快手等公司10个岗位 >
点赞
评论
收藏
转发
ZH752
03-21 16:14
哈尔滨工业大学 机械类
机械是不是没有希望了
麻烦各位uu帮忙看看这简历都能找什么实习啊,现在投了好几个一个消息都没有😭
点赞
评论
收藏
转发
牛客周周
04-25 11:07
已编辑
周周
4.25校招&实习招聘信息汇总
周周过往帖子大合集,值得收藏噢~👇https://www.nowcoder.com/discuss/602105195807449088牛牛小技巧进入校招日程从职位,行业,城市,企业性质等多维度挑选自己心仪的岗位吧随时更新,更新更多更全校招信息https://www.nowcoder.com/link/zzxxrc2【科大讯飞、蓝月亮、燕京啤酒、字节......正在热招!!!赶紧投!!!】校招批次1、星环科技春招岗位:自然语言处理工程师、数据库开发工程师、前端开发、后端开发、技术支持工程师、数据开发、业务咨询顾问等投递链接:htt...
投递联易融等公司9个岗位 >
2024年校招与实习信息...
点赞
评论
收藏
转发
点赞
收藏
评论
分享
回复帖子
全站热榜
1
...
外卖员面试经验
1.1W
2
...
25届第一份实习怎么找?
1.0W
3
...
腾讯后台开发一面4.26
9482
4
...
哭了!被美团顶级高管拷打麻了
9475
5
...
华为暑期实习
7406
6
...
美团毁约会被拉黑吗?
5636
7
...
4.24华为暑期实习技术面+主管面
5480
8
...
4.27美团笔试
5204
9
...
失败总是贯穿人生始终
5098
10
...
网易雷火笔试0428
4317
正在热议
#
牛客帮帮团来啦!有问必答
#
385308次浏览
7653人参与
#
如何看待offer收割机的行为
#
191177次浏览
2960人参与
#
春招别灰心,我们一人来一句鼓励
#
20191次浏览
300人参与
#
无实习如何秋招上岸
#
170378次浏览
2695人参与
#
如何一边实习一边秋招
#
199210次浏览
3972人参与
#
硬件人的春招flag
#
14426次浏览
199人参与
#
晒一晒我的offer
#
2804939次浏览
49755人参与
#
非技术岗薪资爆料
#
7076次浏览
135人参与
#
你更愿意参加线上面试还是线下面试?
#
6590次浏览
91人参与
#
华为求职进展汇总
#
439362次浏览
4418人参与
#
第一次面试
#
15840次浏览
240人参与
#
牛友的五一计划
#
4910次浏览
152人参与
#
在国企工作的人,躺平了吗?
#
71897次浏览
872人参与
#
简历中的项目经历要怎么写
#
378813次浏览
6369人参与
#
通信硬件薪资爆料
#
145702次浏览
1093人参与
#
来聊聊机械薪资天花板是哪家
#
21037次浏览
167人参与
#
机械人怎么评价今年的华为
#
54256次浏览
444人参与
#
应届生应该先就业还是先择业
#
12187次浏览
114人参与
#
如果校招重来我最想改变的是
#
71776次浏览
1384人参与
#
租房前辈的忠告
#
20926次浏览
1657人参与
牛客网
牛客企业服务