《开源大数据分析引擎Impala实战》目录
当当网图书信息:
http://product.dangdang.com/23648533.html
《开源大数据分析引擎Impala实战》目录
第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