编辑推荐
非常便于快速入门,实战与原理并重
覆盖管理与开发,同时适合运维与程序员
真实场景,真实案例,与一线实践无缝衔接
“去哪网”Hbase团队Leader携资深工程师倾力献译
你可以从本书学到:
理解HBase的基本原理
了解搭建HBase的先决条件
安装和配置新的HBase集群
通过Hadoop以及HBase参数优化集群
使用各种故障排除与运维技术,以保障集群高可用性
掌握HBase数据模型及其操作
了解使用Hadoop工具包的好处 ;
内容简介
译者从事相关工作多年,具有丰富的理论知识和实践经验,一直工作在技术*前沿,对相关知识有很深刻的理解。
作者简介
目录
目录
译者序 ;...................................................... ii
关于作者 ;.................................................... iii
致谢 ;........................................................ v
关于审校者 ;.................................................. vii
前言 ;........................................................ ix
第 1章了解 ;
HBase生态系统 ;.................................. 1
基于 ;
Hadoop的 ;
HBase架构 ;
2 RDBMS和 ;
HBase的架构对比 ;
3 HBase的特征 ;
3 HBase在 ;
Hadoop生态系统中的位置 ;
4 HBase中的数据表示 ;
5 Hadoop 6 HBase与关系型数据库的功能对比 ;
8行存储数据库的逻辑展现 ;
9列存储数据库的逻辑展现 ;
9 HBase的内部存储架构 ;
11 ;
开始使用 ;
HBase 11 HBase是何时出现的 ;
11 HBase的组件和功能 ;
14谁在用 ;
HBase?为什么要用? ;
19什么时候考虑使用 ;
HBase? ;
20什么时候不使用 ;
HBase? ;
21了解一些开源的 ;
HBase工具 ;
21 Hadoop和 ;
HBase版本兼容性对照表 ;
22 ;
HBase的应用 ;
23 ;
HBase的优点和缺点 ;
24
小结 ;
25
第 2章开启 ;
HBase之旅...................................... ;
26
深入理解 ;
HBase的组件 ;
27 HFile 27 Region 27
可扩展性——理解纵向扩展和横向扩展的过程 ;
29
读写周期 ;
32 Write-Ahead Logs 33 MemStore 33 ;
HBase内部管理 ;
34合并 ;
34 Region分裂 ;
35 Region分配 ;
36 Region合并 ;
37 RegionServer故障转移 ;
37 ;
HBase的删除请求 ;
37读写周期 ;
37
可用的 ;
HBase发行版本列表 ;
38 ;
HBase的必备条件和容量规划 ;
39 DNS正向解析 ;
39 DNS反向解析 ;
40 SSH 41
小结 ;
45
第 3章搭建 ;
HBase.......................................... 46
在 ;
Ubuntu上下载 ;
Java 46主机配置 ;
52主机文件 ;
52命令修改 ;
52文件修改 ;
52基于 ;
DNS 54安装配置 ;
SSH 54在 ;
Ubuntu/Red Hat/CentOS上安装 ;
SSH 55配置 ;
SSH 55安装配置 ;
NTP 56容量规划 ;
57安装配置 ;
Hadoop 58 core-site.xml 63 hdfs-site.xml 63 yarn-site.xml 65 mapred-site.xml 66 hadoop-env.sh 66 yarn-env.sh 67 Hadoop的启动步骤 ;
67配置 ;
HBase 68在单机模式中配置 ;
HBase 69配置分布式模式 ;
70安装配置ZooKeeper 73安装 ;
Cloudera版本的Hadoop和 ;
HBase 75下载 ;
RPM包 ;
76简易安装 ;
Cloudera 76安装 ;
Hadoop和 ;
MapReduce包
77在
Windows上安装
Hadoop 78小结
80
第 4章优化
HBase/Hadoop集群
.............................. 82
Hadoop/HBase集群类型
82 CDH集群推荐配置
84容量规划
85优化
Hadoop 86通用优化技巧
86优化
Java GC 86优化
Linux操作系统
87优化
Hadoop参数
87优化
MapReduce 88优化
HBase 91 Hadoop 91内存
93 Java 93操作系统
94 HBase 94优化
ZooKeeper 96 Hadoop中的重要配置文件
97 HBase中的重要配置文件
97小结
98
第 5章 HBase的存储、框架以及数据类型
....................... 99
HBase的数据类型
100 HBase中的数据存储——逻辑视图
vs.真实物理视图
101命名空间
102 HBase服务
103行键(Row key)
104列族(Column family)
104列(Column)
104单元格(Cell)
104版本(Version)
104时间戳(Timestamp)
105
数据模型的操作
105读(Get)
105写(Put)
106扫描(Scan)
106删除(Delete)
106版本和原因
107决定版本数量
108版本的下界
108版本的上界
108模式设计
110表类型的设计
113短宽和高瘦设计模式的好处
114复合键设计
115在
HBase中计算存储的数据大小
118小结
119
第 6章 HBase集群运维与故障处理.
.
.
.
......
.
.
.
.......
.
.
.
......
120
Hadoop shell命令
121 Hadoop shell命令的类型
121 HBase shell命令
140 HBase管理工具
148 hbck ——
HBase检查
148 HBase健康检查脚本
150写
HBase shell脚本
151使用
Hadoop工具或者
JAR 151用
Hive连接
HBase 153 HBase region管理
154压缩
154合并
155 HBase节点管理
155服役(commissioning)
155退役(Decommissioning)
155
实现安全性
156安全访问
156 Kerberos KDC 157客户端的安全配置
158服务器端的安全配置
159简单的安全
159客户端配置
161标签的安全特性
161 HBase的访问控制
162服务器端的访问控制
167使用标签的单元格访问
167配置
ZooKeeper安全
168
HBase常见错误故障排查和相关说明
170集群失败的可能情况
171监控
HBase的健康状况
171
小结
175
第 7章 HBase脚本编程
. . . ....... . . . ....... . . . ...... . . . ...... 176
HBase中的备份与恢复技术
176离线备份/full-shutdown备份
177在线备份
178
Windows上的
HBase 185
HBase脚本编程
185 .irbrc文件
187获取时间戳
188开启调试
189在
HBase中开启
SQL 189
参与
HBase 190
小结
190
第 8章 HBase
Java编程.
.
.
.......
.
.
.
.......
.
.
.......
.
.
.
......
191
准备开发环境
192构建
Java客户端程序
192
数据类型
196数据模型的
Java操作
196读操作
197写操作
205修改操作
206 HBase过滤器
208过滤器类型
209客户端
API 214小结
215
第 9章 HBase
Java高级编程
...... . . . ...... . . . ....... . . . ...... 216
接口、类和异常
216管理任务编程
218数据操作代码
224 MapReduce和
HBase 226 RESTful和
Thrift服务接口
231 RESTful服务接口
231 Thrift服务接口
232 HDFS编程
233高级主题简介
237协处理器
237布隆过滤器
238 Lily项目
238小结
239
第 10章 HBase使用案例
. . ....... . . . ...... . . . ....... . . . ...... 240
HBase在当今行业
240 HBase和关系型数据库的未来对比
241一些现实世界的工程使用案例
241 HBase在
Facebook 241 HBase在
Pinterest 243 HBase在
Groupon 244 HBase在
LongTail Video 246
HBase在
Aadhaar(UIDAI)
246
有用的链接和引用
247
小结
249
媒体评论
Apache HBase是运行在HDFS上的非关系型NoSQL数据库管理系统。它是一个开源的、分布式、多版本的列存数据库。可为那些需要随机、实时读写大数据的科技行业提供线性扩展性。
本书将带领你了解HBase中一系列的核心任务。首先简要介绍整个HBase的生态系统。进而会指导读者配置、创建、验证以及测试HBase集群。本书还介绍了一些Hadoop以及Hbase的相关参数,这些参数是优化集群以及搭建无故障集群必须考虑到的。本书重点介绍HBase的数据模型、存储以及架构。读者会了解到一些加快HBase操作的选项。本书还会指导读者进行基础和高级的HBase Java编程。在本书*后介绍了大数据集下如何使用HBase以及与Hadoop的集成。
前沿
译者序随着大数据应用技术的不断发展以及Hadoop生态系统的日益完善,Hadoop已渐渐成为处理大数据需求的**工具。与此同时,搭建在Hadoop之上的HBase,也因其优越的系统架构特点,特别是开源、分布式、水平扩展性等便利条件,越来越受到人们的青睐。“去哪儿”网站数据库团队是把HBase作为NoSQL数据库使用的,它为我们提供了大规模的Key-Value分布式存储,以弥补我们现在所用的MySQL、Redis等在线存储的不足。然而,我们在此之前并没有HBase的相关经验,为了能快速掌握这门技术,以满足我们的业务需求,我们努力学习HBase的相关知识,也翻阅了很多这方面的著作。值得庆幸的是,我们有幸看到了Learning HBase这本书的英文书稿,在努力啃完了全书之后,我们一致认为,对HBase初学者来说,这是一本值得推荐的优秀著作,本书的作者Shashwat Shriparv先生,有多年的基于Hadoop和Hbase的开发和使用经验,他在大数据领域积累了丰富的经验。这本书的组织也是深入浅出,先从宏观上描述了HBase是什么,跟我们熟知的关系数据库以及Hadoop做了一些对比,接着介绍了HBase的核心组件,然后深入到Hbase的运维管理、故障处理,*后讲述了基于HBase的Java编程,并介绍了HBase的一些使用案例,非常适合初学者学习。比较遗憾的是,这本书目前没有中文稿,我们起初虽然有翻译的想法,但总觉得功力尚欠,恐贻笑大方,恰在这时候我们受到电子工业出版社的朋友的鼓励,遂下决心把它翻译成中文,以方便更多的国内读者学习使用。本书涉及的专业术语和概念较多,又加之我们水平有限,同时也是**次正式翻译英文著作,在译文中必定会出现不妥之处,恳请读者批评指正。周彦伟 2015.6 关于作者 Shashwat Shriparv生于印度比哈尔邦穆扎法尔布尔县。他先后在穆扎法尔布尔和梅加拉亚邦西隆求学。他在德里英迪拉·甘地国立开放大学获得计算机应用学士(BCA)学位,在喀拉拉邦科钦科技大学(特里凡得琅 C-DAC)获得计算机应用硕士(MCA)学位。他在 2010年早些时候开始研究大数据技术,当时他需要做一个用大数据技术存储和处理日志的概念验证(POC)。同时他还有另一个项目,在此项目中需要存储巨大的不同文件头的二进制文件并要处理它们。这个时候,他开始配置、搭建并测试 Hadoop HBase集群,并为它们写了一些代码。在做了一个成功的POC之后,他用 Java REST和 SOAP Web服务做了些开发,并搭立了一个系统,在此系统中通过 Web服务利用 Hadoop存储和处理日志,然后在HBase中通过自定义表存储这些日志,通过 HBase API和 HBase-Hive映射查询来读取数据。Shashwat成功地实现了这个项目,紧接着开始了 1TB到 3TB的大规模二进制文件头的处理工作,他把文件的元数据存储在 HBase中,文件本身存在 HDFS上。 Shashwat在特里凡得琅 C-DAC网络取证中心开始他的软件开发生涯,为取证分析开发可移动相关软件。接着,他去了 Genilok Computer Solutions公司,在那里,他的工作包括:集群计算、HPC技术和 Web技术。在此之后,他从特里凡得琅到了班加罗尔并加入了 PointCross,在那里他开始了大数据技术工作,用 Java开发软件、Web服务和大数据平台。在 PointCross,他的很多项目都是围绕着大数据技术,例如 Hadoop、HBase、Hive、Pig、 Sqoop、 Flume等。从这里他又到了 HCL Infosystems公司,开始做 UIDAI项目,这是一个在印度非常有声望的项目,它为每一个印度居民提供一个**身份识别号。在这里,他工作中使用的技术有:HBase、Hive、 Hadoop、 Pig、 Linux、脚本语言、管理 HBase Hadoop集群、编写脚本、自动化任务和处理、为集群监控创建仪表盘。现在,Shashwat在 Cognilytics公司工作,专注于大数据技术、 HANA以及其他高性能技术。shriparv/19/214/2a9跟他联系,也可以发信给他 Shashwat曾经审校过 Pig Design Pattern, Pradeep Pasupuleti, Packt Publishing一书,他还曾担任过他大学杂志 In.nityTech的编辑。 致谢首先,我要感谢来自 Packt Publishing的几个人:Kevin,他鼓励我写这本书;Prachi,在写作过程中一直给予我协助和指导;Pankaj,他帮我完成技术编辑;以及其他所有的对此书有贡献的人。我要感谢所有的 Hadoop、HBase和大数据技术的开发者、贡献者和论坛,他们给了工业界这么让人惊叹的技术并持续为之贡献力量。特别的,感谢 Lars和 Noll在 HBase和 Hadoop上的贡献。我要感谢那些帮助我学习的人,包括我大学的老师——Roshani夫人(校长)、Namboothari先生、Santosh先生、Manjush夫人、Hudlin Leo夫人、Jitesh先生、Nilanchal先生、Vaidhath先生、 Jwala先生、 Ashutosh先生、 Anzar先生、 Kishor先生及我在 Batch 6的所有的朋友们。我要把这本书献给我的朋友,Nikhil,他现在已经不在人世了。特别的,我要感谢 Ratnakar Mishra和 Chandan Jha,他们一直陪伴着我并给于我极大的信任。也衷心感谢 Vineet、 Shashi、 Shailesh、 Rajeev、 Pintu、 Darshna、 Priya、 Amit、 Manzar、 Sunil、 Ashok、 Pradeep、 Arshad、 Sujith、 Vinay、 Rachana、 Ashwathi、 Rinku、 Pheona、 Lizbeth、 Arun、 Kalesh、 Chitra、 Fatima、 Rajesh、 Jasmin以及特里凡得琅 C-DAC学院的我的所有朋友们,感谢学院里的所有学弟学长和朋友们。感谢我在 C-DAC网络取证部门的同事:Sateesh先生,我的项目经理;Anwer Reyaz. J,一个充满激情的热心人;Bibin先生、 Ramani先生、Potty先生、Bhadran先生、Thomas先生、Satish先生、Nabeel先生、Balan先生、Abhin先生等。我还要感谢 Mani先生、 Raja先生,我的朋友和同事:Maruthi Kiran、 Chethan、 Alok、 Tariq、Sujatha、Bhagya和 Mukesh;Sri Gopal先生,我的领导,以及其他 PointCross的同事。感谢 Ramesh Krishnan先生、 Manoj先生、 Vinod先生、Nand Kishor先生和我的同事 Varun先生、Preeti Gupta先生、Kuldeep先生以及所有在 HCL Infosystems Ltd.和 UIDAI的同事。我还要感谢 Satish先生、 Sudipta先生、我的领导 Atul先生、 Pradeep、 Nikhil、 Mohit、 Brijesh、Kranth、Ashish Chopara、Sudhir以及所有在 Cognilytics, Inc的同事。*后但是同样重要的,我要感谢我的爸爸 Dr. Rameshwar Dwivedi、我的妈妈 Smt. Rewa Dwivedi、我的兄长 Vishwas Priambud、嫂子 Ragini Dwivedi、妹妹 Bhumika、堂兄 Chandra-mauli Dwivedi,还有我家里的新成员 Vasu and Atmana。如果还遗漏了什么名字,这不代表我我没有感谢他们,他们都在我的心中,我感谢所有来到我的生命中并留下印记的每一个人。并且,致谢不分次序。 关于审校者 Ashutosh Bijoor(Ash)是 Accion Labs India Private Limited的 CTO。他在工业技术领域有超过 20年的经验,客户从初创企业到跨国公司覆盖了非常广的工业范围,包括高科技、工程、软件、保险、银行、化工、制药、健康护理、媒体和娱乐。他在整体产品开发生命周期中对于管理和领导跨功能团队有丰富的经验。 Ashutosh擅长于新兴技术、软件架构、架构设计以及敏捷过程定义。他在一些领域诸如大数据、商业智能、图形和图像处理、声音和视频处理以及高级文本搜索和分析上实现了企业解决方案和商业产品。他的 ,也可以访问他的个人网站:http:/ /bijoor.me。 Chhavi Gangwal目前是 Impetus Infotech (India) Pvt. Ltd的一名技术领导。她在不同规模的社交媒体和网站有超过 7年的 IT企业工作经验,直接见证了大数据的兴起。现在,Chhavi在领导 Kundera的开发,这是一个 JPA 2.0兼容的 NoSQL数据存储的对象映射框架。她还积极参与大量大数据工具项目的管理和开发工作。除了一些 NoSQL数据存储知识、Java、PHP以及不同的 JavaScript框架外,她还热衷于产品设计和新技术。
免费在线读
译者序
随着大数据应用技术的不断发展以及Hadoop生态系统的日益完善,Hadoop已渐渐成为处理大数据需求的**工具。与此同时,搭建在Hadoop之上的HBase,也因其优越的系统架构特点,特别是开源、分布式、水平扩展性等便利条件,越来越受到人们的青睐。“去哪儿”网站数据库团队把HBase作为NoSQL数据库使用,它提供了大规模的Key-Value分布式存储,以弥补我们现在所用的MySQL、Redis等在线存储的不足。然而,我们在此之前并没有HBase的相关经验,为了能快速掌握这门技术,以满足业务需求,我们努力学习HBase的相关知识,也翻阅了很多这方面的著作。
值得庆幸的是,我们有幸看到了LearningHBase这本书的英文书稿,在努力啃完了全书之后,我们一致认为,对HBase初学者来说,这是一本值得推荐的优秀著作。本书的作者ShashwatShriparv先生,有多年的基于Hadoop和HBase的开发和使用经验,他在大数据领域积累了丰富的经验。这本书的组织也是深入浅出,先从宏观上描述了HBase是什么,跟我们熟知的关系型数据库以及Hadoop做了一些对比,接着介绍了HBase的核心组件,然后深入到HBase的运维管理、故障处理,*后讲述了基于HBase的Java编程,并介绍了HBase的一些使用案例,非常适合初学者学习。
比较遗憾的是,这本书目前没有中文版,我们起初虽然有翻译的想法,但总觉得功力尚欠,恐贻笑大方,恰在这时候我们受到电子工业出版社的朋友的鼓励,遂下决心把它翻译成中文,以方便更多的国内读者学习使用。本书涉及的专业术语和概念较多,又加之我们水平有限,同时也是**次正式翻译英文著作,在译文中必定会出现不妥之处,恳请读者批评指正。
周彦伟
2015.6
Learning HBase中文版 pdf下载声明
本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版