作品简介

Impala是 Cloudera公司主导开发的新型查询系统,它提供 SQL语义,能查询存储在 Hadoop的 HDFS和 HBase中的 PB级大数据。Impala 1.0版比原来基于 MapReduce的 Hive SQL查询速度提升 3~90倍,因此, Impala有可能完全取代 Hive。

作者基于自己在本职工作中应用 Impala的实践和心得编写了本书。 本书共分 10章,全面介绍开源大数据分析引擎 Impala的技术背景、安装与配置、架构、操作方法、性能优化,以及最富技术含量的应用设计原则和应用案例。本书紧扣目前计算技术发展热点,适合所有大数据分析人员、大数据开发人员和大数据管理人员参考使用。

作品目录

  • Cloudera官方推荐序(中文)
  • Cloudera官方推荐序(英文)
  • 推荐序二
  • 推荐序三
  • 推荐序四
  • 推荐序五
  • 推荐序六
  • 推荐序七
  • 作者序
  • 第1章 Impala概述、安装与配置
  • 1.1 Impala概述
  • 1.2 Cloudera Manager安装准备
  • 1.安装环境(如下表所示)
  • 2. CM支持的操作系统(如下表所示)
  • 3.支持的数据库
  • 4.支持的JDK版本
  • 5.支持的IP协议
  • 6. yum源配置
  • 7.对RPM文件建立索引
  • 8.关闭SELinux安全选项
  • 9.关闭防火墙
  • 10.对等性配置
  • 11.配置时间同步
  • 12.配置内核参数
  • 13.配置图形界面
  • 14.下载cIoudera-manager-instaIIer.bin
  • 1.3 CM及CDH安装
  • 1.启动CM安装
  • 1.4 Hive安装
  • 1.5 Impala安装
  • 第2章 Impala入门示例
  • 2.1 数据加载
  • 1.准备数据
  • 2.创建表
  • 3.加载数据
  • 2.2 数据查询
  • 1.聚集和关联操作
  • 2.带有子查询的聚集和关联操作
  • 2.3 分区表
  • 2.4 外部分区表
  • 2.5 笛卡尔连接
  • 2.6 更新元数据
  • 第3章 Impala概念及架构
  • 3.1 Impala服务器组件
  • 3.1.1 Impala Daemon
  • 3.1.2 Impala Statestore
  • 3.1.3 Impala Catalog
  • 3.2 Impala应用编程
  • 3.2.1 Impala SQL方言
  • 3.2.2 Impala编程接口概述
  • 3.3 与Hadoop生态系统集成
  • 3.3.1 与Hive集成
  • 3.3.2 与HDFS集成
  • 3.3.3 使用HBase
  • 第4章 SQL语句
  • 4.1 注释
  • 1.注释符号“-”
  • 2.注释符号“/*…*/”
  • 4.2 数据类型
  • 4.2.1 BIGINT
  • 4.2.2 BOOLEAN
  • 4.2.3 DOUBLE
  • 4.2.4 FLOAT
  • 4.2.5 INT
  • 4.2.6 REAL
  • 4.2.7 SMALLINT
  • 4.2.8 STRING
  • 4.2.9 TIMESTAMP
  • 4.2.10 TINYINT
  • 4.3 常量
  • 4.3.1 数值常量
  • 4.3.2 字符串常量
  • 4.3.3 布尔常量
  • 4.3.4 时间戳常量
  • 4.3.5 NULL
  • 4.4 SQL操作符
  • 4.4.1 BETWEEN操作符
  • 4.4.2 比较操作符
  • 4.4.3 IN操作符
  • 4.4.4 IS NULL操作符
  • 4.4.5 LIKE操作符
  • 4.4.6 REGEXP操作符
  • 4.5 模式对象和对象名称
  • 4.5.1 别名
  • 4.5.2 标示符
  • 4.5.3 数据库
  • 4.5.4 表
  • 1.内部表
  • 2.外部表
  • 4.5.5 视图
  • 4.5.6 函数
  • 4.6 SQL语句
  • 4.6.1 ALTER TABLE
  • 4.6.2 ALTER VIEW
  • 4.6.3 COMPUTE STATS
  • 4.6.4 CREATE DATABASE
  • 4.6.5 CREATE FUNCTION
  • 4.6.6 CREATE TABLE
  • 4.6.7 CREATE VIEW
  • 4.6.8 DESCRIBE
  • 4.6.9 DROP DATABASE
  • 4.6.10 DROP FUNCTION
  • 4.6.11 DROP TABLE
  • 4.6.12 DROP VIEW
  • 4.6.13 EXPLAIN
  • 4.6.14 INSERT
  • 4.6.15 INVALIDATE METADATA
  • 4.6.16 LOAD DATA
  • 4.6.17 REFRESH
  • 4.6.18 SELECT
  • 1. Impala的SELECT查询支持:
  • 2. JOIN
  • 3. SQL-92和SQL-89连接
  • 4.自连接
  • 5.笛卡尔连接
  • 6.内连接和外连接
  • 7.等值连接和非等值连接
  • 8.半连接
  • 9. ORDER BY子句
  • 10. GROUP BY子句
  • 11.HAVING子句
  • 12.LIMIT子句
  • 13.OFFSET子句
  • 14.UNION子句
  • 15. WITH子句
  • 16.Hints
  • 17.DISTINCT操作符
  • 4.6.19 SHOW
  • 4.6.20 USE
  • 4.7 内嵌函数
  • 4.7.1 数学函数
  • 4.7.2 类型转换函数
  • 4.7.3 时间和日期函数
  • 4.7.4 条件函数
  • 4.7.5 字符串函数
  • 4.7.6 特殊函数
  • 4.8 聚集函数
  • 4.8.1 AVG
  • 4.8.2 COUNT
  • 4.8.3 GROUP_CONCAT
  • 4.8.4 MAX
  • 4.8.5 MIN
  • 4.8.6 NDV
  • 4.8.7 SUM
  • 4.9 用户自定义函数UDF
  • 4.9.1 UDF概念
  • 1.UDF和UDAF
  • 2.本地Impala UDF
  • 3.使用Hive UDF
  • 4.9.2 安装UDF开发包
  • 4.9.3 编写UDF
  • 1.UDF编程例子
  • 2.函数的输入参数和返回值的数据类型
  • 3.可变长参数列表
  • 4.捕获NULL值
  • 5.UDF的内存分配
  • 6.UDF线程安全工作区
  • 7.UDF错误捕获
  • 4.9.4 编写UDAF
  • 4.9.5 编译和部署UDF
  • 4.9.6 UDF性能
  • 4.9.7 创建和使用UDF示例
  • 4.9.8 UDF安全
  • 4.9.9 Impala UDF的限制
  • 4.10 Impala SQL&Hive QL
  • 4.11 将SQL移植到Impala上
  • 1.移植DDL和DML语句
  • 2.数据类型迁移
  • 3.SQL语句迁移
  • 4.仔细检查SQL结构
  • 5.校验语法语义,执行迁移
  • 第5章 Impala shell
  • 5.1 命令行选项
  • 5.2 连接到Impalad
  • 1.启动impala-shell
  • 2.使用connect连接到Impala实例
  • 5.3 运行命令
  • 5.4 命令参考
  • 5.5 查询参数设置
  • 第6章 Impala管理
  • 6.1 准入控制和查询队列
  • 6.1.1 准入控制概述
  • 6.1.2 准入控制和YARN
  • 6.1.3 并发查询限制
  • 6.1.4 准入控制和Impala客户端协同工作
  • 6.1.5 配置准入控制
  • 1.使用CIoudera Manager配置
  • 2.手动配置
  • 3.准入控制配置示例
  • 6.1.6 使用准入控制指导原则
  • 6.2 使用YARN资源管理(CDH5)
  • 6.2.1 Llama进程
  • 6.2.2 检查计算的资源和实际使用的资源
  • 6.2.3 资源限制如何生效
  • 6.2.4 启用Impala资源管理
  • 6.2.5 资源管理相关impala-shell参数
  • 6.2.6 Impala资源管理的限制
  • 6.3 为进程,查询,会话设定超时限制
  • 1.增加Statestore超时参数
  • 2.为impalad设定空闲超时
  • 6.4 通过代理实现Impala高可用性
  • 1.使用Kerberos
  • 2.HAProxy配置示例
  • 3.配置文件haproxy.cfg示例
  • 6.5 管理磁盘空间
  • 第7章 Impala存储
  • 7.1 文件格式选择
  • 7.2 Text
  • 7.2.1 查询性能
  • 7.2.2 创建文本表
  • 7.2.3 数据文件
  • 7.2.4 加载数据
  • 7.2.5 LZO压缩
  • 1.使用LZO准备工作
  • 2.创建LZO文本表
  • 7.3 Parquet
  • 7.3.1 创建Parquet表
  • 7.3.2 加载数据
  • 7.3.3 查询性能
  • 7.3.4 Snappy/Gzip压缩
  • 1.Snappy压缩示例
  • 2.Gzip压缩示例
  • 3.不压缩示例
  • 4.Parquet压缩对比测试示例
  • 5.拷贝Parquet数据文件示例
  • 7.3.5 与其他组件交换Parquet数据文件
  • 7.3.6 Parquet数据文件组织方式
  • 1.RLE和数据字典编码
  • 2.压缩数据文件
  • 3.模式进化
  • 7.4 Avro
  • 7.4.1 创建Avro表
  • 7.4.2 使用Hive创建的Avro表
  • 7.4.3 通过JSON指定Avro模式
  • 7.4.4 启用压缩
  • 7.4.5 模式进化
  • 7.5 RCFile
  • 7.5.1 创建RCFile表和加载数据
  • 7.5.2 启用压缩
  • 7.6 SequenceFile
  • 7.6.1 创建和加载数据
  • 7.6.2 启用压缩
  • 7.7 HBase
  • 7.7.1 支持的HBase列类型
  • 7.7.2 性能问题
  • 1.执行计划
  • 2.配置HBase Java应用参数
  • 7.7.3 适用场景
  • 7.7.4 数据加载
  • 7.7.5 启用压缩
  • 7.7.6 限制
  • 7.7.7 示例
  • 1.字符串类型行键
  • 2.非字符串类型行键
  • 第8章 Impala分区
  • 8.1 分区技术适用场合
  • 8.2 分区表相关SQL语句
  • 8.3 分区修剪
  • 8.4 分区键列
  • 8.5 使用不同的文件格式
  • 第9章 Impala性能优化
  • 9.1 最佳实践
  • 9.2 连接查询优化
  • 1.当统计信息不可用时如何关联
  • 2.使用STRAIGHT_JOIN覆盖连接顺序
  • 3.连接顺序优化示例
  • 9.3 使用统计信息
  • 1.表统计信息
  • 2.列统计信息
  • 3.通过ALTER TABLE手动设置统计信息
  • 4.统计信息使用示例
  • 9.4 基准测试
  • 9.5 控制资源使用
  • 9.6 性能测试
  • 1.检查Impala配置信息
  • 2.检查数据本地性
  • 3.问题排查步骤
  • 4.检查日志信息
  • 5.理解查询性能
  • 9.7 使用EXPLAIN信息
  • 9.8 使用PROFILE信息
  • 第10章 Impala设计原则与应用案例
  • 10.1 设计原则
  • 1.硬件规划
  • 2.模型设计
  • 3.数据加载
  • 4.数据处理
  • 5.数据返回
  • 10.2 应用案例
  • 1.硬件规划
  • 2.模型设计
  • 3.数据加载
  • 4.数据处理
  • 5.数据返回
展开全部