1

我最近开始使用 Hadoop。我通过 Hive 访问了一个名为 Checkout 的表。下面是数据到 HDFS 和其他信息的路径。那么如果我必须阅读以下三行,我可以获得什么信息?

          Path                                      Size           Record Count      Date Loaded
/sys/edw/dw_checkout_trans/snapshot/2012/07/04/00   1.13 TB       9,294,245,800      2012-07-05 07:26
/sys/edw/dw_checkout_trans/snapshot/2012/07/03/00   1.13 TB       9,290,477,963      2012-07-04 09:37
/sys/edw/dw_checkout_trans/snapshot/2012/07/02/00   1.12 TB       9,286,199,847      2012-07-03 07:08

所以我的问题是——

1) 首先,我们将数据加载到 HDFS,然后通过 Hive 查询它以获取结果?正确的?

2)其次,当您查看上述路径和其他内容时,我唯一感到困惑的是,当我将使用 Hive 进行查询时,我将从上述所有三个路径中获取数据?还是最近的在顶部?

由于我对这些东西不熟悉,所以我遇到了很多问题。谁能解释我蜂巢从哪里获取数据?我们将所有数据存储在 HDFS 中,然后我们使用 Hive 或 Pig 从 HDFS 取回数据?如果有人能提供 Hadoop 和 Hive 的高级知识,那就太好了。

4

1 回答 1

2

我认为您需要了解 Hive 的本机表和 Hive 的外部表之间的区别。
Hive 原生表意味着你将数据加载到 Hive 中,它负责数据在 HDFS 中的存储方式。在这种情况下,我们通常不关心什么是目录结构。
Hive 外部表意味着我们将数据放在某个目录中(如果我们暂时忘记分区)并告诉 Hive - 这是表的数据。请这样对待。hive 使我们能够查询它,与其他外部或常规表连接。添加、删除数据等是我们的责任

于 2012-07-06T06:59:03.477 回答