前言
第1章 大数据时代的必然产物—HBase 1
1.1 HBase的发展历程 1
1.2 HBase的特征 2
1.3 HBase的优缺点 2
1.3.1 HBase的优点 2
1.3.2 HBase的缺点 3
1.4 HBase与关系数据库的区别 3
1.5 使用HBase的时机 4
1.6 HBase的应用场景 4
1.7 HBase的数据模型 7
1.8 HBase的逻辑视图 10
第2章 HBase基本架构与快速入门 11
2.1 HBase基本架构 11
2.2 HBase分布式环境搭建 14
2.2.1 设置服务器名称 14
2.2.2 Hadoop单机安装 15
2.2.3 Hadoop集群安装 20
2.2.4 ZooKeeper集群安装 28
2.2.5 HBase集群安装 31
2.3 HBase容器化技术搭建 34
2.3.1 CentOS环境下安装Docker 34
2.3.2 Windows 10环境下安装Docker 35
2.3.3 利用Docker安装HBase 37
2.4 HBase快速入门 39
2.4.1 使用HBase Shell 39
2.4.2 使用create命令 40
2.4.3 使用alter命令 40
2.4.4 使用list命令 40
2.4.5 使用describe命令 41
2.4.6 使用put命令 42
2.4.7 使用get命令 42
2.4.8 使用scan命令 43
2.4.9 使用deleteall命令 43
第3章 HBase基本操作 44
3.1 help命令 44
3.2 常规命令 47
3.2.1 查询集群状态信息(status命令) 47
3.2.2 查看如何操作表(table_help命令) 48
3.2.3 查询HBase版本信息(version命令) 49
3.2.4 查看当前用户(whoami命令) 50
3.2.5 查看进程列表(processlist命令) 50
3.3 DDL命令 50
3.3.1 创建表(create命令) 51
3.3.2 修改表信息(alter命令) 52
3.3.3 异步修改表信息(alter_async命令) 55
3.3.4 获取表的详细信息(describe命令) 56
3.3.5 获取HBase中所有的表(list命令) 57
3.3.6 判断表是否存在(exists命令) 57
3.3.7 以对象的方式操作表(get_table命令) 58
3.3.8 启用表(enable命令) 58
3.3.9 启用所有满足正则表达式的表(enable_all命令) 59
3.3.10 判断表是否被启用(is_enabled命令) 60
3.3.11 禁用表(disable命令) 60
3.3.12 禁用所有满足正则表达式的表(disable_all命令) 60
3.3.13 判断表是否被禁用(is_disabled命令) 61
3.3.14 删除表(drop命令) 62
3.3.15 删除所有满足正则表达式的表(drop_all命令) 62
3.3.16 获取RowKey所在的区域(locate_region命令) 63
3.3.17 显示HBase支持的过滤器(show_filters命令) 64
3.4 命名空间 65
3.4.1 创建命名空间(create_namespace命令) 65
3.4.2 修改命名空间(alter_namespace命令) 65
3.4.3 获取命名空间详情(describe_namespace命令) 66
3.4.4 获取命名空间下所有表的名称(list_namespace_tables命令) 66
3.4.5 获取所有的命名空间(list_namespace命令) 66
3.4.6 删除命名空间(drop_namespace命令) 67
3.5 DML命令 67
3.5.1 新增或者修改数据(put命令) 68
3.5.2 全表扫描数据(scan命令) 68
3.5.3 获取表中数据的总行数(count命令) 72
3.5.4 获取表中的数据(get命令) 73
3.5.5 删除列族中的某个列(delete命令) 75
3.5.6 删除整行数据(delete命令) 76
3.5.7 列值自增(incr命令) 77
3.5.8 获取自增后的列值(get_counter命令) 78
3.5.9 获取表所对应的Region数量(get_splits命令) 79
3.5.10 清空整个表数据,不保留分区(truncat命令) 79
3.5.11 清空整个表数据,保留分区(truncat_ preserve命令) 80
第4章 Java对接HBase 81
4.1 从“HelloWorld”开始 81
4.2 创建表 86
4.3 添加数据 91
4.4 批量添加数据 96
4.5 内容追加 101
4.6 修改数据 102
4.7 删除数据 103
4.8 批量删除 106
4.9 原子性操作 107
4.10 批量操作 109
4.11 自增 111
4.12 判断数据是否存在 112
4.13 代码封装 112
第5章 客户端API进阶 127
5.1 数据查询 127
5.2 数据扫描 133
5.3 过滤器快速实战 139