目 录
第 1章 HBase集群安装 1
1.1 简介 1
1.2 快速入门 3
1.3 Amazon EC2的安装及准备 7
1.4 安装Hadoop 12
1.5 ZooKeeper安装 17
1.6 修改内核参数设置 20
1.7 HBase安装 22
1.8 Hadoop/ZooKeeper/HBase基本配置 26
1.9 安装多个高可用性(HA)的主节点 29
第 2章 数据迁移 42
2.1 简介 42
2.2 通过客户端程序导入MySQL数据 43
2.3 使用批量加载工具导入TSV文件的数据 49
2.4 编写自定义MapReduce任务来导入数据 55
2.5 在数据移入HBase前预创建区域 61
第3章 使用管理工具 65
3.1 简介 65
3.2 HBase主Web界面 66
3.3 使用HBase Shell管理表 69
3.4 使用HBase Shell访问HBase中的数据 72
3.5 使用HBase Shell管理集群 76
3.6 在HBase Shell中执行Java方法 80
3.7 行计数器 82
3.8 WAL工具——手动分割和转储WAL 85
3.9 HFile工具——以文本方式查看HFile的内容 90
3.10 HBase hbck——检查HBase集群的一致性 93
3.11 HBase Hive——使用类SQL语言查询HBase中的数据 96
第4章 HBase数据备份及恢复 104
4.1 简介 104
4.2 使用distcp进行关机全备份 105
4.3 使用CopyTable在表间复制数据 110
4.4 将HBase表导出为HDFS上的转储文件 113
4.5 通过从HDFS导入转储文件来恢复HBase数据 117
4.6 备份NameNode元数据 120
4.7 备份区域开始键 124
4.8 集群复制 127
第5章 监控与诊断 133
5.1 简介 133
5.2 显示HBase表的磁盘利用率 134
5.3 安装Ganglia来监控HBase集群 136
5.4 OpenTSDB——使用HBase监控HBase集群 143
5.5 安装Nagios来监控HBase进程 151
5.6 使用Nagios检查Hadoop/HBase日志 158
5.7 使用一些简单脚本来报告集群状态 164
5.8 热点区域——诊断写操作 168
第6章 维护和安全 173
6.1 简介 173
6.2 启用HBase RPC的DEBUG级日志功能 174
6.3 平稳节点停机 177
6.4 为集群添加节点 180
6.5 滚动重启 182
6.6 管理HBase进程的简单脚本 186
6.7 简化部署的简单脚本 189
6.8 对Hadoop和HBase进行Kerberos身份认证 191
6.9 配置HDFS使用Kerberos安全保护机制 196
6.10 HBase的安全保护配置 205
第7章 故障排查 210
7.1 简介 210
7.2 故障排查工具介绍 211
7.3 处理XceiverCount错误 216
7.4 处理“打开的文件过多”的错误 217
7.5 处理“无法创建新本地线程”错误 219
7.6 处理“HBase忽略了HDFS的客户端配置”问题 221
7.7 处理ZooKeeper客户端的连接错误 223
7.8 处理ZooKeeper会话过期错误 225
7.9 处理EC2上HBase的启动错误 228
第8章 基本性能调整 237
8.1 简介 237
8.2 设置Hadoop分散磁盘I/O 239
8.3 使用网络拓扑结构脚本使Hadoop可感知机架 241
8.4 以noatime和nodiratime方式装载磁盘 244
8.5 将vm.swappiness设为0以避免交换 246
8.6 Java GC和HBase堆的设置 248
8.7 使用压缩 252
8.8 管理合并 255
8.9 管理区域分割 257
第9章 高级配置和调整 261
9.1 简介 261
9.2 使用YCSB对HBase集群进行基准测试 262
9.3 增加区域服务器的处理线程数 270
9.4 使用自定义算法预创建区域 271
9.5 避免写密集集群中的更新阻塞 277
9.6 调节MemStore内存大小 280
9.7 低延迟系统的客户端调节 281
9.8 配置列族的块缓存 284
9.9 调高读密集集群的块缓存大小 287
9.10 客户端扫描类的设置 289
9.11 调整块大小来提高寻道性能 291
9.12 启用Bloom过滤器提高整体吞吐量 293