编辑推荐

HBase不睡觉书》目的是让读者看了不会睡着的HBase技术书。因为我们坚信看一本非常重要,但是一看就想睡的书是一次痛苦的经历。
我们希望这《HBase不睡觉书》能够给读者带来一次愉快而轻松的阅读经历,并在其中顺便学会HBase的安装部署、主要功能、架构设计、性能优化与周边项目。
HBase不睡觉书》适合HBase的初学者,欲深入了解HBase配置、部署、优化和二次开发的软件工程师,以及任何对云计算或者NoSQL相关技术感兴趣的读者。

内容简介

HBase是Apache旗下一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。利用HBase技术可在廉价的PC服务器上搭建大规模的存储化集群,使用HBase可以对数十亿级别的大数据进行实时性的高性能读写,在满足高性能的同时还保证了数据存取的原子性。
HBase不睡觉书》共分为9章,由浅入深地讲解HBase概念、安装、配置、部署,让读者对HBase先有一个感性认识,再从应用角度介绍了高级用法、监控和性能调优。既兼顾了初学者,也适用于想要深入学习HBase的读者。
HBase不睡觉书》适合于以前没有接触过HBase,或者了解HBase,并希望能够深入掌握的读者,适合HBase应用开发人员和系统管理人员学习使用。

作者简介

杨曦,就职于硅谷某上市公司,对大数据、云计算等技术有较深研究以及丰富的项目实践经验。热衷编写开源项目、撰写技术博客以及折腾各种技术项目。

目录


目录

第1章初识HBase1
1.1海量数据与NoSQL1
1.1.1关系型数据库的极限1
1.1.2CAP理论1
1.1.3NoSQL2
1.2HBase是怎么来的3
1.3为什么要用HBase3
1.4你必须懂的基本概念4
1.4.1部署架构4
1.4.2存储架构7
1.4.3跟关系型数据库的对比9
第2章让HBase跑起来11
2.1《HBase不睡觉书》测试环境12
2.2配置服务器名12
2.3配置SSH免密登录13
2.4安装Hadoop15
2.4.1安装Hadoop单机模式15
2.4.2安装Hadoop集群模式20
2.4.3ZooKeeper23
2.4.4配置HadoopHA27
2.4.5让Hadoop可以开机自启动35
2.4.6最终配置文件41
2.5安装HBase43
2.5.1单机模式45
2.5.2伪分布式模式47
2.5.3关于ZooKeeper不得不说的事51
2.5.4完全分布式模式52
2.5.5HBaseWeb控制台(UI)58
2.5.6让HBase可以开机自启动58
2.5.7启用数据块编码(可选)60
2.5.8启用压缩器(可选)65
2.5.9数据块编码还是压缩器(可选)70
第3章HBase基本操作71
3.1hbaseshell的使用71
3.1.1用create命令建表72
3.1.2用list命令来查看库中有哪些表73
3.1.3用describe命令来查看表属性73
3.1.4用put命令来插入数据74
3.1.5用scan来查看表数据76
3.1.6用get来获取单元格数据77
3.1.7用delete来删除数据77
3.1.8用deleteall删除整行记录79
3.1.9用disable来停用表80
3.1.10用drop来删除表80
3.1.11shell命令列表81
3.2使用Hue来查看HBase数据121
3.2.1准备工作121
3.2.2安装Hue124
3.2.3配置Hue127
3.2.4使用Hue来查看HBase132
第4章客户端API入门134
4.110分钟教程134
4.230分钟教程141
4.3CRUD一个也不能少147
4.3.1HTable类和Table接口147
4.3.2put方法148
4.3.3append方法155
4.3.4increment方法157
4.3.5get方法158
4.3.6exists方法162
4.3.7delete方法162
4.3.8mutation方法164
4.4批量操作166
4.4.1批量put操作167
4.4.2批量get操作167
4.4.3批量delete操作168
4.5BufferedMutator(可选)168
4.6Scan扫描170
4.6.1用法170
4.6.2缓存173
4.7HBase支持什么数据格式174
4.8总结175
第5章HBase内部探险176
5.1数据模型176
5.2HBase是怎么存储数据的178
5.2.1宏观架构178
5.2.2预写日志181
5.2.3MemStore183
5.2.4HFile184
5.2.5KeyValue类186
5.2.6增删查改的真正面目186
5.2.7数据单元层次图187
5.3一个KeyValue的历险187
5.3.1写入188
5.3.2读出188
5.4Region的定位189
第6章客户端API的高阶用法193
6.1过滤器193
6.1.1过滤器快速入门194
6.1.2比较运算快速入门198
6.1.3分页过滤器201
6.1.4过滤器列表203
6.1.5行键过滤器208
6.1.6列过滤器214
6.1.7单元格过滤器227
6.1.8装饰过滤器228
6.1.9自定义过滤器231
6.1.10如何在hbaseshell中使用过滤器248
6.2协处理器249
6.2.1协处理器家族249
6.2.2快速入门251
6.2.3如何加载254
6.2.4协处理器核心类256
6.2.5观察者259
6.2.6终端程序276
第7章客户端API的管理功能290
7.1列族管理290
7.2表管理296
7.3Region管理299
7.4快照管理304
7.5维护工具管理307
7.5.1均衡器307
7.5.2规整器308
7.5.3目录管理器310
7.6集群状态以及负载(ClusterStatus&ServerLoad)311
7.7Admin的其他方法315
7.8可见性标签管理319
7.8.1快速入门321
7.8.2可用标签328
7.8.3用户标签329
7.8.4单元格标签329

第8章再快一点331
8.1Master和RegionServer的JVM调优331
8.1.1先调大堆内存331
8.1.2可怕的FullGC333
8.1.3Memstore的专属JVM策略MSLAB335
8.2Region的拆分340
8.2.1Region的自动拆分341
8.2.2Region的预拆分345
8.2.3Region的强制拆分347
8.2.4推荐方案347
8.2.5总结347
8.3Region的合并348
8.3.1通过Merge类合并Region348
8.3.2热合并348
8.4WAL的优化349
8.5BlockCache的优化351
8.5.1LRUBlockCache352
8.5.2SlabCache353
8.5.3BucketCache354
8.5.4组合模式356
8.5.5总结357
8.6Memstore的优化357
8.6.1读写中的Memstore358
8.6.2Memstore的刷写358
8.6.3总结361
8.7HFile的合并361
8.7.1合并的策略361
8.7.2compaction的吞吐量限制参数374
8.7.3合并的时候HBase做了什么377
8.7.4MajorCompaction378
8.7.5总结380
8.8诊断手册380
8.8.1阻塞急救380
8.8.2朱丽叶暂停381
8.8.3读取性能调优384
8.8.4案例分析385
第9章当HBase遇上MapReduce389
9.1为什么要用MapReduce389
9.2快速入门389
9.3慢速入门:编写自己的MapReduce391
9.3.1准备数据391
9.3.2新建项目392
9.3.3建立MapReduce类393
9.3.4建立驱动类396
9.3.5打包、部署、运行400
9.4相关类介绍402
9.4.1TableMapper402
9.4.2TableReducer403
9.4.3TableMapReduceUtil403

前言/序言

前言

为什么要叫不睡觉书呢?因为我们发现阻碍人们学习新技术最大的障碍不是技术的难度或者条件的限制,而是学习技术时难以抵挡的困意,所以我们的目标就是写一本让人看了不会睡着的HBase技术书籍。希望大家可以通过这《HBase不睡觉书》成功地入门HBase技术。
为什么要写这《HBase不睡觉书》?
?目前网上关于HBase的知识比较零碎,缺乏系统性。翻译的作品,语言的组织又不符合国人的习惯。
?目前的资料都很旧。连英文的资料很多都过时了,比如现在很多的书籍和网上的资料都还在介绍三层查询架构,可是HBase早已经改成二层查询架构了。实际操作到的跟书上的操作不一样,这很让人沮丧。

如何才能不睡着地看《HBase不睡觉书
作为《HBase不睡觉书》的作者我强烈不建议大家从头按顺序地读到尾,这不是一种好的读书方式,而且极容易睡着。看书应该是非线性的,先扫一遍目录,然后只看适合自己的,最后再发散式地补看别的章节。
?如果你手头没有合适的环境,或者你想快速了解HBase能干什么,或者你是公司的运维,想知道怎么搭建HBase,“第2章让HBase跑起来”适合你。
?如果公司的运维帮你搭好了环境,老板催着你赶紧做出项目,那么请直接看“第4章客户端API入门”。
?如果你更关心HBase是如何实现它的数据结构的,建议你直接看“第5章HBase内部探险”。
?如果你想知道HBase如何提升性能,建议你直接看“第8章再快一点”。
如果你还是觉得困,那肯定不是这《HBase不睡觉书》的关系,是你的确缺乏睡眠,请马上去睡觉,有精神了再来看书。看得慢,看得少都没有关系,千万别困着看!

如何才能不睡着地看所有书
为什么我们看技术书籍总是犯困呢?
因为技术书籍必须把方法和知识点都写全面,否则容易误导读者,你可以把技术书籍看成是一本电话黄页。我们总是错误地以为既然要学习,那么每一个知识点、每一个方法都不能错过,所以认真地精读每一本技术书籍。你想象一下,如果你精读一本电话黄页,会不会感到疲劳?会不会忍不住睡去?
其实不光是读《HBase不睡觉书》,学习所有的技术书籍都应该掌握正确的方法。那就是:跳着看,具体地说就是不要针对每一个API方法都精读,这样很容易迷失在一长串的API方法列表中,感到疲劳,导致无法坚持下去;而是针对某个知识点精细地掌握某一个方法,亲自实践这一个方法,然后别的方法快速略读过去,等回头需要用的时候再回来查阅。我们需要把每一本技术书籍都看成入门教程+技术手册,第一遍阅读的时候把每个知识点挑出一个方法作为入门,把其他方法当作技术手册来查阅,你总不会想细读一本电话黄页吧。
HBase不睡觉书》在很多地方都给出了阅读提示,提醒大家不要精读,该略过的部分就要勇敢地略过。

这《HBase不睡觉书》不是HBase知识大全
这《HBase不睡觉书》的目的只是让你学会HBase。有些知识点并没有涉及,比如集群备份、ACL权限控制、REST客户端等,所以想学习这些知识的同学们可能要失望了。我只能让你们愉快地入门,更深层次的知识就看你们自己的努力了!

技术支持与致谢
如果你在看《HBase不睡觉书》的时候发现了一些问题或者不足之处,请发邮件给alexyang11@qq.com告诉我。
部分彩色图片可以到下面网址(注意数字与字母大小写)下载:
https://pan.baidu.com/s/1slqjJnZ
最后感谢我的家人、朋友、同事对我编写《HBase不睡觉书》的帮助,感谢清华大学出版社的夏毓彦编辑,感谢HBaseTeam的TedYu,没有他们的帮助,我不可能完成《HBase不睡觉书》!



著者
2017年11月于硅谷


其他推荐