zoukankan      html  css  js  c++  java
  • Hive编程指南

    Hive编程指南

    O'Reilly Media,Inc.介绍

    作者序

    Edward Capriolo

    Dean Wampler

    Jason Rutherglen

    本书中所使用的约定

    使用的代码示例

    Safari®在线图书

    如何联系到我们

    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
    1.Linux系统中Java安装步骤
    2.Mac OS X系统中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-1 本地模式下的hive-site,xml配置文件。
    2.5.2 分布式模式和伪分布式模式配置
    2.5.3 使用JDBC连接元数据
    例2-2 hive-site.xml中的元数据存储数据库配置。

    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 使用函数
    1.数学函数
    2.聚合函数
    3.表生成函数
    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-1 Hive中不支持的查询语句
    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-2 Hive中不支持的查询
    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-1 explode函数的错误使用方式:

    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)

    1.MapReduce
    2.Shell
    3.Java 动作
    4.Pig
    5.Hive
    6.DistCp
    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集群

    1.EMR AWS管理控制台(基于Web的前端控制台)
    2.EMR命令行交互界面
    3.EMR API

    21.5 EMR Hive上的Thrift Server服务

    21.6 EMR上的实例组

    1.管理者实例组
    2.核心实例组
    3.任务(task)实例组

    21.7 配置EMR集群

    21.7.1 部署hive-site.xml文件
    21.7.2 部署.hiverc脚本
    1.使用配置步骤部署.hiverc脚本
    2.使用辅助工具脚本部署.hiverc脚本
    21.7.3 建立一个内存密集型配置

    21.8 EMR上的持久层和元数据存储

    1.使用EMR集群外的稳固的元数据存储
    2.使用初始化脚本
    3.在S3上进行MySQL dump操作

    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数据访问
    1.使用Hive执行跨集群查询
    2.不同集群间的Hive数据冗余

    23.2 Outbrain

    23.2.1 站内线上身份识别
    1.对URL进行清洗
    2.Determining referrer type
    3.Multiple URL
    23.2.2 计算复杂度
    1.为什么这是个问题
    2.加载一个临时表
    3.查询临时表
    23.2.3 会话化
    1.设置
    2.找到来源页面浏览量
    3.将PV分桶到起始页面中
    4.对起始页面进行聚合
    5.按照起始页面类型进行聚合
    6.衡量热度

    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的用例
    1.Customer trenches 1: 为Hive优化存储格式
    2.Customer trenches 2: 分区和性能
    3.Customer trenches 3: 使用 Regex、Lateral View Explode、Ngram和其他一些 UDF 进行文本分析

    术语词汇表

    书末说明

    欢迎来到异步社区!

    异步社区的来历

    社区里都有什么?

    购买图书
    下载资源
    与作译者互动

    灵活优惠的购书

    特别优惠
    纸电图书组合购买

    社区里还可以做什么?

    写作
    会议活动早知道

    加入异步

    思维导图

    Hive编程指南

    防止博客图床图片失效,防止图片源站外链:

    http://www.processon.com/chart_image/5e5b375ee4b0541c5e149799.png)

    思维导图在线编辑链接:

    https://www.processon.com/view/5e5b375ee4b0541c5e149796

  • 相关阅读:
    查看linux系统内置宏定义
    C++ typename 关键字总结
    vs2017 如何定位C++内存泄漏
    centos7.6下pyspider + python2.7安装
    centos7下安装python3.7.5
    centos7下docker安装
    centos7.6下redis安装
    centos7下git的安装
    centos7下mysql5.7的安装
    centos7下nginx,tomcaat开机启动(新)
  • 原文地址:https://www.cnblogs.com/jingle1267/p/12904781.html
Copyright © 2011-2022 走看看