文档章节

Impala 如何使用 Hadoop 文件格式

w
 weiqingbin
发布于 2014/01/13 17:36
字数 1148
阅读 1849
收藏 3

Impala 如何使用 Hadoop 文件格式

Impala 支持几种熟悉的 Apache Hadoop 中使用的文件格式。Impala 可以加载或查询其他 Hadoop 组件如 Pig 或 MapReduce 产生的数据文件,并且 Impala 产生的数据文件也可以被其他组件使用。下面的章节讨论 Impala 使用各种文件格式的步骤、限制和性能注意事项。

Impala 表使用的文件格式具有重要的性能意义。一些文件格式包括压缩支持,会影响到硬盘上数据的大小,因此,也影响反序列化数据时所需的 I/O 和 CPU 资源的数量。因为查询通常以移动和解压缩数据开始,所需的 I/O 和 CPU 资源是查询性能的限制因素。为了避免处理过程中这一部分潜在的冲突,数据通常进行压缩。通过压缩数据,更小的字节数从硬盘传输给内存。这减少了传输数据的时间,但应权衡考虑 CPU 解压缩内容的时间。

Impala 可以查询 Hadoop 中最通用的文件编码和压缩编码(Impala can query files encoded with most of the popular file formats and compression codecs used in Hadoop)。Impala 可以创建并插入数据到部分而不是全部文件格式;对于 Impala 无法写入的文件格式,在 Hive 中创建这些表,在 impala-shell 中执行 INVALIDATE METADATA 语句,并通过 Impala 查询这些表。文件格式可以是结构化的,他们可能包含元数据和内置的压缩支持。支持的文件格式包括:

Table 1. File Format Support in Impala
File Type Format Compression Codecs Impala Can CREATE? Impala Can INSERT?
Parquet Structured Snappy, GZIP; currently Snappy by default Yes. 支持:CREATE TABLE, INSERT, 查询
Text Unstructured LZO Yes. 不指定 STORED AS 子句的 CREATE TABLE 语句,默认的文件格式就是未压缩文本,使用 ASCII 0x01 字符进行分割(通常对应 Ctrl-A). 支持:CREATE TABLE, INSERT, 查询。如果使用 LZO 压缩,则必须在 Hive 中创建表和加载数据
Avro Structured Snappy, GZIP, deflate, BZIP2 No, create using Hive. 仅支持查询,在 Hive 中加载数据
RCFile Structured Snappy, GZIP, deflate, BZIP2 Yes. 仅支持查询,在 Hive 中加载数据
SequenceFile Structured Snappy, GZIP, deflate, BZIP2 Yes. 仅支持查询,在 Hive 中加载数据

Impala 支持下列压缩编解码器:

  • Snappy. 因其在压缩比和解压速度间的有效平衡而推荐。Snappy 压缩非常快,而 GZIP 压缩比更高
  • GZIP. 期望达到最大压缩比(最少硬盘空间)时推荐
  • Deflate.
  • BZIP2.
  • LZO, 仅支持文本文件。Impala 可以查询 LZO 压缩文本文件表,但目前无法创建和插入数据;在 Hive 中执行这些操作

选择表的文件格式

不同的文件格式和压缩编解码器适合不同的数据集。尽管无论文件格式如何,Impala 通常可以提升性能收益,但是为你的数据选择合适的格式可以获得进一步的性能提升。 对于特定的表,考虑以下因素来确定采用哪种文件格式和压缩方式的组合:

  • 假如你正在使用的文件是已经支持的文件格式,实用起见 Impala 表应采用相同的格式。加入原始的文件格式无法提供可接受的查询性能和资源使用,考虑创建一个使用不同文件格式和压缩特征的新表,并使用 INSERT 语句通过复制数据文件到新表做一次转换。依赖于文件格式的不同,你可能需要在 impala-shell 或 Hive 中执行 INSERT 语句
  • 文本文件格式可以使用多种工具方便的生成,并且人类可读易于严重和调试。这些特性就是为什么文本文件是 Impala CREATE TABLE 语句的默认格式。当性能和资源使用是主要考虑时,使用其他格式之一并考虑压缩。一个典型的工作流可能涉及通过复制 CSV 或 TSV 文件到对应的数据目录把数据存入 Impala 表中,然后使用 INSERT ... SELECT 语法复制数据到使用其他更紧凑的文件格式的表中
  • 假如你的架构涉及到存放在内存中被查询的数据,不要进行压缩。这时没有 I/O 节省因为不需要把数据移动到硬盘上,但是解压数据会有 CPU 成本

© 著作权归作者所有

w
粉丝 50
博文 37
码字总数 112892
作品 0
昌平
私信 提问
Impala 表使用 SequenceFile 文件格式(翻译)

Impala 表使用 SequenceFile 文件格式 Cloudera Impala 支持使用 SequenceFile 数据文件。 参加以下章节了解 Impala 表使用 SequenceFile 数据文件的详情: 创建 SequenceFile 表并加载数据 ...

weiqingbin
2014/01/20
821
0
Impala 表使用 RCFile 文件格式(翻译)

Impala 表使用 RCFile 文件格式 Cloudera Impala 支持使用 RCFile 数据文件。 查询一下章节了解 Impala 表使用 RCFile 数据文件的详情: 创建RCFile 表并加载数据 RCFile 表启用压缩 创建 RC...

weiqingbin
2014/01/20
376
0
Impala 表使用文本数据文件

Impala 表使用文本数据文件 Cloudera Impala 支持使用文本文件作为输入输出的存储格式。Text files are a convenient format to use for interchange with other applications or scripts th......

weiqingbin
2014/01/16
9.5K
0
Cloudera Developer之Spark 及 Hadoop 开发员培训(CCA-175)

学习如何将数据导入到 Apache Hadoop 机群并使用 Spark、Hive、Flume、Sqoop、Impala 及其他 Hadoop 生态系统工具对数据进行各种操作和处理分析。 培训详情地址:https://www.huodongjia.co...

活动家
2017/07/28
242
0
Cloudera Impala 常见问题(翻译)

Cloudera Impala 常见问题 下面是 Clouder Impala 产品常见问题的目录。 继续阅读: Trying Impala Impala System Requirements Supported and Unsupported Functionality In Impala How do ......

weiqingbin
2014/01/26
15.6K
2

没有更多内容

加载失败,请刷新页面

加载更多

02.日志系统:一条SQL更新语句是如何执行的?

我们还是从一个表的一条更新语句说起,我们创建下面一张表: create table T(ID int primary key, c int); 如果要将ID=2这一行c的值加1,SQL可以这么写: update T set c=c+1 where ID=2; 前...

scgaopan
今天
7
0
【五分钟系列】掌握vscode调试技巧

调试前端js 准备一个前端项目 index.html <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1......

aoping
今天
6
0
PhotoShop 高级应用:USM锐化/S锐化/防抖

、 高反差锐化+混合模式:叠加模式 【将更多的边缘细节添加到图像中】

东方墨天
今天
7
0
Python数据可视化之matplotlib

常用模块导入 import numpy as npimport matplotlibimport matplotlib.mlab as mlabimport matplotlib.pyplot as pltimport matplotlib.font_manager as fmfrom mpl_toolkits.mplot3d i......

松鼠大帝
昨天
5
0
我用Bash编写了一个扫雷游戏

我在编程教学方面不是专家,但当我想更好掌握某一样东西时,会试着找出让自己乐在其中的方法。比方说,当我想在 shell 编程方面更进一步时,我决定用 Bash 编写一个扫雷游戏来加以练习。 我在...

老孟的Linux私房菜
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部