内容介绍
编辑
本书强调HBase在企业的实际应用,立足于企业的实际生产环境,旨在帮助企业切实解决大数据技术如何落地的问题。三位作者都是奋战在中国大数据技术一线的实践派专家,本书是他们实践经验的结晶。
本书内容在三个维度上具有重要特色:功能维度,从HBase的安装配置、参数设置,到数据模型、表结构设计、客户端使用、高级特性,本书做了系统且详尽的介绍;实战维度,不仅通过3个典型的应用案例详细讲解了如何使用HBase设计大型的数据应用系统,而且还结合实际生产系统讲解了HBase的集群运维、监控和性能调优;理论维度,则深入分析了HBase、框架设计、模式设计和基本原理。可谓是理论与实践完美结合,深度与广度兼备!
[1]
作者介绍
编辑
马延辉,资深Hadoop技术专家,对Hadoop生态系统相关技术有深刻的理解。曾就职于淘宝、Answers、暴风影音等知名互联网公司,从事Hadoop相关的技术工作,在企业级的大数据系统的研发、运维和管理方面积累了丰富的实战经验。开源HBase监控工具Ella作者。在国内Hadoop社区内非常活跃,经常在各种会议和沙龙上做技术分享,深受欢迎。现在专注于大数据技术在传统行业的落地,致力于大数据技术的普及和推广。
孟鑫,资深Hadoop技术专家,在软件行业从业近10年,对海量数据处理技术有着深刻的认识,曾负责Hadoop平台建设工作,在Hadoop开发和运维方面积累了大量的实战经验。于2013年获取了Cloudera的Hadoop Developer认证,多次到企业和社区去分享Hadoop、HBase等方面的技术知识和经验。对技术拥有极大的兴趣,热衷于研究各种新技术,总结和分享经验及教训,目前从事管理工作,但依然热衷于产品设计和实现。
李立松,资深Hadoop技术专家,Easyhadoop技术社区创始人之一,对HDFS、MapReduce、HBase、Hive等Hadoop生态系统中的技术有比较深入的研究,在Hadoop开发方面积累了丰富的经验。曾就职于暴风,负责暴风大数据平台开发与应用,暴风大数据项目负责人。现在就职于缔元信,担任Hadoop高级工程师,负责缔元信DMP平台的研发工作 [2] 。
孟鑫,资深Hadoop技术专家,在软件行业从业近10年,对海量数据处理技术有着深刻的认识,曾负责Hadoop平台建设工作,在Hadoop开发和运维方面积累了大量的实战经验。于2013年获取了Cloudera的Hadoop Developer认证,多次到企业和社区去分享Hadoop、HBase等方面的技术知识和经验。对技术拥有极大的兴趣,热衷于研究各种新技术,总结和分享经验及教训,目前从事管理工作,但依然热衷于产品设计和实现。
李立松,资深Hadoop技术专家,Easyhadoop技术社区创始人之一,对HDFS、MapReduce、HBase、Hive等Hadoop生态系统中的技术有比较深入的研究,在Hadoop开发方面积累了丰富的经验。曾就职于暴风,负责暴风大数据平台开发与应用,暴风大数据项目负责人。现在就职于缔元信,担任Hadoop高级工程师,负责缔元信DMP平台的研发工作 [2] 。
图书目录
编辑
前言
第—部分基础篇
第1章认识HBase
1.1理解大数据背景
1.1.1什么是大数据
1.1.2为何大数据至关重要
1.1.3NoSQL在大数据中扮演的角色
1.2HBase是什么
1.2.1HBase的发展历史
1.2.2HBase的发行版本
1.2.3HBase的特性
1.3HBase与Hadoop的关系
1.4HBase的核心功能模块
1.4.1客户端Client
1.4.2协调服务组件ZooKeeper
1.4.3主节点HMaster
1.4.4Region节点HRegionServer
1.5HBase的使用场景和经典案例
1.5.1搜索引擎应用
1.5.2增量数据存储
1.5.3用户内容服务
1.5.4实时消息系统构建
1.6本章小结
第2章HBase安装与配置
2.1先决条件
2.2HBase运行模式
2.2.1单机模式
2.2.2分布式模式
2.3HBase的WebUI
2.4HBaseShell工具使用
2.5停止HBase集群
2.6本章小结
第3章数据模型
3.1两类数据模型
3.1.1逻辑模型
3.1.2物理模型
3.2数据模型的重要概念
3.2.1表
3.2.2行键
3.2.3列族
3.2.4单元格
3.3数据模型的操作
3.3.1读Get
3.3.2写Pm
3.3.3扫描Scan
3.3.4删除Delete
3.4数据模型的特殊属性
3.4.1版本
3.4.2排序
3.4.3列的元数据
3.4.4连接查询
3.4.5计数器
3.4.6原子操作
3.4.7事务特性ACID
3.4.8行锁
3.4.9自动分区
3.5CAP原理与最终一致性
3.6本章小结
第4章HBase表结构设计
4.1模式创建
4.2Rowkey设计
4.3列族定义
4.3.1可配置的数据块大小
4.3.2数据块缓存
4.3.3布隆过滤器
4.3.4数据压缩
4.3.5单元时间版本
4.3.6生存时间
4.4模式设计实例
4.4.1实例1:动物分类
4.4.2实例2:店铺与商品
4.4.3实例3:网上商城用户消费记录
4.4.4实例4:微博用户与粉丝
4.5本章小结
第5章HBase客户端
5.1精通原生Java客户端
5.1.1客户端配置
5.1.2创建表
5.1.3删除表
5.1.4插入数据
5.1.5查询数据
5.1.6删除数据
5.1.7过滤查询
5.2使用HBaseShell工具—操HBase
5.2.1命令分类
5.2.2常规命令
5.2.3DDL命令
5.2.4DML命令
5.2.5工具命令T00ls
5.2.6复制命令
5.2.7安全命令
5.3使用Thrift客户端访问HBase
5.3.1Thrift与Thrift2区别
5.3.2安装与部署Thrift2
5.3.3Python使用案例
5.4通过REST客户端访问HBase
5.4.1启动服务
5.4.2使用REST访问example表
5.5使用MapReduce批量操作HBase
5.5.1三种访问模式
5.5.2实现MapReduceAPI
5.5.3HBase作为输入源示例
5.5.4HBase作为输出源示例
5.5.5HBase作为共享源示例
5.6通过WebUI工具查看HBase状态
5.6.1Master状态界面
5.6.2RegionServer状态界面
5.6.3ZooKeeper统计信息页面
5.7其他客户端
5.8本章小结
第二部分实战篇
第6章整合SQL引擎层
6.1NoSQL背景知识
6.1.1什么是NoSQL
6.1.2将SQL整合到HBase的原因
6.1.3基于HBase的SQL引擎实现
6.2Hive整合HBase的实现
6.2.1认识Hive
6.2.2Hive整合HBase的环境准备
6.2.3Linux环境下重新编译Hive
6.2.4Hive参数配置
6.2.5启动Hive
6.2.6Hive与HBase整合后的框架如何使用
6.2.7HBase到Hive的字段映射
6.2.8多列与HiveMap类型
6.3查询引擎PhoeniX
6.3.1认识Phoenix
6.3.2Phoenix安装环境准备
6.3.3Phoenix安装部署
6.3.4Phoenix源码编译
6.3.5Phoenix中SQLLine的快速使用
6.3.6使用JDBC访问Phoenix
6.4对象映射框架Kundera
6.4.1认识Kundera
6.4.2Kundera的客户端API快速使用
6.4.3Kundera模块介绍
6.4.4Kundera的REST访问方式
6.5分布式SQL引擎Lealone
6.5.1认识Lealone
6.5.2Lealone的安装部署
6.5.3通过JDBC访问Lealone
6.5.4通过Python访问Lealone
6.5.5Lealone特有的建表语法
6.6本章小结
第7章构建音乐站用户属性库
7.1案例背景
7.1.1音乐站
7.1.2需求概述
7.1.3需求范围和系统边界
7.1.4需求详述
7.1.5名词解释
7.2概要设计
7.2.1设计目标
7.2.2数据规模假设
7.2.3功能指标
7.2.4系统流程
7.3表结构设计
7.3.1功能抽象
7.3.2逻辑结构
7.3.3Rowkey设计
7.3.4列族设计
7.3.5版本定义
7.3.6优化属性定义
7.4数据加载
7.4.1加载流程
7.4.2Mapper类
7.4.3Main类
7.4.4运行
7.5数据检索
7.5.1HBaseTable
7.5.2HBaseAdmin
7.5.3几种检索类型
7.6后台查询
7.6.1二级索引实现
7.6.2后台查询系统
7.7本章小结
第8章构建广告实时计算系统
8.1理解广告数据和流处理框架
8.1.1网络广告的几大特性
8.1.2网络广告的数据类型
8.1.3流处理框架
8.1.4背景与需求描述
8.2概要设计
8.2.1设计目标
8.2.2主要功能
8.2.3系统架构
8.3详细设计
8.3.1表结构设计
8.3.2功能模块设计
8.4核心功能实现
8.4.1规划集群环境部署
8.4.2安装ZooKeeper集群
8.4.3安装Kafka分布式集群
8.4.4实现Kafka生产者
8.4.5安装Storm分布式集群
8.4.6查看集群节点部署情况
8.4.7基于Storm—kafka中间件
实现计算逻辑
8.4.8如何使用HBase中统计数据
8.5本章小结
第三部分高级篇
第9章核心概念
9.1核心结构
9.1.1B+树
9,1.2LSM树
9.1.3两种结构本质区别
9.2底层持久化
9.2.1存储基本架构
9.2.2HDFS文件
9.2.3Region切分
9.2.4合并
9.2.5HFile格式
9.2.6KeyValue格式
9.3预写日志
9.3.1概要流程
9.3.2相关Java类
9.3.3日志回放
9.3.4日志一致性
9.4写人流程
9.4.1客户端
9.4.2服务器端
9.5查询流程
9.5.1两种查询操作
9.5.2客户端
9.5.3服务器端
9.6数据备份
9.6.1备份机制架构
9.6.2故障恢复
9.7数据压缩
9.7.1支持的压缩算法
9.7.2使用配置
9.8本章小结
……
第10章HBase高级特性
第11章集群运维管理
第12章性能调优
附录AHBase配置参数介绍
附录B PhoenixSQL语法详解
附录CYCSB编译安装 [2]
1.1理解大数据背景
1.1.1什么是大数据
1.1.2为何大数据至关重要
1.1.3NoSQL在大数据中扮演的角色
1.2HBase是什么
1.2.1HBase的发展历史
1.2.2HBase的发行版本
1.2.3HBase的特性
1.3HBase与Hadoop的关系
1.4HBase的核心功能模块
1.4.1客户端Client
1.4.2协调服务组件ZooKeeper
1.4.3主节点HMaster
1.4.4Region节点HRegionServer
1.5HBase的使用场景和经典案例
1.5.1搜索引擎应用
1.5.2增量数据存储
1.5.3用户内容服务
1.5.4实时消息系统构建
1.6本章小结
第2章HBase安装与配置
2.1先决条件
2.2HBase运行模式
2.2.1单机模式
2.2.2分布式模式
2.3HBase的WebUI
2.4HBaseShell工具使用
2.5停止HBase集群
2.6本章小结
第3章数据模型
3.1两类数据模型
3.1.1逻辑模型
3.1.2物理模型
3.2数据模型的重要概念
3.2.1表
3.2.2行键
3.2.3列族
3.2.4单元格
3.3数据模型的操作
3.3.1读Get
3.3.2写Pm
3.3.3扫描Scan
3.3.4删除Delete
3.4数据模型的特殊属性
3.4.1版本
3.4.2排序
3.4.3列的元数据
3.4.4连接查询
3.4.5计数器
3.4.6原子操作
3.4.7事务特性ACID
3.4.8行锁
3.4.9自动分区
3.5CAP原理与最终一致性
3.6本章小结
第4章HBase表结构设计
4.1模式创建
4.2Rowkey设计
4.3列族定义
4.3.1可配置的数据块大小
4.3.2数据块缓存
4.3.3布隆过滤器
4.3.4数据压缩
4.3.5单元时间版本
4.3.6生存时间
4.4模式设计实例
4.4.1实例1:动物分类
4.4.2实例2:店铺与商品
4.4.3实例3:网上商城用户消费记录
4.4.4实例4:微博用户与粉丝
4.5本章小结
第5章HBase客户端
5.1精通原生Java客户端
5.1.1客户端配置
5.1.2创建表
5.1.3删除表
5.1.4插入数据
5.1.5查询数据
5.1.6删除数据
5.1.7过滤查询
5.2使用HBaseShell工具—操HBase
5.2.1命令分类
5.2.2常规命令
5.2.3DDL命令
5.2.4DML命令
5.2.5工具命令T00ls
5.2.6复制命令
5.2.7安全命令
5.3使用Thrift客户端访问HBase
5.3.1Thrift与Thrift2区别
5.3.2安装与部署Thrift2
5.3.3Python使用案例
5.4通过REST客户端访问HBase
5.4.1启动服务
5.4.2使用REST访问example表
5.5使用MapReduce批量操作HBase
5.5.1三种访问模式
5.5.2实现MapReduceAPI
5.5.3HBase作为输入源示例
5.5.4HBase作为输出源示例
5.5.5HBase作为共享源示例
5.6通过WebUI工具查看HBase状态
5.6.1Master状态界面
5.6.2RegionServer状态界面
5.6.3ZooKeeper统计信息页面
5.7其他客户端
5.8本章小结
第二部分实战篇
第6章整合SQL引擎层
6.1NoSQL背景知识
6.1.1什么是NoSQL
6.1.2将SQL整合到HBase的原因
6.1.3基于HBase的SQL引擎实现
6.2Hive整合HBase的实现
6.2.1认识Hive
6.2.2Hive整合HBase的环境准备
6.2.3Linux环境下重新编译Hive
6.2.4Hive参数配置
6.2.5启动Hive
6.2.6Hive与HBase整合后的框架如何使用
6.2.7HBase到Hive的字段映射
6.2.8多列与HiveMap类型
6.3查询引擎PhoeniX
6.3.1认识Phoenix
6.3.2Phoenix安装环境准备
6.3.3Phoenix安装部署
6.3.4Phoenix源码编译
6.3.5Phoenix中SQLLine的快速使用
6.3.6使用JDBC访问Phoenix
6.4对象映射框架Kundera
6.4.1认识Kundera
6.4.2Kundera的客户端API快速使用
6.4.3Kundera模块介绍
6.4.4Kundera的REST访问方式
6.5分布式SQL引擎Lealone
6.5.1认识Lealone
6.5.2Lealone的安装部署
6.5.3通过JDBC访问Lealone
6.5.4通过Python访问Lealone
6.5.5Lealone特有的建表语法
6.6本章小结
第7章构建音乐站用户属性库
7.1案例背景
7.1.1音乐站
7.1.2需求概述
7.1.3需求范围和系统边界
7.1.4需求详述
7.1.5名词解释
7.2概要设计
7.2.1设计目标
7.2.2数据规模假设
7.2.3功能指标
7.2.4系统流程
7.3表结构设计
7.3.1功能抽象
7.3.2逻辑结构
7.3.3Rowkey设计
7.3.4列族设计
7.3.5版本定义
7.3.6优化属性定义
7.4数据加载
7.4.1加载流程
7.4.2Mapper类
7.4.3Main类
7.4.4运行
7.5数据检索
7.5.1HBaseTable
7.5.2HBaseAdmin
7.5.3几种检索类型
7.6后台查询
7.6.1二级索引实现
7.6.2后台查询系统
7.7本章小结
第8章构建广告实时计算系统
8.1理解广告数据和流处理框架
8.1.1网络广告的几大特性
8.1.2网络广告的数据类型
8.1.3流处理框架
8.1.4背景与需求描述
8.2概要设计
8.2.1设计目标
8.2.2主要功能
8.2.3系统架构
8.3详细设计
8.3.1表结构设计
8.3.2功能模块设计
8.4核心功能实现
8.4.1规划集群环境部署
8.4.2安装ZooKeeper集群
8.4.3安装Kafka分布式集群
8.4.4实现Kafka生产者
8.4.5安装Storm分布式集群
8.4.6查看集群节点部署情况
8.4.7基于Storm—kafka中间件
实现计算逻辑
8.4.8如何使用HBase中统计数据
8.5本章小结
第三部分高级篇
第9章核心概念
9.1核心结构
9.1.1B+树
9,1.2LSM树
9.1.3两种结构本质区别
9.2底层持久化
9.2.1存储基本架构
9.2.2HDFS文件
9.2.3Region切分
9.2.4合并
9.2.5HFile格式
9.2.6KeyValue格式
9.3预写日志
9.3.1概要流程
9.3.2相关Java类
9.3.3日志回放
9.3.4日志一致性
9.4写人流程
9.4.1客户端
9.4.2服务器端
9.5查询流程
9.5.1两种查询操作
9.5.2客户端
9.5.3服务器端
9.6数据备份
9.6.1备份机制架构
9.6.2故障恢复
9.7数据压缩
9.7.1支持的压缩算法
9.7.2使用配置
9.8本章小结
……
第10章HBase高级特性
第11章集群运维管理
第12章性能调优
附录AHBase配置参数介绍
附录B PhoenixSQL语法详解
附录CYCSB编译安装 [2]
下载地址: 网盘下载