HIve面试题(一)

1. Hive 有哪些方式保存元数据,各有哪些特点。

  自身带的一个数据库derby
  也可以将原数据库设置为MYSQL

2. Hive内部表和外部表的区别

 1、在导入数据到外部表,数据并没有移动到自己的数据仓库目录下,也就是说外部表中的数据并不是由它自己来管理的,而是由!而内部表是由hive本身管理的;
 2、在删除表的时候,Hive将会把属于表的元数据和数据全部删掉;而删除外部表的时候,Hive仅仅删除外部表的元数据,数据是不会删除的!

3.hql是怎么转换成MapReduce的
HIve面试题(一)_第1张图片

4.hive如何调优

1.join优化,尽量将小表放在join的左边,如果一个表很小可以采用mapjoin;
2.排序优化,order by 一个reduce效率低,distirbute by +sort by 也可以实现全局排序;
3.使用分区,查询时可减少数据的检索,从而节省时间。
hive最终都会转化为mapreduce的job来运行,要想hive调优,实际上就是mapreduce调优,可以有下面几个方面的调优:解决收据倾斜问题,减少job数量,设置合理的map和reduce个数,对小文件进行合并,优化时把我整体,单个task最优不如整体最优,按照一定规则分区。

5.hive 如何权限控制

Hive的权限需要在hive-site.xml文件中设置才会起作用,配置默认的是false。需要把hive.security.authorization.enabled设置为true,并对不同的用户设置不同的权限,例如select ,drop等的操作

6.hive能像关系数据库那样,建多个库吗?

当然可以建立多个库,多库多表都支持。

7.hive的物理模型跟传统数据库有何不同?

1、数据存储位置。Hive是建立在Hadoop之上的,所有的Hive的数据都是存储在HDFS中的。而数据库则可以将数据保存在块设备或本地文件系统中。

2、数据格式。Hive中没有定义专门的数据格式,由用户指定,需要指定三个属性:列分隔符,行分隔符,以及读取文件数据的方法。数据库中,存储引擎定义了自己的数据格式。所有数据都会按照一定的组织存储。

3、数据更新。Hive的内容是读多写少的,因此,不支持对数据的改写和删除,数据都在加载的时候中确定好的。数据库中的数据通常是需要经常进行修改。

4、执行延迟。Hive在查询数据的时候,需要扫描整个表(或分区),因此延迟较高,只有在处理大数据是才有优势。数据库在处理小数据是执行延迟较低。

5、索引。Hive没有,数据库有

6、执行。Hive是MapReduce,数据库是Executor

7、可扩展性。Hive高,数据库低

8、数据规模。Hive大,数据库

8.Hive元数据保存的方法有哪些,各有什么特点?

1)、内嵌模式:将元数据保存在本地内嵌的derby数据库中,内嵌的derby数据库每次只能访问一个数据文件,也就意味着它不支持多会话连接。

2). 本地模式:将元数据保存在本地独立的数据库中(一般是mysql),这可以支持多会话连接。

3). 远程模式:把元数据保存在远程独立的mysql数据库中,避免每个客户端都去安装mysql数据库。

9.你们写hive的hql语句,大概有多少条?

不清楚,我自己写的时候也没统计

10.hive 跟hbase的区别是?

HIve面试题(一)_第2张图片

11.Hive join 的时候如何放置大小表?

采取td注入内存方式,即把小表在map阶段进行join. select /*+ MAPJOIN(td) */ 

12.hive的两张表关联,使用mapreduce 是怎么写的?

打标记笛卡尔乘积

13.hive 相对于oracle来说有哪些优点?

hive 是数据仓库,oracle是数据库,hive 能够存储海量数据,hive还有更重要的作用就是数据分析,最主要的是免费。

14.hive的sort by 和 order by 的区别

http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2843243.html

你可能感兴趣的:(hive)