内容简介
本书强调Hbase在企业的实际应用,立足于企业的实际生产环境,旨在帮助企业切实解决大数据技术如何落地的问题。三位作者都是奋战在中国大数据技术一线的实践派专家,本书是他们实践经验的结晶。
本书内容在三个维度上具有重要:功能维度,从Hbase的安装配置、参数设置,到数据模型、表结构设计、客户端使用、特性,本书做了系统且详尽的介绍;实战维度,不仅通过3个典型的应用案例详细讲解了如何使用Hbase设计大型的数据应用系统,而且还结合实际生产系统讲解了Hbase的集群运维、监控和性能调优;理论维度,则深入分析了Hbase、框架设计、模式设计和基本原理。可谓是理论与实践结合,深度与广度兼备!
目录
目 录
前 言
第一部分 基础篇
第1章 认识Hbase 2
1.1 理解大数据背景 2
1.1.1 什么是大数据 3
1.1.2 为何大数据至关重要 4
1.1.3 NoSQL在大数据中扮演的角色 4
1.2 Hbase是什么 6
1.2.1 Hbase的发展历史 6
1.2.2 Hbase的发行版本 7
1.2.3 Hbase的特性 9
1.3 Hbase与Hadoop的关系 10
1.4 Hbase的核心功能模块 12
1.4.1 客户端Client 12
1.4.2 协调服务组件ZooKeeper 13
1.4.3 主节点HMaster 13
1.4.4 Region节点HRegionServer 13
1.5 Hbase的使用场景和经典案例 14
1.5.1 搜索引擎应用 15
1.5.2 增量数据存储 15
1.5.3 用户内容服务 17
1.5.4 实时消息系统构建 18
1.6 本章小结 18
第2章 Hbase安装与配置 19
2.1 先决条件 19
2.2 Hbase运行模式 23
2.2.1 单机模式 23
2.2.2 分布式模式 24
2.3 Hbase的Web UI 31
2.4 Hbase Shell工具使用 31
2.5 停止Hbase集群 33
2.6 本章小结 33
第3章 数据模型 34
3.1 两类数据模型 34
3.1.1 逻辑模型 35
3.1.2 物理模型 35
3.2 数据模型的重要概念 36
3.2.1 表 36
3.2.2 行键 37
3.2.3 列族 38
3.2.4 单元格 38
3.3 数据模型的操作 38
3.3.1 读Get 39
3.3.2 写Put 39
3.3.3 扫描Scan 39
3.3.4 删除Delete 40
3.4 数据模型的特殊属性 40
3.4.1 版本 40
3.4.2 排序 42
3.4.3 列的元数据 42
3.4.4 连接查询 43
3.4.5 计数器 43
3.4.6 原子操作 43
3.4.7 事务特性ACID 43
3.4.8 行锁 45
3.4.9 自动分区 45
3.5 CAP原理与一致性 46
3.6 本章小结 47
第4章 Hbase表结构设计 48
4.1 模式创建 48
4.2 Rowkey设计 49
4.3 列族定义 51
4.3.1 可配置的数据块大小 51
4.3.2 数据块缓存 52
4.3.3 布隆过滤器 52
4.3.4 数据压缩 53
4.3.5 单元时间版本 53
4.3.6 生存时间 54
4.4 模式设计实例 54
4.4.1 实例1:动物分类 54
4.4.2 实例2:店铺与商品 56
4.4.3 实例3:网上商城用户消费记录 57
4.4.4 实例4:微博用户与粉丝 58
4.5 本章小结 60
第5章 Hbase客户端 61
5.1 精通原生Java客户端 61
5.1.1 客户端配置 62
5.1.2 创建表 69
5.1.3 删除表 70
5.1.4 插入数据 70
5.1.5 查询数据 72
5.1.6 删除数据 76
5.1.7 过滤查询 77
5.2 使用Hbase Shell工具操作Hbase 79
5.2.1 命令分类 79
5.2.2 常规命令 80
5.2.3 DDL命令 81
5.2.4 DML命令 82
5.2.5 工具命令Tools 86
5.2.6 复制命令 87
5.2.7 安全命令 87
5.3 使用Thrift客户端访问Hbase 88
5.3.1 Thrift与Thrift2区别 88
5.3.2 安装与部署Thrift2 89
5.3.3 Python使用案例 93
5.4 通过REST客户端访问Hbase 95
5.4.1 启动服务 95
5.4.2 使用REST访问example表 96
5.5 使用MapReduce批量操作Hbase 97
5.5.1 三种访问模式 98
5.5.2 实现MapReduce API 98
5.5.3 Hbase作为输入源示例 99
5.5.4 Hbase作为输出源示例 101
5.5.5 Hbase作为共享源示例 103
5.6 通过Web UI工具查看Hbase状态 106
5.6.1 Master状态界面 106
5.6.2 RegionServer状态界面 107
5.6.3 ZooKeeper统计信息页面 109
5.7 其他客户端 110
5.8 本
摘要与插图
第一部分 Part 1基 础 篇
第1章 认识Hbase
第2章 Hbase安装与配置
第3章 数据模型
第4章 Hbase表结构设计
第5章 Hbase客户端
Chapter 1 第1章
认识Hbase
本章将介绍大数据背景和Hbase的基本概念,从大数据引申到NoSQL,并阐述Hbase出现的契机。随后,将介绍Hbase的概念、发展历史、发行版本和基本特性。其中,Hbase的核心功能模块将作为一个小节单独重点介绍,通过介绍Hbase的使用场景和经典案例,让读者朋友能够清晰地了解Hbase可以做什么。
作为NoSQL家庭的一员,Hbase的出现弥补了Hadoop只能离线批处理的不足,同时能够存储小文件,提供海量数据的随机检索,并保证一定的性能。而这些特性也完善了整个Hadoop生态系统,泛化其大数据的处理能力,结合其高性能、稳定、扩展性好的特行,给使用大数据的企业带来了福音。
因为本章是全书的开篇,唯有简明扼要地介绍才能帮助正在学习和想要学习Hbase的读者,所以本章将提纲掣领地介绍Hbase的相关知识,重点介绍Hbase是什么以及Hbase能做什么两部分。
1.1 理解大数据背景
经美国机构IDC调查发现,现如今的公司正在以的速度和丰富的类型产生数据,并且也有能力存储这些数据,但是,如何关联这两方面以便产生的商业价值,是所有公司共同面临的挑战。这个问题复杂:虽然业务人员在技能提升和专业工具的帮助下,越来越了解数据,但由于数据的增长速度越来越快,积累量级越来越大,公司可以利用的数据比例正在迅速下降。
1.1.1 什么是大数据
Gartner认为与过去相关概念相比,大数据强调3V特征,即Volume(量级)、Varity(种类)和Velocity(速度),如图1-1所示。
图1-1 大数据三大特性
如今存储的数据量正在急剧增长,2000年存储了EB级别的数据,预计到2020年,该值将变为ZB级别。仅Twitter每天就会生成超过10TB的数据,Facebook的数据为几十TB,一些特殊的企业在每小时就会产生TB级别的数据。
上面这些企业是一些典型的案例,其实我们生活的方方面面都会形成很多“轨迹”。例如,打开手机会生成一个事件;乘坐公共交通刷卡,这是一个事件;检票登机、打卡上班、App Store上购买应用、更换电视频道、使用高速路电子收费系统等。每一项操作都会生成数据,并且该数据的量级与参与的人数相关,60亿人口,如果仅仅1/10的人参与进来,那么这个数据量级就已经惊人。就在10年前IT界超过1TB的数据仓库屈指可数,而现在则是“举不胜举”。
随着传感器、智能设备以及社交协作技术的激增,企业中的数据也变得更加复杂,因为它不仅包含传统的关系型数据,还包含来自网页、Web日志文件、社交媒体论坛、电子邮件、文档、传感器数据等原始、半结构化和非结构化数据。
传统系统可能很难存储、分析这些数据的内容,更不要说挖掘有价值的信息。因为传统的数据库、数据仓库、联机事务处理等技术并不适合处理这些数据。尽管一些公司正在朝大数据方向大力发展,但总体而言,大部分公司只是刚开始理解大数据。当回整个数据库发展的历程会发现,人们将大部分时间都花在仅20%的数据上:这些数据格式整齐且符合严格模式的关系类型。但事实是,80%的数据是非结构化的或者半结构化的。
视频和图片不能轻松或地存储在关系型数据库中,某些事件信息可能动态地更改(如气象),它们不太适合严格的模式。要利用大数据,企业必须能够分析所有类型的数据,包括关系和非关系数据:文本、传感器数据、音频和视频等。
有效处理大数据需要在数据变化的过程中对它的数量和种类进行分析,而不只是在“静止”状态进行分析。业界定义这种情