首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当HDFS已经提供数据存储时,为什么还要使用Hive?

当HDFS已经提供数据存储时,为什么还要使用Hive?
EN

Stack Overflow用户
提问于 2018-07-26 15:15:16
回答 2查看 367关注 0票数 0

我已经开始学习Hadoop了,我知道HDFS提供了分布式存储系统,Mapreduce是用于data processing.Now的,我正在阅读Hadoop生态系统。从Hive的定义来看,它是一个构建在hadoop上的数据仓库,用于提供类似SQL的接口。

我的问题是,当hadoop提供容错、分布式的HDFS时,为什么要使用hive?hive会取代HDFS吗?

hive是否也只提供sql接口或存储?

EN

回答 2

Stack Overflow用户

发布于 2018-07-26 18:12:07

配置单元不会取代HDFS。配置单元为存储在HDFS中的数据提供sql类型的接口。它主要用于查询和分析存储的数据。在某种意义上,Hive实际上消除了许多样板代码,如果使用mapreduce,您将不得不编写这些代码。例如,只需考虑如何在mapreduce中创建不同类型的连接(左、右、桶)或group by子句或任何其他sql子句,您就会得到答案(您的代码行将很容易扩展到100行)。Hive提供了开箱即用的功能。你不需要在mapreduce中编写那些冗长的程序。Hive已经为你做了这件事。

需要注意的是,Hive本身在幕后使用Mapreduce。因此,任何group by、count、join都仅转换为mapreduce作业。不过,您可以将其更改为Tez/Spark。

对于你的第二个问题,hive没有提供任何存储,它只是使用一个数据库(默认是derby,如果你想使用一个不同的数据库,MySQL将是一个很好的选择)作为一个元存储,只是用来存储与表、分区、视图、存储桶等相关的元数据。(元数据包括表的位置、表中存储的数据类型、表的分区信息、创建日期、修改日期等)您可以使用hive创建。

票数 1
EN

Stack Overflow用户

发布于 2018-07-27 04:44:01

在评论中回答你的问题...

Hive可以处理结构化(csv、txt等)数据和半结构化(xml、json、parquet等)。它不能处理非结构化数据,如音频、视频等。

注意:半结构化数据可以在DDL中处理,也可以通过spark放入Hive中。

我鼓励您学习什么是外部表和hive中的托管表。

祝你学习愉快。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51533051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档