• 发文
  • 评论
  • 微博
  • 空间
  • 微信

大数据面试真题,来试试你有几斤几两(8)——Hive

科多大数据 2018-12-22 10:12 发文

上一期科妹为大家带来了HBase的面试真题,今天为大家带来的则是另一个同样建立在Hadoop基础上的技术——Hive。HBase是作为分布式数据库,而Hive是作为分布式数据仓库。

为了帮助大家更好的区别HBase和Hive,科妹特地选取了20道Hive的问答题,一定要积极动脑积极思考。


1.Hive的主要作用是什么?

2.启动Hive的方式有哪些?  

3.请谈一下Hive的特点是什么?Hive和RDBMS有什么异同?  

4.Redis, 传统数据库,hbase,hive  每个之间的区别?  

5.Hive创建id,name,sex表的语法是什么?      

6.Hive的两个重要参数是什么?      

7.Hive中如何复制一张表的表结构(不带有被复制表数据) 

8.Hive中追加导入数据的4种方式是什么?请写出简要语法。 

9.Hive是怎样保存元数据的?  

10.Hive内部表和外部表的区别?     

11.配置hive-site.xml都修改了哪些属性,请写出属性名称并解释该属性。

12.配置hive-env.sh都涉及到哪些属性?

13.如何连接HiveServer2?写出具体命令。 

14.HiveServer2的作用是什么?

15.所有的hive任务都会有reducer的执行吗?  

16.分区和分桶的区别。    

17.Hive的 sort by 和 order by 的区别。

18.简要描述数据库中的 null,说出null在hive底层如何存储,并解释

selecta.* from t1 a left outer join t2b on a.id=b.id where b.id is null;

的含义。

19.请说明hive中 Sort By,Order By,Cluster By,Distrbute By各代表什么意思。

20.请把下一语句用hive方式实现。    

SELECT a.key,a.value     FROM a      WHERE a.key not in (SELECT b.key FROM b)



答案解析:

1.Hive是基于hadoop的数据仓库工具,可以将结构化的数据文件映射成一张数据表,并且提供sql查询。相当于mapreduce的客户端。

2.1)

bin/hive

   2)

bin/hiveserver2  

3.hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

4.1)Redis 是基于内存的数据库,注重实用内存的计算。

   2)hbase是列式数据库,无法创建主键,地从是基于HDFS的,每一行可以保存很多的列。

   3)hive是数据的仓库,是为了减轻mapreduce而设计的,不是数据库,是用来与hadoop做交互的。  

5.

create table student(id int,name String,sex String) row format delimited fields terminated by ' '

6.1)hive -e  ''  从命令行执行指定的HQL。

   2)hive -f  *.hql  执行hive脚本命令。

7.

create table a  like b

8.1)从本地导入: 

loaddata local  inpath '/home/1.txt' (overwrite)into table student 

   2)从Hdfs导入: 

load data inpath'/user/hive/warehouse/1.txt'  (overwrite)into table student

   3)查询导入:  

create table  student1 as select * from student

   4)查询结果导入:

insert (overwrite)into table staff select * from track_log

9.1)保存元数据的方式有:内存数据库rerdy,本地mysql数据库,远程mysql数据库。

   2)但是本地的mysql数据用的比较多,因为本地读写速度都比较快。

10.1)在导入数据到外部表,数据并没有移动到自己的数据仓库目录下,也就是说外部表中的数据并不是由它自己来管理的!而表则不一样。

     2)在删除表的时候,Hive将会把属于表的元数据和数据全部删掉;而删除外部表的时候,Hive仅仅删除外部表的元数据,数据是不会删除的。

11.1)连接数据库的uRL。

     2)数据库驱动名。

     3)数据库账户。

     4)数据库密码。

12.1)添加JAVA_HOME路径:     

JAVA_HOME=/opt/modules/jdk1.7.0_67  

     2)添加HADOOP_HOME路径: 

HADOOP_HOME=/opt/modules/hadoop-2.5.0-cdh5.3.6/  

     3)添加HIVE_COF路径:   

exportHIVE_CONF_DIR=/opt/modules/hive-0.13.1-cdh5.3.6/conf

13.1)

bin/hiveserver2

     2)

bin/beeline

     3)

!connect jdbc:hive2://hadoop102:10000

14.Hiveserver2作用是允许多台主机通过beeline连接hiveserver2上,在通过hiveserver2连接到hive数据仓库。

15.不是,由于当前hive的优化,使得一般简单的任务不会去用reducer任务;只有稍微复杂的任务才会有reducer任务。

16.分区:是指按照数据表的某列或某些列分为多个区,区从形式上可以理解为文件夹,比如我们要收集某个大型网站的日志数据,一个网站每天的日志数据存在同一张表上,由于每天会生成大量的日志,导致数据表的内容巨大,在查询时进行全表扫描耗费的资源非常多。 那其实这个情况下,我们可以按照日期对数据表进行分区,不同日期的数据存放在不同的分区,在查询时只要指定分区字段的值就可以直接从该分区查找。

     分桶:分桶是相对分区进行更细粒度的划分。分桶将整个数据内容安装某列属性值得hash值进行区分,如要按照name属性分为3个桶,就是对name属性值的hash值对3取摸,按照取模结果对数据分桶。如取模结果为0的数据记录存放到一个文件,取模为1的数据存放到一个文件,取模为2的数据存放到一个文件。

17.1)order by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。

     2)sort by不是全局排序,其在数据进入reducer前完成排序.因此,如果用sort by进行排序,并且设置mapred.reduce.tasks>1, 则sort by只保证每个reducer的输出有序,不保证全局有序。  

18.null与任何值运算的结果都是null, 可以使用is null、is not null函数指定在其值为null情况下的取值。 null在hive底层默认是用'N'来存储的,可以通过

alter table test SETSERDEPROPERTIES('serialization.null.format' = 'a')

来修改。

19.order by: 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)。只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。

     sort by:不是全局排序,其在数据进入reducer前完成排序。

     distribute by:按照指定的字段对数据进行划分输出到不同的reduce中。

     cluster by:除了具有 distribute by 的功能外还兼具 sort by 的功能。

20.

selecta.key,a.value from a where a.key not exists (select b.key from b)


怎么样,做完这20道问答,是不是对Hive的了解加深了呢?虽然Hive和HBase都是架构在Hadoop之上的分布式技术,但它们是完全独立的两个程序哦。


相关阅读

、大数据面试真题,来试试你有几斤几两(7)——HBase

【技术干货】一文学会伪分布式搭建

大数据面试真题,来试试你有几斤几两(6)——Hadoop&大数据基础问答

几句话简单概括为什么人工智能要学Python

【技术干货】Java小知识



声明:本文为OFweek维科号作者发布,不代表OFweek维科号立场。如有侵权或其他问题,请及时联系我们举报。
2
评论

评论

    相关阅读

    暂无数据

    科多大数据

    大数据、云计算、区块链、人工智能...

    举报文章问题

    ×
    • 营销广告
    • 重复、旧闻
    • 格式问题
    • 低俗
    • 标题夸张
    • 与事实不符
    • 疑似抄袭
    • 我有话要说
    确定 取消

    举报评论问题

    ×
    • 淫秽色情
    • 营销广告
    • 恶意攻击谩骂
    • 我要吐槽
    确定 取消

    用户登录×

    请输入用户名/手机/邮箱

    请输入密码