Hive编程指南

Hive编程指南

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

Hive编程指南:案例教学、优化与扩展

内容简介

  《Hive编程指南》是一本ApacheHive的编程指南,旨在介绍如何使用Hive的SQL方法——HiveQL来汇总、查询和分析存储在Hadoop分布式文件系统上的大数据集合。《Hive编程指南》通过大量的实例,首先介绍如何在用户环境下安装和配置Hive,并对Hadoop和MapReduce进行详尽阐述,演示Hive如何在Hadoop生态系统进行工作。

  《Hive编程指南》适合对大数据感兴趣的爱好者以及正在使用Hadoop系统的数据库管理员阅读使用。

作者简介

Edward Capriolo:Media6degrees公司系统管理员,他是Apache软件基金会成员,还是Hadoop-Hive项目成员。

Dean Wampler:Think Big Analytics公司总顾问,对大数据问题以及Hadoop和机器学习有专门的研究。

Jason Rutherglen:Think Big Analytics公司软件架构师,对大数据、Hadoop、搜索和安全有专门的研究。

章节目录

版权信息

版权声明

内容提要

O'Reilly Media,Inc.介绍

作者简介

作者序

致谢

前言

第1章 基础知识

1.1 Hadoop和MapReduce综述

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 语句

HAVING语句

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 类型转换

类型转换BINARY值

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 创建索引

Bitmap索引

8.2 重建索引

8.3 显示索引

8.4 删除索引

8.5 实现一个定制化的索引处理器

第9章 模式设计

9.1 按天划分的表

9.2 关于分区

9.3 唯一键和标准化

9.4 同一份数据多种处理

9.5 对于每个表的分区

9.6 分桶表数据存储

9.7 为表增加列

9.8 使用列存储表

9.8.1 重复数据

9.8.2 多列

9.9 (几乎)总是使用压缩

第10章 调优

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 虚拟列

第11章 其他文件格式和压缩方法

11.1 确定安装编解码器

11.2 选择一种压缩编/解码器

11.3 开启中间压缩

11.4 最终输出结果压缩

11.5 sequence file存储格式

11.6 使用压缩实践

11.7 存档分区

11.8 压缩:包扎

第12章 开发

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)

第13章 函数

13.1 发现和描述函数

13.2 调用函数

13.3 标准函数

13.4 聚合函数

13.5 表生成函数

13.6 一个通过日期计算其星座的UDF

13.7 UDF与GenericUDF

13.8 不变函数

13.9 用户自定义聚合函数

创建一个COLLECT UDAF来模拟GROUP_CONCAT

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 唯一性

13.13 宏命令

第14章 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

第15章 自定义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 二进制输出

第16章 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 客户端配置

第17章 存储处理程序和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

第18章 安全

18.1 和Hadoop安全功能相结合

18.2 使用Hive进行验证

18.3 Hive中的权限管理

18.3.1 用户、组和角色

18.3.2 Grant 和 Revoke权限

18.4 分区级别的权限

18.5 自动授权

第19章 锁

19.1 Hive结合Zookeeper支持锁功能

19.2 显式锁和独占锁

第20章 Hive和Oozie整合

20.1 Oozie提供的多种动作(Action)

Hive Thrift Service 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

标题:来自Karmasphere的视角

23.6.1 介绍

23.6.2 Customer Trenches的用例

术语词汇表

书末说明

欢迎来到异步社区!

Hive编程指南是2013年由人民邮电出版社出版,作者[美]EdwardCapriolo。

得书感谢您对《Hive编程指南》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
Python游戏趣味编程 电子书
1.易于学习和理解:先讲解较少的语法知识,通过游戏案例逐步引入新的语法知识; 2.为初学者量身打造:案例从易到难,所有程序的代码均不超过100行; 3.趣味性强:12个案例,涵盖了多种游戏类型,寓教于乐; 4.可拓展性强:提供练习题和参考答案,巩固知识,训练逻辑思维; 5.配套素材齐全:提供完整源代码和分步骤源代码、游戏素材、游戏效果演示视频,可通过异步社区观看游戏开发步骤讲解视频; 6.全彩印刷。 美国教育家杜威曾说过:“大多数的人,只觉得五官能接触的、实用的东西才有趣味,书本上的趣味是没有的。” 《Python游戏趣味编程》通过介绍12个由易到难的有趣游戏案例的编写过程,带领读者学习用Python开发趣味游戏,从而提升读者对编程的兴趣和能力。 《Python游戏趣味编程》把趣味游戏开发应用于Python编程教学,通过介绍12个由易到难的有趣游戏案例的编写过程,带领读者从零基础开始学习。全书共13章,系统讲解了Python语言基本概念、开发环境搭建、循环、列表、数据类型、条件、复合运算符、字符串拼接、布尔变量、数组、函数、列表操作、面向对象编程等基础知识,还介绍了图片操作、文件读写、声音播放、异常处理等较为实用的编程技能,所有这些知识和技能,都通过游戏案例展示其用法。贯穿各章,还给出了一些练习,帮助读者巩固所学的知识。附录A给出了这些练习题的答案,附录B给出了Python语法知识在书中相关章节的索引。 《Python游戏趣味编程》适合不同年龄、不同层次的Python编程初学者阅读和自学,也可以作为中学生、大学生学习程序设计的教材和少儿编程培训机构的参考教材。 本书适合以下人群阅读: 想要让孩子学习Python编程的家长,或者想要自己教孩子编程的家长。 学习过其他编程语言,想要快速学习Python的人。 对计算机游戏感兴趣,想要尝试Python游戏编程的人。 想要学习Python编程的中学生和大学生。 少儿编程培训机构的老师和学生。 任何对计算机编程感兴趣、特别是初次接触编程的人。 本书中制作和讲解的小游戏 弹跳的小球 美丽的圆圈画 疯狂的小圆圈 飞翔的小鸟 见缝插针 飞机大战 勇闯地下一百层 贪吃蛇 拼图游戏 消灭星星 坚持一百秒 趣味图像生成
Python少儿趣味编程 电子书
适读人群 :任何想要学习Python或初次接触编程的人;Python语言的初学者、计算机专业的学生。尤其适合信息技术课教师或培训机构的老师以及青少年读者(初高中学生)阅读。 《Python少儿趣味编》由少儿编程畅销图书作者精心编写,是少儿学习Python编程的趣味指南,全书共17章,按照由简到难、逐步深入的方式组织各章内容。《Python少儿趣味编》精心选取内容,注重难易适度,语言通俗易懂,代码示例丰富。在每章的末尾,还给出了一些练习题并给出了解答。 《Python少儿趣味编》具有以下特色: ● 精心选取和组织内容,注重难易适度——涵盖基础知识、趣味应用和热门应用。 ● 坚持“做中学”的理念和方法——通过详细的示例和课后练习帮助读者学习和掌握。 ● 体现趣味性——用海龟给图绘制的机器猫、小猪佩奇等卡通角色,编写贪吃蛇游戏,对古典名著《西游记》分词。 ● 增强可拓展性——逐步扩展和改进的“成绩单”示例程序,章末习题既巩固知识,也拓展编程技能。 《Python少儿趣味编》适合想要学习Python 编程基础的少年儿童(尤其是10 岁以上的孩子)及想要教孩子学习编程的家长阅读,也适合少儿编程培训班的老师用作少儿编程培训的教材。 本书带领读者编写的趣味程序包括: ● 帮Johnson 找到回家的路; ● 逐步扩展和改进的“成绩单”示例程序; ● 用海龟绘图绘制的机器猫; ● 用海龟绘图绘制小猪佩奇; ● 弹球游戏; ● 编写贪吃蛇游戏; ● 对古典名著《西游记》分词。
Python趣味创意编程 电子书
本书基于Python编程,实现了15个有趣的互动场景,循序渐进地向读者展示了这些场景的实现过程,帮助读者掌握Python编程。
Python快速编程入门 电子书
Python是一种面向对象、解释性的高*程序语言,它已经被应用在众多领域,包括Web开发、操作系统管理、服务器运维的自动化脚本、科学计算、桌面软件、服务器软件(网络软件)、游戏等方面。本书以Windows为平台,系统全面地讲解了Python3的基础知识,其中,第1章主要是带领读者认识Python;第2章主要针对Python的基础语法进行讲解;第3章主要介绍Python中的常用语句;第4~5章主要介
Java编程动手学 电子书
本书共12章,首先介绍Java语言的基本情况;然后介绍如何在Windows、Linux和macOS三种操作系统中安装Java和集成开发环境以及JShell交互式编程;接着讲解Java的一些常见概念和数据类型以及Java的八大类运算符、各种表达式和语句;之后介绍类和对象这两个核心概念,数组与集合的概念和使用,Java常用工具类,以及Java的异常处理、注解以及泛型机制;最后讲解Java的文件与I/O