面试题总结

分桶表和分区表的区别

(bucket)桶
分区表可以通过load data into table 导入数据,分区表分区后根据分区字段作为where 条件查询效率会提高,分区表是多个文件夹构成,每个文件夹代表一个分区
分桶表通过创建一个与其相似的临时表,将数据导入临时表后,再通过insert into 分桶表 select * from 临时表将数据装载到分桶表

内部表和外部表的区别

内部表在删除的时候,删除的为元数据信息(表结构)和数据一起删除,内部表由hive自身管理
外部表创建时要加external关键字,内部表不用,默认创建表为内部表。外部表删除时只删除元数据信息(表结构)不删除数据,因为外部表是由hdfs管理
如何查看表是内部表还是外部表:
desc formatted tablename;
内部表通常用来存储分析结果
外部表通常用来存储外部导入的数据源

hive和RDBMS区别

hive是基于hadoop的一个数仓工具,可以将HDFS上结构化的数据映射成一张数据表,并且提供完整的sql查询功能,可以将sql语句转换为mapReduce运行,可以通过类sql快速实现简单的mapreduce统计。
hive只支持数据读和添加,不支持事务,hive返回结果延迟高,子查询只能在from中,但是可扩展性高,数据规模大。

HIVE自定义UDF函数的流程

  1. 写一个类继承(org.apache.hadoop.hive.ql).UDF类

  2. 覆盖方法evaluate();

  3. 打jar包

  4. 通过hive命令将jar包添加到hive的类路径:
    add jar 路径

  5. 注册函数:
    create temporary function xxx as ‘XXX’;

  6. 使用函数

Hive架构

用户接口层 有CLI,JDBC/ODBC, WEBUI 访问HIVE
MetaStore 元数据存储,将元数据存储在RDMS,有三种:内嵌式元存储服务器,本地原存储服务器和远程元存储服务器。
Driver 完成对HQL的编译,词义分析语义分析,优化,以及生成查询计划,存在HDFS上,并由MR调用执行

谈谈你对hive的理解

hive是一个基于hadoop用户海量结构化数据的统计的数据仓库,提供类Sql语句查询,HQL。
hive实质上就是把HQL语句转换为MR程序的一个工具

谈谈你对Hbase的理解

Hbase是一个基于hadoop的hdfs存储的一个列族数据库,Hbase主要用于存储非结构化和半结构化的数据,Hbase存储数据类型单一,都是以字符串的形式存数据,而且Hbase的列是稀疏列,就是值为null的实际上不存储,Hbase的一个表由rowKey,时间戳和列族组成,每次更新数据时间戳会更新,所以hbase的数据有多个版本

图的深度搜素思想

遍历一个分支到末端,然后回溯,再遍历其他分支,直到全部遍历完

图的广度搜索思想

以一个点作为顶点,搜索与他相邻的点,再以这些点作为顶点,继续搜索相邻的点,直到遍历

更新中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值