揭秘hive常见面试题(二)-20道
1你们数据库怎么导入 hive 的,有没有出现问题
使用 sqoop 导入,我们公司的数据库中设计了 text 字段,导致导入的时候出现了缓存
不够的情况(见云笔记),开始解决起来感觉很棘手,后来查看了 sqoop 的文档,加上
了 limit 属性,解决了
2Redis,传统数据库,hbase,hive 每个之间的区别(问的非常细)
Redis 是缓存,围绕着内存和缓存说
Hbase 是列式数据库,存在 hdfs 上,围绕着数据量来说
Hive 是数据仓库,是用来分析数据的,不是增删改查数据的。
3Hive 你们用的是外部表还是内部表,有没有写过 UDF,hive 的版本外部表,udf,udaf 等,hive 版本为 1.0
4.hive partition 分区分区表,动态分区
5.insert into 和 override write 区别?
insert into:将某一张表中的数据写到另一张表中
override write:覆盖之前的内容。
6.假如一个分区的数据主部错误怎么通过 hivesql 删除 hdfs
alter table ptable drop partition (daytime='20140911',city='bj');
元数据,数据文件都删除,但目录 daytime= 20140911 还在
7.请简述一下 Hadoop/MapReduce, Spark , Strom , Hive 的特点及适用场景?
Hadoop :是一种分布式系统基础架构当处理海量数据的程序,开始要求高可靠、高扩展、
高效、低容错、低成本的场景
MapReduce: MapReduce 是一种编程模型,用于大规模数据集(大于 1TB)的并行运算。
MapReduce 的典型应用场景中,目前日志分析用的比较多,还有做搜素的索引,
机器学习算法包 mahout 也是之一,当然它能做的东西还有很多,比如数据掘、
信息提取。
Spark:拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。数据过于繁杂,并且需要让计算通过迭代,并在内存中,极大地提高效率的场景
Strom:一个分布式实时计算系统,Storm 是一个任务并行连续计算引擎。 Storm 本身并不
典型在 Hadoop 集群上运行,它使用 Apache ZooKeeper 的和自己的主/从工作进程,协调拓扑,主机和工作者状态,保证信息的语义。无论如何, Storm 必定还是可以从 HDFS 文件消费或者从文件写入到 HDFS。
Hive:基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,
并提供简单的 sql 查询功能,可以将 sql 语句转换为 MapReduce 任务进行运行。
应用场景:十分适合数据仓库的统计分析。
Hbase:应用场景: 数据量太大,以至于传统 RDBMS 无法胜任、联机业务功能开发、离线数据分析(数据仓库),
8.Hive 的条件判断有几种?
hive 的条件判断(if、coalesce、case)
9.hive 和 hbase 方法:项目中采集的哪些指标,
10.你们提交的 job 任务大概有多少个?这些 job 执行完大概用多少时间?(面试了三家,都问这个问题)
每天六百个,2,3 个小时。
11.你在项目中主要的工作任务是?
利用 hive 分析数据
12.一个网络商城
- 1.1天大概产生多少 G 的日志?大概有多少条日志记录(在不清洗的情况下)?一个网络商城 1 天大概产生多少 G 的日志? 4tb
- 2.大概有多少条日志记录(在不清洗的情况下)? 7-8 百万条
- 3.日访问量大概有多少个? 百万
- 4.注册数大概多少? 不清楚 几十万吧
- 5.我们的日志是不是除了 apache 的访问日志是不是还有其他的日志?
- 6.假设我们有其他的日志是不是可以对这个日志有其他的业务分析?这些业务分析有什么
13.你认为用 java,streaming,pipe 方式开发 map/reduce ,各有哪些优点就用过 java 和 hiveQL。
Java 写 mapreduce 可以实现复杂的逻辑,如果需求简单,则显得繁琐。HiveQL 基本都是针对 hive 中的表数据进行编写,但对复杂的逻辑很难进行实现。写起来简单。
14.hive 有哪些方式保存元数据,各有哪些优点
三种:内存数据库 derby,挺小,不常用 。本地 mysql。。常用远程端 mysql。。不常用上网上找了下专业名称:single user mode..multi user mode...remote user mode
15.hive 内部表和外部表的区别
Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径, 不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除, 而外部表只删除元数据,不删除数据。这样外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据。
16.hive 底层与数据库交互原理
hive 有一套自己的 sql 解析引擎,称为 metastore,存储在 mysql 或者 derby 数据库中,可以将 sql 语句转化为 mapreducejob 任务执行。
文章来源: www.jianshu.com,作者:百忍成金的虚竹,版权归原作者所有,如需转载,请联系作者。
原文链接:www.jianshu.com/p/1ce2cbfeeed5
- 点赞
- 收藏
- 关注作者
评论(0)