《Hive编程指南》是一本Apache Hive的编程指南,致力于详细介绍怎么使用Hive的SQL方式 HiveQL来归纳、查寻和剖析储存在Hadoop分布式文件系统上的大数据结合。本书根据很多的案例,最先详细介绍如何在客户自然环境下安裝和配备Hive,并对Hadoop和MapReduce开展详细论述,*终演试Hive如何在Hadoop生态体系开展工作中。
《Hive编程指南》合适对大数据很感兴趣的发烧友及其已经应用Hadoop系统软件的数据库管理员阅读文章应用。
目录
- dy 章 基础知识
- 1.1 Hadoop和MapReduce综述
- 1.2 Hadoop生态系统中的Hive
- 1.2.1 Pig
- 1.2.2 HBase
- 1.2.3 Cascading、Crunch及其他
- 1.3 Java和Hive:词频统计算法
- 1.4 后续事情
- 第2章 基础操作
- 2.1 安装预先配置好的虚拟机
- 2.2 安装详细步骤
- 2.2.1 装Java
- 2.2.2 安装Hadoop
- 2.2.3 本地模式、伪分布式模式和分布式模式
- 2.2.4 测试Hadoop
- 2.2.5 安装Hive
- 2.3 Hive内部是什么
- 2.4 启动Hive
- 2.5 配置Hadoop环境
- 2.5.1 本地模式配置
- 2.5.2 分布式模式和伪分布式模式配置
- 2.5.3 使用JDBC连接元数据
- 2.6 Hive命令
- 2.7 命令行界面
- 2.7.1 CLI 选项
- 2.7.2 变量和属性
- 2.7.3 Hive中“一次使用”命令
- 2.7.4 从文件中执行Hive查询
- 2.7.5 hiverc文件
- 2.7.6 使用Hive CLI的更多介绍
- 2.7.7 查看操作命令历史
- 2.7.8 执行shell命令
- 2.7.9 在Hive内使用Hadoop的dfs命令
- 2.7.10 Hive脚本中如何进行注释
- 2.7.11 显示字段名称
- 第3章 数据类型和文件格式
- 3.1 基本数据类型
- 3.2 集合数据类型
- 3.3 文本文件数据编码
- 3.4 读时模式
- 第4章 HiveQL:数据定义
- 4.1 Hive中的数据库
- 4.2 修改数据库
- 4.3 创建表
- 4.3.1 管理表
- 4.3.2 外部表
- 4.4 分区表、管理表
- 4.4.1 外部分区表
- 4.4.2 自定义表的存储格式
- 4.5 删除表
- 4.6 修改表
- 4.6.1 表重命名
- 4.6.2 增加、修改和删除表分区
- 4.6.3 修改列信息
- 4.6.4 增加列
- 4.6.5 删除或者替换列
- 4.6.6 修改表属性
- 4.6.7 修改存储属性
- 4.6.8 众多的修改表语句
- 第5章 HiveQL:数据操作
- 5.1 向管理表中装载数据
- 5.2 通过查询语句向表中插入数据
- 5.3 单个查询语句中创建表并加载数据
- 5.4 导出数据
- 第6章 HiveQL:查询
- 6.1 SELECT…FROM语句
- 6.1.1 使用正则表达式来指定列
- 6.1.2 使用列值进行计算
- 6.1.3 算术运算符
- 6.1.4 使用函数
- 6.1.5 LIMIT语句
- 6.1.6 列别名
- 6.1.7 嵌套SELECT语句
- 6.1.8 CASE…WHEN…THEN 句式
- 6.1.9 什么情况下Hive可以避免进行MapReduce
- 6.2 WHERE语句
- 6.2.1 谓词操作符
- 6.2.2 关于浮点数比较
- 6.2.3 LIKE和RLIKE
- 6.3 GROUP BY 语句
- 6.4 JOIN语句
- 6.4.1 INNER JOIN
- 6.4.2 JOIN优化
- 6.4.3 LEFT OUTER JOIN
- 6.4.4 OUTER JOIN
- 6.4.5 RIGHT OUTER JOIN
- 6.4.6 FULL OUTER JOIN
- 6.4.7 LEFT SEMI-JOIN
- 6.4.8 笛卡尔积JOIN
- 6.4.9 map-side JOIN
- 6.5 ORDER BY和SORT BY
- 6.6 含有SORT BY 的DISTRIBUTE BY
- 6.7 CLUSTER BY
- 6.8 类型转换
- 6.9 抽样查询
- 6.9.1 数据块抽样
- 6.9.2 分桶表的输入裁剪
- 6.10 UNION ALL
- 第7章 HiveQL:视图
- 7.1 使用视图来降低查询复杂度
- 7.2 使用视图来限制基于条件过滤的数据
- 7.3 动态分区中的视图和map类型
- 7.4 视图零零碎碎相关的事情
- 第8章 HiveQL:索引
- 8.1 创建索引
- 8.2 重建索引
- 8.3 显示索引
- 8.4 删除索引
- 8.5 实现一个定制化的索引处理器
- 第9章 模式设计
- 9.1 按天划分的表
- 9.2 关于分区
- 9.3 wei一键和标准化
- 9.4 同一份数据多种处理
- 9.5 对于每个表的分区
- 9.6 分桶表数据存储
- 9.7 为表增加列
- 9.8 使用列存储表
- 9.8.1 重复数据
- 9.8.2 多列
- 9.9 (几乎)总是使用压缩
- dy 0章 调优
- 10.1 使用EXPLAIN
- 10.2 EXPLAIN EXTENDED
- 10.3 限制调整
- 10.4 JOIN优化
- 10.5 本地模式
- 10.6 并行执行
- 10.7 严格模式
- 10.8 调整mapper和reducer个数
- 10.9 JVM重用
- 10.10 索引
- 10.11 动态分区调整
- 10.12 推测执行
- 10.13 单个MapReduce中多个GROUP BY
- 10.14 虚拟列
- dy 1章 其他文件格式和压缩方法
- 11.1 确定安装编解码器
- 11.2 选择一种压缩编/解码器
- 11.3 开启中间压缩
- 11.4 终输出结果压缩
- 11.5 sequence file存储格式
- 11.6 使用压缩实践
- 11.7 存档分区
- 11.8 压缩:包扎
- dy 2章 开发
- 12.1 修改Log4J属性
- 12.2 连接Java调试器到Hive
- 12.3 从源码编译Hive
- 12.3.1 执行Hive测试用例
- 12.3.2 执行hook
- 12.4 配置Hive和Eclipse
- 12.5 Maven工程中使用Hive
- 12.6 Hive中使用hive_test进行单元测试
- 12.7 新增的插件开发工具箱(PDK)
- dy 3章 函数
- 13.1 发现和描述函数
- 13.2 调用函数
- 13.3 标准函数
- 13.4 聚合函数
- 13.5 表生成函数
- 13.6 一个通过日期计算其星座的UDF
- 13.7 UDF与GenericUDF
- 13.8 不变函数
- 13.9 用户自定义聚合函数
- 13.10 用户自定义表生成函数
- 13.10.1 可以产生多行数据的UDTF
- 13.10.2 可以产生具有多个字段的单行数据的UDTF
- 13.10.3 可以模拟复杂数据类型的UDTF
- 13.11 在 UDF中访问分布式缓存
- 13.12 以函数的方式使用注解
- 13.12.1 定数性(deterministic)标注
- 13.12.2 状态性(stateful)标注
- 13.12.3 wei一性
- 13.13 宏命令
- dy 4章 Streaming
- 14.1 恒等变换
- 14.2 改变类型
- 14.3 投影变换
- 14.4 操作转换
- 14.5 使用分布式内存
- 14.6 由一行产生多行
- 14.7 使用streaming进行聚合计算
- 14.8 CLUSTER BY、DISTRIBUTE BY、SORT BY
- 14.9 GenericMR Tools for Streaming to Java
- 14.10 计算cogroup
- dy 5章 自定义Hive文件和记录格式
- 15.1 文件和记录格式
- 15.2 阐明CREATE TABLE句式
- 15.3 文件格式
- 15.3.1 SequenceFile
- 15.3.2 RCfile
- 15.3.3 示例自定义输入格式:DualInputFormat
- 15.4 记录格式:SerDe
- 15.5 CSV和TSV SerDe
- 15.6 ObjectInspector
- 15.7 Thing Big Hive Reflection ObjectInspector
- 15.8 XML UDF
- 15.9 XPath相关的函数
- 15.10 JSON SerDe
- 15.11 Avro Hive SerDe
- 15.11.1 使用表属性信息定义Avro Schema
- 15.11.2 从指定URL中定义Schema
- 15.11.3 进化的模式
- 15.12 二进制输出
- dy 6章 Hive的Thrift服务
- 16.1 启动Thrift Server
- 16.2 配置Groovy使用HiveServer
- 16.3 连接到HiveServer
- 16.4 获取集群状态信息
- 16.5 结果集模式
- 16.6 获取结果
- 16.7 获取执行计划
- 16.8 元数据存储方法
- 16.9 管理HiveServer
- 16.9.1 生产环境使用HiveServer
- 16.9.2 清理
- 16.10 Hive ThriftMetastore
- 16.10.1 ThriftMetastore 配置
- 16.10.2 客户端配置
- dy 7章 存储处理程序和NoSQL
- 17.1 Storage Handler Background
- 17.2 HiveStorageHandler
- 17.3 HBase
- 17.4 Cassandra
- 17.4.1 静态列映射(Static Column Mapping)
- 17.4.2 为动态列转置列映射
- 17.4.3 Cassandra SerDe Properties
- 17.5 DynamoDB
- dy 8章 安全
- 18.1 和Hadoop安全功能相结合
- 18.2 使用Hive进行验证
- 18.3 Hive中的权限管理
- 18.3.1 用户、组和角色
- 18.3.2 Grant 和 Revoke权限
- 18.4 分区级别的权限
- 18.5 自动授权
- dy 9章 锁
- 19.1 Hive结合Zookeeper支持锁功能
- 19.2 显式锁和独占锁
- 第20章 Hive和Oozie整合
- 20.1 Oozie提供的多种动作(Action)
- 20.2 一个只包含两个查询过程的工作流示例
- 20.3 Oozie 网页控制台
- 20.4 工作流中的变量
- 20.5 获取输出
- 20.6 获取输出到变量
- 第21章 Hive和 网络服务系统(AWS)
- 21.1 为什么要弹性MapReduce
- 21.2 实例
- 21.3 开始前的注意事项
- 21.4 管理自有EMR Hive集群
- 21.5 EMR Hive上的Thrift Server服务
- 21.6 EMR上的实例组
- 21.7 配置EMR集群
- 21.7.1 部署hive-site.xml文件
- 21.7.2 部署.hiverc脚本
- 21.7.3 建立一个内存密集型配置
- 21.8 EMR上的持久层和元数据存储
- 21.9 EMR集群上的HDFS和S3
- 21.10 在S3上部署资源、配置和辅助程序脚本
- 21.11 S3上的日志
- 21.12 现买现卖
- 21.13 安全组
- 21.14 EMR和EC2以及Apache Hive的比较
- 21.15 包装
- 第22章 HCatalog
- 22.1 介绍
- 22.2 MapReduce
- 22.2.1 读数据
- 22.2.2 写数据
- 22.3 命令行
- 22.4 安全模型
- 22.5 架构
- 第23章 案例研究
- 23.1 m6d.com(Media6Degrees)
- 23.1.1 M 6D的数据科学,使用Hive和R
- 23.1.2 M6D UDF伪随机
- 23.1.3 M6D如何管理多MapReduce集群间的Hive数据访问
- 23.2 Outbrain
- 23.2.1 站内线上身份识别
- 23.2.2 计算复杂度
- 23.2.3 会话化
- 23.3 NASA喷气推进实验室
- 23.3.1 区域气候模型评价系统
- 23.3.2 我们的经验:为什么使用Hive
- 23.3.3 解决这些问题我们所面临的挑战
- 23.4 Photobucket
- 23.4.1 Photobucket 公司的大数据应用情况
- 23.4.2 Hive所使用的硬件资源信息
- 23.4.3 Hive提供了什么
- 23.4.4 Hive支持的用户有哪些
- 23.5 SimpleReach
- 23.6 Experiences and Needs from the Customer Trenches
- 23.6.1 介绍
- 23.6.2 Customer Trenches的用例
- 术语词汇表