impala 0

在写impala的技术文档前,先做一下工作的整理。

架构是  日志收集到kafka ,经过清洗后存放到kudu中,然后定时去做mapreduce 任务,将kudu中的老表的数据分配到hdfs 中。

其中 hdfs 是用hive来管理, 文件格式是parquet格式(列式存储)。 通过impala 去查询parquet格式文件和kudu表,做一个union all的聚合。

因此在这里我用到了impala 。就简单的对impala做一个介绍和输出。

 

impala 是Apache 的顶级项目,http://impala.apache.org/

是cloudera 开源, 通过对各节点的hdfs文件 的直接查询,能够获得很好的一个查询效果。测试过, impala>presto >sparksql>hive

当然列式存储是有一定的io优势的。 parquet 格式,列式存储,每一列的数据类型固定,能够获得一个更好的编码效果。

列式存储的 格式是

header + broker*n +footer 

其中header 中是有文件格式的类型。像parquet就是par1

borker 就是数据, 其中 一个broker 其实可以认为是一个row group 的数据

row group 数据下面是多个column chunk的数据,每个column chunk文件下面又是多个page ,每个column chunk 是一列数据,page 是压缩和编码单元。 footer 里面就有很多的元数据信息和broker的一些索引的信息。

具体的一些测试方面的可以看  http://blog.51cto.com/11964104/2071800

 

 

 

### Apache Impala 使用指南与介绍 #### 1. Impala 的基本描述 Apache Impala 是由 Cloudera 公司主导开发的一种新型查询系统,提供了 SQL 语义,能够对存储在 Hadoop 分布式文件系统(HDFS)和 HBase 中的 PB 级大数据进行快速查询[^1]。与 Hive 不同,Impala 不依赖于 MapReduce 引擎,而是通过分布式查询引擎直接读取数据,从而实现了更高的查询性能和更低的延迟,特别适合交互式查询场景。 #### 2. Impala 的操作流程 Impala 的使用涉及安装、配置和启动等多个环节,以下是其主要操作步骤的概述: - **安装与配置** Impala 可以通过手动安装或使用配置管理系统(如 Ambari 或 Cloudera Manager)来完成部署。安装后需要配置相关参数,例如内存分配、查询超时时间等[^3]。 - **服务启动** Impala 的核心服务包括 StateStore、CatalogServer 和 Impalad。这些服务可以通过运行对应的二进制文件启动,例如: ```bash # 启动 StateStore /path/to/impala/bin/statestore # 启动 CatalogServer /path/to/impala/bin/catalogd # 启动 Impalad(可能需要多个副本) /path/to/impala/bin/impalad --daemon ``` 此外,也可以通过 Ambari 或其他配置管理工具来简化启动过程。 - **连接与查询** 用户可以通过 JDBC/ODBC 驱动程序连接到 Impala,并使用标准 SQL 语法执行查询。Impala 支持多种数据源和文件格式,包括 Parquet、Avro 和 Text 等[^2]。 #### 3. 注意事项 在使用 Impala 时需要注意以下几点: - **硬件资源**:Impala 对硬件资源要求较高,建议为每个节点分配足够的内存和 CPU 资源。 - **数据存储格式**:为了获得最佳性能,推荐使用列式存储格式(如 Parquet 或 ORC),并避免使用文本格式。 - **元数据同步**:Impala 和 Hive 共享相同的元数据存储,因此在 Hive 中创建的表可以直接被 Impala 查询。但需要注意的是,某些 Hive 操作(如分区添加)可能不会自动同步到 Impala,需要手动刷新元数据[^2]。 ```python # 示例:刷新 Impala 表元数据 impala_shell_command = "invalidate metadata my_table;" ``` #### 4. 总结 Apache Impala 是一种高效的交互式查询工具,适用于大规模数据分析场景。它通过减少对 MapReduce 的依赖,显著提升了查询性能。结合适当的硬件配置和优化策略,Impala 可以为用户提供更快的查询体验[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值