Impala是Cloudera企业核心开发设计的新式查询网站,它出示SQL词义,能查寻储存在Hadoop的HDFS和HBase中的PB级互联网大数据。Impala1.0版比原先根据MapReduce的HiveSQL查寻速率提高3~90倍,因而,Impala有可能彻底替代Hive。作者根据自身在做好本职工作中运用Impala的实践活动和感受撰写了这书。
这书共有10章,全方位详细介绍开源系统大数据分析模块Impala的技术性情况、安裝与配备、构架、操作步骤、性能优化,及其富有科技含量的运用设计原理和运用实例。这书围绕现阶段计算技术发展趋势网络热点,合适全部大数据分析人员、java开发人员和信息化管理人员参照应用。
目录
- 第 1章 Impala概述、安装与配置 1
- 1.1 Impala概述 . 1
- 1.2 Cloudera Manager安装准备 2
- 1.3 CM及 CDH安装 . 10
- 1.4 Hive安装 23
- 1.5 Impala安装 . 26
- 第 2章 Impala入门示例 29
- 2.1 数据加载 . 29
- 2.2 数据查询 . 36
- 2.3 分区表 . 37
- 2.4 外部分区表 . 41
- 2.5 笛卡尔连接 . 44
- 2.6 更新元数据 . 45
- 第 3章 Impala概念及架构. 47
- 3.1 Impala服务器组件 . 47
- 3.1.1 Impala Daemon. 47
- 3.1.2 Impala Statestore 48
- 3.1.3 Impala Catalog 49
- 3.2 Impala应用编程 . 51
- 3.2.1 Impala SQL方言 . 52
- 3.2.2 Impala编程接口概述 52
- 3.3 与 Hadoop生态系统集成 53
- 3.3.1 与 Hive集成 53
- 3.3.2 与 HDFS集成 53
- 3.3.3 使用 HBase. 54
- 第 4章 SQL语句 . 55
- 4.1 注释 . 55
- 4.2 数据类型 . 56
- 4.2.1 BIGINT. 56
- 4.2.2 BOOLEAN . 57
- 4.2.3 DOUBLE 58
- 4.2.4 FLOAT . 59
- 4.2.5 INT 59
- 4.2.6 REAL 60
- 4.2.7 SMALLINT 60
- 4.2.8 STRING 61
- 4.2.9 TIMESTAMP . 62
- 4.2.10 TINYINT 66
- 4.3 常量 . 66
- 4.3.1 数值常量 66
- 4.3.2 字符串常量 67
- 4.3.3 布尔常量 67
- 4.3.4 时间戳常量 68
- 4.3.5 NULL 68
- 4.4 SQL操作符. 70
- 4.4.1 BETWEEN 操作符 . 70
- 4.4.2 比较操作符 71
- 4.4.3 IN操作符 . 72
- 4.4.4 IS NULL操作符 72
- 4.4.5 LIKE操作符 73
- 4.4.6 REGEXP操作符 74
- 4.5 模式对象和对象名称 . 75
- 4.5.1 别名 75
- 4.5.2 标示符 76
- 4.5.3 数据库 76
- 4.5.4 表 77
- 4.5.5 视图 78
- 4.5.6 函数 83
- 4.6 SQL语句. 83
- 4.6.1 ALTER TABLE . 84
- 4.6.2 ALTER VIEW 90
- 4.6.3 COMPUTE STATS 92
- 4.6.4 CREATE DATABASE 95
- 4.6.5 CREATE FUNCTION . 96
- 4.6.6 CREATE TABLE. 98
- 4.6.7 CREATE VIEW . 103
- 4.6.8 DESCRIBE.104
- 4.6.9 DROP DATABASE . 106
- 4.6.10 DROP FUNCTION 107
- 4.6.11 DROP TABLE 107
- 4.6.12 DROP VIEW 108
- 4.6.13 EXPLAIN .108
- 4.6.14 INSERT 110
- 4.6.15 INVALIDATE METADATA 116
- 4.6.16 LOAD DATA. 120
- 4.6.17 REFRESH.124
- 4.6.18 SELECT 125
- 4.6.19 SHOW 143
- 4.6.20 USE. 147
- 4.7 内嵌函数 . 148
- 4.7.1 数学函数 150
- 4.7.2 类型转换函数 155
- 4.7.3 时间和日期函数 155
- 4.7.4 条件函数 160
- 4.7.5 字符串函数 161
- 4.7.6 特殊函数 166
- 4.8 聚集函数 . 167
- 4.8.1 AVG 167
- 4.8.2 COUNT 168
- 4.8.3 GROUP_CONCAT 169
- 4.8.4 MAX. 169
- 4.8.5 MIN 170
- 4.8.6 NDV 170
- 4.8.7 SUM 171
- 4.9 用户自定义函数 UDF 171
- 4.9.1 UDF概念 . 172
- 4.9.2 安装 UDF开发包 176
- 4.9.3 编写 UDF . 176
- 4.9.4 编写 UDAF 179
- 4.9.5 编译和部署 UDF . 183
- 4.9.6 UDF性能 . 184
- 4.9.7 创建和使用 UDF示例 184
- 4.9.8 UDF 安全 193
- 4.9.9 Impala UDF的限制 . 193
- 4.10 Impala SQL &Hive QL . 193
- 4.11 将 SQL移植到 Impala上 195
- 第 5章 Impala shell . 201
- 5.1 命令行选项 . 201
- 5.2 连接到 Impalad . 209
- 5.3 运行命令 . 210
- 5.4 命令参考 . 210
- 5.5 查询参数设置 . 211
- 第 6章 Impala管理 228
- 6.1 准入控制和查询队列 . 228
- 6.1.1 准入控制概述 228
- 6.1.2 准入控制和 YARN 229
- 6.1.3 并发查询限制 229
- 6.1.4 准入控制和 Impala客户端协同工作 . 230
- 6.1.5 配置准入控制 230
- 6.1.6 使用准入控制指导原则 236
- 6.2 使用 YARN资源管理(CDH5). 237
- 6.2.1 Llama进程 . 237
- 6.2.2 检查计算的资源和实际使用的资源 237
- 6.2.3 资源限制如何生效 238
- 6.2.4 启用 Impala资源管理 . 238
- 6.2.5 资源管理相关 impala-shell参数 238
- 6.2.6 Impala资源管理的限制 238
- 6.3 为进程,查询,会话设定超时限制 . 239
- 6.4 通过代理实现 Impala高可用性 240
- 6.5 管理磁盘空间 . 243
- 第 7章 Impala存储 245
- 7.1 文件格式选择 . 245
- 7.2 Text 247
- 7.2.1 查询性能 247
- 7.2.2 创建文本表 248
- 7.2.3 数据文件 249
- 7.2.4 加载数据 249
- 7.2.5 LZO压缩 . 250
- 7.3 Parquet . 253
- 7.3.1 创建 Parquet表 253
- 7.3.2 加载数据 254
- 7.3.3 查询性能 255
- 7.3.4 Snappy/Gzip压缩 256
- 7.3.5 与其他组件交换 Parquet数据文件 260
- 7.3.6 Parquet数据文件组织方式. 260
- 7.4 Avro . 263
- 7.4.1 创建 Avro表 263
- 7.4.2 使用 Hive创建的 Avro表 265
- 7.4.3 通过 JSON指定 Avro模式 265
- 7.4.4 启用压缩 265
- 7.4.5 模式进化 266
- 7.5 RCFile 268
- 7.5.1 创建 RCFile表和加载数据. 268
- 7.5.2 启用压缩 269
- 7.6 SequenceFile 270
- 7.6.1 创建和加载数据 270
- 7.6.2 启用压缩 271
- 7.7 HBase. 272
- 7.7.1 支持的 Hbase列类型 273
- 7.7.2 性能问题 273
- 7.7.3 适用场景 280
- 7.7.4 数据加载 281
- 7.7.5 启用压缩 281
- 7.7.6 限制 282
- 7.7.7 示例 282
- 第 8章 Impala分区 284
- 8.1 分区技术适用场合 . 284
- 8.2 分区表相关 SQL语句 285
- 8.3 分区修剪 . 285
- 8.4 分区键列 . 288
- 8.5 使用不同的文件格式 . 288
- 第 9章 Impala性能优化 290
- 9.1 最佳实践 . 290
- 9.2 连接查询优化 . 291
- 9.3 使用统计信息 . 301
- 9.4 基准测试 . 309
- 9.5 控制资源使用 . 309
- 9.6 性能测试 . 310
- 9.7 使用 EXPLAIN信息 311
- 9.8 使用 PROFILE信息. 312
- 第 10章 Impala设计原则与应用案例 322
- 10.1 设计原则 . 322
- 10.2 应用案例 . 323