hive文件存储格式包括以下几类:
1.TEXTFILE
2.SEQUENCEFILE
3.RCFILE
4.自定义格式
其中TEXTFILE为默认格式,建表时不指定,默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理。
SequenceFile,RCFile格式的表不能直接从本地文件导入数据,数据要先导入到textfile格式的表中,然后再从textfile表中用insert导入到SequenceFile,RCFile表中。
TEXTFIEL
默认格式,数据不做压缩,磁盘开销大,数据解析开销大。可结合Gzip、Bzip2使用(系统自动检查,执行查询时自动解压),但使用这种方式,hive不会对数据进行切分,从而无法对数据进行并行操作。
实例:
> create table test1(str STRING)
> STORED AS TEXTFILE;
OK
Time taken: 0.786 seconds
#写脚本生成一个随机字符串文件,导入文件:
> LOAD DATA LOCAL INPATH '/home/work/data/test.txt' INTO TABLE test1;
Copying data from file:/home/work/data/test.txt
Copying file: file:/home/work/data/test.txt
Loading data to table default.test1
OK
Time taken: 0.243 seconds
SEQUENCEFILE
SequenceFile是Hadoop API提供的一种二进制文件支持,其具有使用方便、可分割、可压缩的特点。SequenceFile支持三种压缩选择:NONE, RECORD, BLOCK。 Record压缩率低,一般建议使用BLOCK压缩。
示例:
> create table test2(str STRING)
> STORED AS SEQUENCEFILE;
OK
Time taken: 5.526 seconds
hive> SET hive.exec.compress.output=true;
hive> SET io.seqfile.compression.type=BLOCK;
hive> INSERT OVERWRITE TABLE test2 SELECT * FROM test1;
RCFILE
RCFILE是一种行列存储相结合的存储方式。首先,其将数据按行分块,保证同一个record在一个块上,避免读一个记录需要读取多个block。其次,块数据列式存储,有利于数据压缩和快速的列存取。RCFILE文件示例:
> create table test3(str STRING)
> STORED AS RCFILE;
OK
Time taken: 0.184 seconds
> INSERT OVERWRITE TABLE test3 SELECT * FROM test1;
实践证明RCFile目前没有性能优势, 只有存储上能省10%的空间, 作者自己都承认.Facebook用它也就是为了存储,. RCFile目前没有使用特殊的压缩手段, 例如算术编码, 后缀树等, 没有像InfoBright那样能skip 大量io.
自定义格式
当用户的数据文件格式不能被当前 Hive 所识别的时候,可以自定义文件格式。用户可以通过实现inputformat和outputformat来自定义输入输出格式,参考代码:.\hive-0.8.1\src\contrib\src\java\org\apache\hadoop\hive\contrib\fileformat\base64
实例:
> create table test4(str STRING)
> stored as
> inputformat 'org.apache.hadoop.hive.contrib.fileformat.base64.Base64TextInputFormat'
> outputformat 'org.apache.hadoop.hive.contrib.fileformat.base64.Base64TextOutputFormat';
$ cat test1.txt
aGVsbG8saGl2ZQ==
aGVsbG8sd29ybGQ=
aGVsbG8saGFkb29w
test1文件为base64编码后的内容,decode后数据为:
hello,hive
hello,world
hello,hadoop
load数据并查询:
hive> LOAD DATA LOCAL INPATH '/home/work/test1.txt' INTO TABLE test4;
Copying data from file:/home/work/test1.txt
Copying file: file:/home/work/test1.txt
Loading data to table default.test4
OK
Time taken: 4.742 seconds
hive> select * from test4;
OK
hello,hive
hello,world
hello,hadoop
Time taken: 1.953 seconds
总结
相比TEXTFILE和SEQUENCEFILE,RCFILE由于列式存储方式,数据加载时性能消耗较大,但是具有较好的压缩比和查询响应。数据仓库的特点是一次写入、多次读取,因此,整体来看,RCFILE相比其余两种格式具有较明显的优势。
【转】http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2843318.html
分享到:
相关推荐
在Hive 2.1.1版本中,ORC(Optimized Row Columnar)格式是一种高效的数据存储方式,尤其适用于大数据处理。它提供了压缩、索引和列式存储等特性,能够极大地提高查询性能。然而,有时候在使用ORC格式读取数据时,...
Hive 文件存储格式详解 Hive 文件存储格式是 Hive 中非常重要的概念,它直接影响着数据的存储和查询效率。在 Hive 中,常用的文件存储格式有 TextFile、ORC 和 Parquet 三种。下面我们将详细介绍这三种存储格式的...
在大数据处理领域,Apache Hive 是一个非常重要的工具,它提供了一个SQL-like的接口来查询、管理和分析存储在分布式存储系统(如Hadoop)中的大规模数据集。本篇将重点讲解如何利用Hive对Protobuf序列化的文件进行...
“hivelib”这个压缩包子文件的文件名称列表可能表示这个包包含了Hive的库文件。这些库可能包括Hive与HBase交互所需的连接器、Hadoop相关的库、以及其他可能的依赖,如Avro、Parquet、Thrift等,这些都是大数据处理...
4. **数据存储格式**:选择高效的数据存储格式(如 ORC 或 Parquet)可以大幅提高查询速度。 5. **资源管理**:合理配置 YARN 资源,确保 Hive 任务能够获得足够的资源执行。 #### Hive SQL 优化 Hive SQL 的优化...
在大数据处理领域,Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL(HQL,Hive Query Language)查询和管理存储在Hadoop分布式文件系统(HDFS)中的大量结构化数据。Hive 1.1.0是Hive的一个版本,提供了...
在 `storage-handlers` 和 `serde` 目录下,你可以找到 Hive 对 Parquet 和 ORC 等高效存储格式的支持。这些格式支持列式存储和压缩,大大提高了数据读取速度。 7. **Hive UDF(User Defined Function)** Hive ...
09_Hive中数据文件的存储格式介绍及对比 10_常见的压缩格式及MapReduce的压缩介绍 11_Hadoop中编译配置Snappy压缩 12_Hadoop及Hive配置支持snappy压缩 13_Hive中的常见调优 14_Hive中的数据倾斜及解决方案-三种join...
需要注意的是,由于Hadoop和Hive主要为Linux设计,Windows上的安装和配置可能会遇到更多问题,如文件路径格式、权限控制和依赖库的不兼容等。因此,用户可能需要查阅官方文档、社区论坛或教程来解决遇到的问题。
第15章 自定义Hive文件和记录格式 第16章 Hive的Thrift服务 第17章 存储处理程序和NoSQL 第18章 安全 第19章 锁 第20章 Hive和Oozie整合 第21章 Hive和亚马逊网络服务系统 第22章 HCatalog 第23章 案例研究
这些文件可能是ORC(Optimized Row Columnar)或Parquet格式,它们是Hive支持的高效列式存储格式,能优化查询性能和存储效率。此外,Hive表可以被分区,以提高查询速度,比如根据日期、地区等维度进行划分。 如果这...
该参数决定了Hive默认的输出文件格式,与创建表时所指定的相同,可选项为'TextFile'、'SequenceFile'或'RCFile'。默认值为'TextFile'。 13. hive.mapred.mode 该参数决定了Map/Reduce模式,如果设置为strict,将不...
ZIP是一种常见的文件格式,用于无损数据压缩和归档,可以包含多个文件和文件夹。在这个场景下,"hive-denpendencies.zip"很可能包含了Hive驱动和其他相关依赖的JAR文件。 要将Hive与DataGrip连接,你需要做以下步骤...
3. **Hive基础**:本章涉及Hive的数据类型、运算符、数据存储方式和存储格式,以及常用的交互命令。学习者需要掌握不同数据类型的操作,理解Hive的数据存储机制,如TextFile、SequenceFile、Orc和Parquet等。 4. **...
4. **数据存储**:Hive将数据存储在HDFS上,支持多种文件格式,如TextFile、SequenceFile、ORC和Parquet。这些文件格式具有不同的性能和压缩特性,适用于不同的场景。 5. **分区与桶**:Hive的分区机制允许将大型表...
在构建大数据处理环境时,Apache Hive 是一个重要的组件,它提供了SQL查询功能,使用户能够方便地对存储在Hadoop文件系统(HDFS)中的大规模数据集进行数据汇总与查询。本篇文章将详细介绍如何在CentOS 7环境下安装...
在Hive中,数据通常是存储在分隔符分割的文本文件中,例如CSV或TSV格式,每行代表一条记录,列之间用特定字符(如逗号、制表符)分隔。"uaction.dat"文件可能采用了类似格式,每行记录了一个用户的某个操作,列可能...
3. **存储格式**: Hive支持多种存储格式,如TextFile、SequenceFile、Parquet和ORC,不同的格式有不同的性能和压缩特性。 4. **视图与UDF**: 视图简化了复杂查询,而用户自定义函数(UDF)允许用户扩展Hive的功能。 ...