' InputFormat,OutputFormat'之间有什么区别? &安培; '存储为'在蜂巢?

时间:2017-02-23 12:49:44

标签: hadoop hive hiveql hive-serde

我是Bigdata的新手,目前正在学习Hive。我理解了InputFormat& amp;的概念。作为SerDe的一部分,Hive中的OutputFormat。我也明白了这就是'存储为'用于以特定格式存储文件,就像InputFormat一样。 但我不明白使用' InputFormat,OutputFormat' &安培; '存储为'。

感谢任何帮助。

1 个答案:

答案 0 :(得分:16)

Hive有很多关于如何存储数据的选项。您可以使用外部存储,其中Hive只能从其他地方包装一些数据,或者您可以从配置单元仓库开始创建独立表。输入和输出格式允许您指定这两种类型的表的原始数据结构或如何物理存储数据。从客户端开始,您将使用sql继续使用表,但在低级别,它可以是文本文件或序列文件或hbase表或其他一些数据结构。

InputFormat和OutputFormat - 允许您描述原始数据结构,以便Hive可以将其正确映射到表格视图

SerDe - 表示从表视图到低级输入输出格式结构执行实际数据转换的类,并且相反

通常您的流程如下: HDFS文件 - > InputFileFormat - >解串器 - >行对象 - >串行器 - > OutputFileFormat - > HDFS文件

存储为 - 指定此类存储格式,其中包含Hive中新表格的输入和输出格式

这些属性可以真正影响性能,整体大小,数据模式演变支持或启用ACID等功能。您可以按照本文中介绍的步骤查看最新版本的工作,并获取有关最常用格式的一般信息 - https://oyermolenko.blog/2017/02/16/structuring-hadoop-data-through-hive-and-sql