几个蜂巢面试问题

Ank*_*mar 1 hadoop hive hadoop-streaming hiveql hadoop2

我最近在接受一家公司的采访时遇到了一些问题。由于我是Hadoop的新手,所以有人可以告诉我正确的答案吗?

问题:

  1. Hive中“排序依据”和“分组依据”之间的区别。他们如何工作?
  2. 如果我们在Hive中的任何SQL查询中使用“限制1”,那么Reducer是否可以工作。
  3. 如何优化蜂巢性能?
  4. “内部表”和“外部表”之间的区别
  5. Hive和SQL之间的主要区别是什么

请提供一些有用的资源,以便我可以更好地学习。谢谢

小智 5

PFB的答案:

1. Hive中“排序依据”和“分组依据”之间的区别。他们如何工作?

Ans。SORT BY对每个reducer的数据进行排序,它提供了reducer中行的排序。如果存在多个减速器,则“排序依据”可能会给出部分排序的最终结果。而GROUP BY按指定列聚合记录,这使您可以对未分组的列(例如SUM,COUNT,AVG等)执行聚合功能。

2.如果我们在Hive中的任何SQL查询中使用“限制1”,则Reducer是否工作。

Ans。我认为Reducer会起作用,因为根据Hive文档-限制表示要返回的行数。返回的行是随机选择的。以下查询从t1随机返回5行。

SELECT * FROM t1 LIMIT 5
Run Code Online (Sandbox Code Playgroud)

必须随机选择,它必须具有来自Reducer的完整结果输出。

-如何优化蜂巢性能?

Ans。这些链接应该回答这个问题

-“内部表”和“外部表”之间的区别

Ans。“内部表”也称为托管表,是由Hive管理的表。当您将HDFS中的数据指向该表时,数据将移动到Hive的默认位置/ ust / hive / warehouse /。并且,如果删除了该内部表,则数据也将被删除。

另一方面,“外部表”是用户管理的,并且加载后数据不会移动到配置单元的默认目录,即可以指定任何自定义位置。连续地,当您删除此类表时,不会删除任何数据,只会删除表架构。

-Hive和SQL之间的主要区别是什么

Ans。Hive是hadoop之上的Datawarehousing层,可为用户提供类似于SQL的行表接口,以供用户分析基础数据。为此,它采用了HiveQL(HQL)语言,该语言大致基于SQL-92标准。

SQL是用于访问和操作数据库的标准RDBMS语言。