Hive编程指南
Edward Capriolo, Dean Wampler, Jason Rutherglen
曹坤 译
出版时间:2013年11月
页数:318
要把关系型数据库应用迁移到Hadoop上,你该何去何从?本书介绍了Apache Hive,它是基于Hadoop的数据仓库架构。通过本书,读者可以很快学会如何使用Hive的SQL方言——HiveQL来汇总、查询和分析存储在Hadoop分布式文件系统上的大型数据集。
本书以实际案例为主线,详细介绍如何在用户环境下安装和配置Hive,并对Hadoop和MapReduce的各项技术进行概要介绍,同时演示Hive在Hadoop生态系统中是如何工作的。在本书中,读者还可以看到众多的实际使用场景,包括企业如何使用Hive解决了涉及PB级数据的问题。
· 使用Hive创建、修改和删除数据库、表、视图、函数和索引。
· 从文件到外部数据库,自定义数据存储格式和存储选项。
· 将数据载入表中以及从表中抽取数据,并使用查询、分组、过滤、连接和其他常规查询方法。
· 获得创建用户自定义函数(UDF)的最佳方法。
· 了解应该使用的Hive模式以及应该避免的反模式。
· 将Hive和其他数据处理程序进行整合。
· 对于NoSQL数据库和其他数据存储使用存储控制器。
· 学习在亚马逊弹性MapReduce上执行Hive的正反两方面信息。
  1. 第1章 基础知识 
  2. 1.1 hadoop和mapreduce综述 
  3. 1.2 hadoop生态系统中的hive 
  4. 1.2.1 pig 
  5. 1.2.2 hbase 
  6. 1.2.3 cascading、crunch及其他 
  7. 1.3 java和hive:词频统计算法
  8. 1.4 后续事情
  9. 第2章 基础操作
  10. 2.1 安装预先配置好的虚拟机
  11. 2.2 安装详细步骤 
  12. 2.2.1 装java 
  13. 2.2.2 安装hadoop 
  14. 2.2.3 本地模式、伪分布式模式和分布式模式 
  15. 2.2.4 测试hadoop 
  16. 2.2.5 安装hive 
  17. 2.3 hive内部是什么
  18. 2.4 启动hive 
  19. 2.5 配置hadoop环境
  20. .2.5.1 本地模式配置
  21. 2.5.2 分布式模式和伪分布式模式配置
  22. 2.5.3 使用jdbc连接元数据
  23. 2.6 hive命令
  24. 2.7 命令行界面
  25. 2.7.1 cli 选项
  26. 2.7.2 变量和属性
  27. 2.7.3 hive中“一次使用”命令
  28. 2.7.4 从文件中执行hive查询
  29. 2.7.5 hiverc文件
  30. 2.7.6 使用hive cli的更多介绍
  31. 2.7.7 查看操作命令历史
  32. 2.7.8 执行shell命令
  33. 2.7.9 在hive内使用hadoop的dfs命令2.7.10 hive脚本中如何进行注释
  34. 2.7.11 显示字段名称
  35. 第3章 数据类型和文件格式
  36. 3.1 基本数据类型
  37. 3.2 集合数据类型
  38. 3.3 文本文件数据编码
  39. 3.4 读时模式
  40. 第4章 hiveql:数据定义
  41. 4.1 hive中的数据库
  42. 4.2 修改数据库
  43. 4.3 创建表
  44. 4.3.1 管理表
  45. 4.3.2 外部表
  46. 4.4 分区表、管理表
  47. 4.4.1 外部分区表
  48. 4.4.2 自定义表的存储格式
  49. 4.5 删除表
  50. 4.6 修改表
  51. 4.6.1 表重命名
  52. 4.6.2 增加、修改和删除表分区
  53. 4.6.3 修改列信息
  54. 4.6.4 增加列
  55. 4.6.5 删除或者替换列
  56. 4.6.6 修改表属性
  57. 4.6.7 修改存储属性
  58. 4.6.8 众多的修改表语句
  59. 第5章 hiveql:数据操作
  60. 5.1 向管理表中装载数据
  61. 5.2 通过查询语句向表中插入数据
  62. 5.3 单个查询语句中创建表并加载数据
  63. 5.4 导出数据
  64. 第6章 hiveql:查询
  65. 6.1 select…from语句
  66. 6.1.1 使用正则表达式来指定列
  67. 6.1.2 使用列值进行计算
  68. 6.1.3 算术运算符
  69. 6.1.4 使用函数
  70. 6.1.5 limit语句
  71. 6.1.6 列别名
  72. 6.1.7 嵌套select语句
  73. 6.1.8 case…when…then 句式
  74. 6.1.9 什么情况下hive可以避免进行mapreduce 
  75. 6.2 where语句
  76. 6.2.1 谓词操作符
  77. 6.2.2 关于浮点数比较
  78. 6.2.3 like和rlike
  79. 6.3 group by 语句
  80. 6.4 join语句
  81. 6.4.1 inner join 
  82. 6.4.2 join优化
  83. 6.4.3 left outer join 
  84. 6.4.4 outer join 
  85. 6.4.5 right outer join 
  86. 6.4.6 full outer join 
  87. 6.4.7 left semi-join 
  88. 6.4.8 笛卡尔积join 
  89. 6.4.9 map-side join 
  90. 6.5 order by和sort by 
  91. 6.6 含有sort by 的distribute by 
  92. 6.7 cluster by 
  93. 6.8 类型转换
  94. 6.9 抽样查询
  95. 6.9.1 数据块抽样
  96. 6.9.2 分桶表的输入裁剪
  97. 6.10 union all 
  98. 第7章 hiveql:视图
  99. 7.1 使用视图来降低查询复杂度
  100. 7.2 使用视图来限制基于条件过滤的数据 7.3 动态分区中的视图和map类型
  101. 7.4 视图零零碎碎相关的事情
  102. 第8章 hiveql:索引
  103. 8.1 创建索引
  104. 8.2 重建索引
  105. 8.3 显示索引
  106. 8.4 删除索引
  107. 8.5 实现一个定制化的索引处理器
  108. 第9章 模式设计
  109. 9.1 按天划分的表
  110. 9.2 关于分区
  111. 9.3 唯一键和标准化
  112. 9.4 同一份数据多种处理
  113. 9.5 对于每个表的分区
  114. 9.6 分桶表数据存储
  115. 9.7 为表增加列
  116. 9.8 使用列存储表
  117. 9.8.1 重复数据
  118. 9.8.2 多列
  119. 9.9 (几乎)总是使用压缩
  120. 第10章 调优
  121. 10.1 使用explain 
  122. 10.2 explain extended 
  123. 10.3 限制调整
  124. 10.4 join优化
  125. 10.5 本地模式
  126. 10.6 并行执行
  127. 10.7 严格模式
  128. 10.8 调整mapper和reducer个数
  129. 10.9 jvm重用
  130. 10.10 索引
  131. 10.11 动态分区调整
  132. 10.12 推测执行
  133. 10.13 单个mapreduce中多个group by 
  134. 10.14 虚拟列
  135. 第11章 其他文件格式和压缩方法
  136. 11.1 确定安装编解码器
  137. 11.2 选择一种压缩编/解码器
  138. 11.3 开启中间压缩
  139. 11.4 最终输出结果压缩
  140. 11.5 sequence file存储格式
  141. 11.6 使用压缩实践
  142. 11.7 存档分区
  143. 11.8 压缩:包扎
  144. 第12章 开发
  145. 12.1 修改log4j属性 
  146. 12.2 连接java调试器到hive 
  147. 12.3 从源码编译hive 
  148. 12.3.1 执行hive测试用例 
  149. 12.3.2 执行hook 
  150. 12.4 配置hive和eclipse 
  151. 12.5 maven工程中使用hive 
  152. 12.6 hive中使用hive_test进行单元测试 12.7 新增的插件开发工具箱(pdk)
  153. 第13章 函数
  154. 13.1 发现和描述函数
  155. 13.2 调用函数
  156. 13.3 标准函数
  157. 13.4 聚合函数
  158. 13.5 表生成函数 
  159. 13.6 一个通过日期计算其星座的udf 
  160. 13.7 udf与genericudf 
  161. 13.8 不变函数
  162. 13.9 用户自定义聚合函数
  163. 13.10 用户自定义表生成函数 
  164. 13.10.1 可以产生多行数据的udtf 
  165. 13.10.2 可以产生具有多个字段的单行数据的udtf 
  166. 13.10.3 可以模拟复杂数据类型的udtf 
  167. 13.11 在 udf中访问分布式缓存
  168. 13.12 以函数的方式使用注解
  169. 13.12.1 定数性(deterministic)标注
  170. 13.12.2 状态性(stateful)标注
  171. 13.12.3 唯一性
  172. 13.13 宏命令 
  173. 第14章 streaming 
  174. 14.1 恒等变换
  175. 14.2 改变类型
  176. 14.3 投影变换
  177. 14.4 操作转换
  178. 14.5 使用分布式内存
  179. 14.6 由一行产生多行
  180. 14.7 使用streaming进行聚合计算
  181. 14.8 cluster by、distribute by、sort by 
  182. 14.9 genericmr tools for streaming to java 
  183. 14.10 计算cogroup 
  184. 第15章 自定义hive文件和记录格式
  185. 15.1 文件和记录格式
  186. 15.2 阐明create table句式
  187. 15.3 文件格式
  188. 15.3.1 sequencefile 
  189. 15.3.2 rcfile 
  190. 15.3.3 示例自定义输入格式:dualinputformat 
  191. 15.4 记录格式:serde 
  192. 15.5 csv和tsv serde 
  193. 15.6 objectinspector 
  194. 15.7 thing big hive reflection objectinspector 
  195. 15.8 xml udf 
  196. 15.9 xpath相关的函数 
  197. 15.10 json serde 
  198. 15.11 avro hive serde 
  199. 15.11.1 使用表属性信息定义avro schema 
  200. 15.11.2 从指定url中定义schema 
  201. 15.11.3 进化的模式
  202. 15.12 二进制输出
  203. 第16章 hive的thrift服务
  204. 16.1 启动thrift server 
  205. 16.2 配置groovy使用hiveserver 
  206. 16.3 连接到hiveserver 
  207. 16.4 获取集群状态信息
  208. 16.5 结果集模式
  209. 16.6 获取结果
  210. 16.7 获取执行计划
  211. 16.8 元数据存储方法 
  212. 16.9 管理hiveserver 
  213. 16.9.1 生产环境使用hiveserver 
  214. 16.9.2 清理 
  215. 16.10 hive thriftmetastore 
  216. 16.10.1 thriftmetastore 配置 
  217. 16.10.2 客户端配置 
  218. 第17章 存储处理程序和nosql 
  219. 17.1 storage handler background 
  220. 17.2 hivestoragehandler 
  221. 17.3 hbase 
  222. 17.4 cassandra 
  223. 17.4.1 静态列映射(static column mapping)
  224. 17.4.2 为动态列转置列映射
  225. 17.4.3 cassandra serde properties 
  226. 17.5 dynamodb 
  227. 第18章 安全
  228. 18.1 和hadoop安全功能相结合
  229. 18.2 使用hive进行验证
  230. 18.3 hive中的权限管理
  231. 18.3.1 用户、组和角色
  232. 18.3.2 grant 和 revoke权限
  233. 18.4 分区级别的权限
  234. 18.5 自动授权
  235. 第19章 锁
  236. 19.1 hive结合zookeeper支持锁功能
  237. 19.2 显式锁和独占锁
  238. 第20章 hive和oozie整合
  239. 20.1 oozie提供的多种动作(action)
  240. 20.2 一个只包含两个查询过程的工作流示例
  241. 20.3 oozie 网页控制台
  242. 20.4 工作流中的变量
  243. 20.5 获取输出
  244. 20.6 获取输出到变量
  245. 第21章 hive和亚马逊网络服务系统(aws) 
  246. 21.1 为什么要弹性mapreduce 
  247. 21.2 实例
  248. 21.3 开始前的注意事项
  249. 21.4 管理自有emr hive集群
  250. 21.5 emr hive上的thrift server服务
  251. 21.6 emr上的实例组
  252. 21.7 配置emr集群
  253. 21.7.1 部署hive-site.xml文件
  254. 21.7.2 部署.hiverc脚本
  255. 21.7.3 建立一个内存密集型配置
  256. 21.8 emr上的持久层和元数据存储
  257. 21.9 emr集群上的hdfs和s3 
  258. 21.10 在s3上部署资源、配置和辅助程序脚本
  259. 21.11 s3上的日志
  260. 21.12 现买现卖
  261. 21.13 安全组
  262. 21.14 emr和ec2以及apache hive的比较
  263. 21.15 包装
  264. 第22章 hcatalog 
  265. 22.1 介绍 
  266. 22.2 mapreduce 
  267. 22.2.1 读数据
  268. 22.2.2 写数据
  269. 22.3 命令行
  270. 22.4 安全模型
  271. 22.5 架构
  272. 第23章 案例研究
  273. 23.1 m6d.com(media6degrees)
  274. 23.1.1 m 6d的数据科学,使用hive和r 
  275. 23.1.2 m6d udf伪随机
  276. 23.1.3 m6d如何管理多mapreduce集群间的hive数据访问
  277. 23.2 outbrain 
  278. 23.2.1 站内线上身份识别
  279. 23.2.2 计算复杂度
  280. 23.2.3 会话化
  281. 23.3 nasa喷气推进实验室 
  282. 23.3.1 区域气候模型评价系统 
  283. 23.3.2 我们的经验:为什么使用hive 
  284. 23.3.3 解决这些问题我们所面临的挑战 
  285. 23.4 photobucket 
  286. 23.4.1 photobucket 公司的大数据应用情况
  287. 23.4.2 hive所使用的硬件资源信息
  288. 23.4.3 hive提供了什么23.4.4 hive支持的用户有哪些
  289. 23.5 simplereach 
  290. 23.6 experiences and needs from the customer trenches 
  291. 23.6.1 介绍
  292. 23.6.2 customer trenches的用例
  293. 术语词汇表
书名:Hive编程指南
译者:曹坤 译
国内出版社:人民邮电出版社
出版时间:2013年11月
页数:318
书号:978-7-115-33383-4
原版书书名:Programming Hive
原版书出版商:O'Reilly Media
Edward Capriolo
 
Media6degrees公司系统管理员,他是Apache软件基金会成员,还是Hadoop-Hive项目成员。
 
 
Dean Wampler
 
Think Big Analytics公司总顾问,对大数据问题以及Hadoop和机器学习有专门的研究。
 
 
Jason Rutherglen
 
Think Big Analytics公司软件架构师,对大数据、Hadoop、搜索和安全有专门的研究。