大数据岗位校招Hive面试总结

Hadoop 面经传送门:大数据岗位校招Hadoop面试总结

Spark 面经传送门:大数据岗位校招Spark面试总结

1、Hive的SQL语句如何转换为MR任务?

  1. HiveSQL通过SQL Parser,完成SQL词法,语法解析,将SQL转化为抽象语法树(AST);
  2. 遍历AST,进行Analyzer语义分析,抽象出查询的基本组成单元QueryBlock(QB);
  3. 生成逻辑执行计划:遍历QueryBlock,翻译为执行操作树Operator Tree(每一个Operator对一行数据完成操作后之后将数据传递给childOperator计算);
  4. 优化逻辑执行计划:逻辑层优化器进行OperatorTree变换,合并不必要的操作符,减少shuffle数据量,得到优化后的操作树;
  5. 生成物理执行计划:遍历OperatorTree,翻译为MapReduce任务
  6. 优化物理执行计划:物理层优化器进行MapReduce任务的变换,生成最终的执行计划

2、Hive中有哪些文件类型

  1. TextFile:默认格式,行存储,每一行都是一条记录。数据不做压缩,磁盘开销大,数据解析开销大,存储空间消耗比较大。可结合Gzip、Bzip2使用,但使用这种方式,hive不会对数据进行切分,从而无法对数据进行并行操作。可以直接存储,加载数据的速度最高,查询的效率最低
  2. Sequence File:包含键值对的二进制文件,行存储,可分割、可压缩,支持三种压缩选择:NONE, RECORD(记录级), BLOCK(块级压缩),Record压缩率低,一般使用BLOCK,存储空间消耗最大,查询效率高,需要通过text文件转化来加载
  3. RCFile:数据按行分块 每块按照列存储,保证同一个record在一个块上,避免读一个记录需要读取多个block,块数据列式存储,有利于数据压缩和快速的列存取。存储空间最小,查询的效率最高 ,需要通过text文件转化来加载,加载的速度最低
  4. AVRO:开源项目,为Hadoop提供数据序列化和数据交换服务,Avro是基于大数据Hadoop的应用程序中流行的文件格式之一
  5. ORC:数据按行分块,每块按照列存储,压缩快,快速列存取,效率比rcfile高,是rcfile的改良版本
  6. Parquet:面向列的二进制文件格式,相对于ORC,Parquet压缩比较低,查询效率较低,支持Impala查询引擎,对于扫描特定表格中的特定列的查询,Parquet特别有用

3、几种join的区别

  1. inner join:只有连接的两个表中都存在与连接标准相匹配的数据才会保留下来
  2. left outer join:左边表全返回,右边表没匹配的返回null
  3. right outer join:同上
  4. full outer join:(完全外连接)会返回所有表中符合where筛选条件的记录
  5. left semi join:(左半开连接)返回左表的记录,其记录对于右表满足on的筛选条件(可替代in)
  6. cross join(不指定连接条件的join):笛卡尔积join
  7. map join:小表join大表,小表在左边,大表右边,将小表读入内存,在map端jo
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值