本书是一本广受好评的Cassandra 图书。与传统的关系型数据库不同,Cassandra 是一种开源的分布式存储系统。书中介绍了它无中心架构、高可用、无缝扩展等引人注目的特点,讲述了如何安装、配置Cassandra 及如何在其上运行实例,还介绍了对它的监控、维护和性能调优手段,同时还涉及了Cassandra 相关的集成工具Hadoop 及其类似的其他NoSQL 数据库。
本书适合数据库开发人员与网站开发者阅读。
译者序XIII
序XV
前言XVII
第1 章 Cassandra 概况 1
1.1 关系型数据库有什么问题1
1.2 关系型数据库简单回顾5
1.2.1 RDBMS:出类拔萃与表现平平6
1.2.2 互联网的规模12
1.3 Cassandra 的电梯间演讲13
1.3.1 50 个字介绍Cassandra 13
1.3.2 分布式与无中心 13
1.3.3 弹性可扩展 14
1.3.4 高可用与容错15
1.3.5 可调节的一致性15
1.3.6 Brewer 的CAP 理论18
1.3.7 面向行 21
1.3.8 无schema 22
1.3.9 高性能 22
1.4 Cassandra 来自何方22
1.5 Cassandra 的应用场景23
1.5.1 大规模部署 23
1.5.2 写密集、统计和分析型工作24
1.5.3 地区分布 24
1.5.4 变化的应用 24
1.6 谁在使用Cassandra24
1.7 小结26
第2 章 安装Cassandra27
2.1 安装二进制包 27
2.1.1 解压缩 27
2.1.2 里面有什么 27
2.2 从源码编译28
2.2.1 其他编译目标30
2.2.2 使用Maven编译30
2.3 运行Cassandra 30
2.3.1 在Windows平台上运行Cassandra 31
2.3.2 在Linux下运行Cassandra 31
2.3.3 启动服务器 32
2.4 使用命令行界面的客户端 33
2.5 基本命令行命令 34
2.5.1 帮助34
2.5.2 连接服务器 35
2.5.3 描述环境 35
2.5.4 创建keyspace和列族36
2.5.5 读写数据 37
2.6 小结38
第3章 Cassandra的数据模型39
3.1 关系型数据模型 39
3.2 简介40
3.3 集群43
3.4 keyspace43
3.5 列族44
3.6 列46
3.6.1 宽行与窄行 48
3.6.2 列的排序 49
3.7 超级列50
3.8 Cassandra与RDBMS的设计差别53
3.8.1 没有查询语言53
3.8.2 没有引用完整性53
3.8.3 第二索引 53
3.8.4 排序成为一种设计决策54
3.8.5 反范式化 54
3.9 设计模式55
3.9.1 具体化视图 56
3.9.2 无值列 56
3.9.3 聚合键 56
3.10 需要记住的几件事57
3.11 小结57
第4章 应用实例59
4.1 数据模型设计 59
4.2 酒店应用的关系型数据库设计60
4.3 酒店应用的Cassandra设计61
4.4 酒店应用代码 62
4.4.1 创建数据库 63
4.4.2 数据结构 64
4.4.3 进行连接 65
4.4.4 预装填数据库66
4.4.5 搜索应用 78
4.5 Twissandra82
4.6 小结82
第5章 Cassandra的架构83
5.1 system keyspace 83
5.2 对等结构84
5.3 gossip与故障检测 84
5.4 逆熵与读修复 86
5.5 memtable、SSTable和commit log 87
5.6 提示移交 89
5.7 压紧89
5.8 Bloom filter91
5.9 墓碑 91
5.10 分阶段事件驱动架构92
5.11 管理器与服务 93
5.11.1 Cassandra守护进程93
5.11.2 存储服务 93
5.11.3 消息服务 93
5.11.4 提示移交管理器94
5.12 小结94
第6章 配置Cassandra95
6.1 keyspace 95
6.1.1 创建列族 98
6.1.2 从0.6迁移到0.799
6.2 副本99
6.3 副本放置策略 100
6.3.1 简单策略 101
6.3.2 旧网络拓扑策略102
6.3.3 网络拓扑策略103
6.4 副本因子103
6.5 分区器105
6.5.1 随机分区器106
6.5.2 有序分区器106
6.5.3 配页有序分区器107
6.5.4 字节序分区器107
6.6 Snitch107
6.6.1 Simple Snitch107
6.6.2 PropertyFileSnitch 107
6.7 创建集群108
6.7.1 修改集群名称109
6.7.2 给集群增加节点109
6.7.3 多种子节点111
6.8 动态加入环 113
6.9 安全 114
6.9.1 使用SimpleAuthenticator114
6.9.2 编程鉴权 117
6.9.3 使用MD5加密118
6.9.4 提供你自己的鉴权算法118
6.10 杂项设置119
6.11 附加工具120
6.11.1 查看键值120
6.11.2 导入之前版本的配置120
6.12 小结122
第7章 读写数据 123
7.1 Cassandra与RDBMS查询的不同123
7.1.1 没有Update查询123
7.1.2 记录级的写原子性123
7.1.3 不支持服务端事务123
7.1.4 没有重复键值124
7.2 写操作的基本属性124
7.3 一致性级别 124
7.4 读操作的基本属性126
7.5 API126
7.6 设置与插入数据 128
7.7 使用简单的get 133
7.8 数据准备135
7.9 切片谓词135
7.9.1 使用get_slice读取特定列名136
7.9.2 通过切片区间获取一组列137
7.9.3 取出一行中的所有列138
7.10 get_range_slices 138
7.11 multiget_slice 140
7.12 删除142
7.13 批量变更144
7.13.1 批量删除144
7.13.2 区间鬼影145
7.14 编程定义keyspace和列族145
7.15 小结146
第8章 客户端147
8.1 基本的客户端API148
8.2 Thrift148
8.2.1 Thrift对Java的支持151
8.2.2 异常 151
8.2.3 Thrift小结 152
8.3 Avro152
8.3.1 Avro Ant目标154
8.3.2 Avro规范155
8.3.3 Avro小结156
8.4 Git简介156
8.5 连接客户端节点 157
8.5.1 客户端列表157
8.5.2 循环DNS 157
8.5.3 负载均衡器157
8.6 Cassandra Web控制台157
8.7 Hector(Java) 161
8.7.1 特性 161
8.7.2 Hector API 162
8.8 HectorSharp(C#) 162
8.9 Chirper167
8.10 Chiton(Python) 167
8.11 Pelops(Java) 168
8.12 Kundera(Java ORM) 169
8.13 Fauna(Ruby) 169
8.14 小结 170
第9章 监控 171
9.1 日志171
9.1.1 跟踪查看 173
9.1.2 通用技巧 174
9.2 JMX与MBean概述175
9.2.1 MBean 177
9.2.2 集成JMX 179
9.3 通过JMX与Cassandra交互180
9.4 Cassandra的MBean181
9.4.1 org.apache.cassandra.concurrent185
9.4.2 org.apache.cassandra.db185
9.4.3 org.apache.cassandra.gms186
9.4.4 org.apache.cassandra.service186
9.5 定制Cassandra的MBean188
9.6 运行时分析工具 190
9.6.1 使用JMX和JHAT进行堆分析191
9.6.2 发现线程问题194
9.7 健康检查195
9.8 小结196
第10章 维护197
10.1 获取环的信息 198
10.1.1 Info 198
10.1.2 Ring 198
10.2 获取统计信息 199
10.2.1 使用cfstats199
10.2.2 使用tpstats200
10.3 基本维护工作 201
10.3.1 修复 201
10.3.2 刷写 202
10.3.3 清理 203
10.4 快照203
10.4.1 进行快照203
10.4.2 清除快照204
10.5 对集群进行负载均衡205
10.6 退服节点208
10.7 更新节点210
10.7.1 删除令牌210
10.7.2 压紧阈值210
10.7.3 在一个工作的集群中改变列族210
10.8 小结211
第11章 性能调优 213
11.1 数据存储213
11.2 回复超时215
11.3 commit log 215
11.4 memtable216
11.5 并发216
11.6 缓存217
11.7 缓冲区尺寸 218
11.8 使用Python压力测试218
11.8.1 生成Python Thrift接口 218
11.8.2 运行Python压力测试 220
11.9 启动和JVM设置222
11.10 小结 224
第12章 集成Hadoop225
12.1 何为Hadoop 225
12.2 使用MapReduce 226
12.3 运行字数统计例子227
12.3.1 将数据输出到Cassandra229
12.3.2 Hadoop流 229
12.4 MapReduce之上的工具229
12.4.1 Pig 230
12.4.2 Hive 231
12.5 集群配置231
12.6 案例233
12.6.1 Raptr.com: Keith Thornhill 233
12.6.2 Imagini: Dave Gardner 233
12.7 小结234
附录 非关系型数据库大观235
词汇表.261
关于作者 279
关于封面 279
《中国传统文化》内容简介:《中国传统文化》为云南省普通高等学校“十二五”规划教材,包括“绪论”和六章内容。第一章“天:天文
《财神的名单》内容简介:跟你讲的是18个商业大人物成功背后的故事。阅读着他们的精彩,既丰富了谈资,也可以思考一下自己的人生。
内容简介活用CSS讓Web設計更多元!本書因應Web設計而生,在書中我們將焦點放在最重要的兩種語言上,即XHTML與CSS,並融合了目前最
《计算机病毒防范艺术》作者是赛门铁克(Symantec)公司安全响应中心首席安全架构师,他根据自己设计和改进NortonAntiVirus系统产
解密搜索引擎技术实战:Lucene & Java精华版(第2版) 本书特色 1、《解密搜索引擎技术实战:lucene & java精华版(第2版)》是畅销书的升...
《出发:我在法院当法警》内容简介:本书全面梳理了上海市司法警察队伍历年来的发展足迹,结合电台访谈节目的内容,整理编写而成。
《大盘时代:中国泛地产革命》内容简介:1999年,一条从广州南直通番禺的华南快速干线将普通的岭南小镇南村,变成了中国房地产史上
《三维CAD/CAM》内容简介:结合机械类专业的实际,以够用为度,主要讲述设计模块和加工模块。第一部分为设计模块(即CAD模块),主
《红色范思哲灰色阿玛尼:跟大师学色彩搭配》从“色”的角度对绚丽的时装世界进行了探索。它不是一大堆色彩理论的堆砌,而以巴黎、
中文版AutoCAD2004经典实例158例 内容简介 Autocad2004是美国Autodesk公司开发的通用计算机辅助绘图与设计系列软件,是当今工程设计领...
《Python入门经典:以解决计算问题为导向的Python编程实践》是一本系统而科学的Python入门教程,美国密歇根州立大学等多所美国知名
《化工原理》重点介绍化工单元操作的基本原理、计算方法和典型设备。全书共8章,包括绪论、流体流动与输送机械、非均相物系分离、
《我看电商》内容简介:《我看电商》是作者近30年从事零售及电子商务管理的总结和分享。初版于2013年上市,累计发行超10万册。应众
《三板斧:阿里巴巴管理之道》是一部探讨与总结阿里巴巴内部实战管理的书籍,它不是一个基于完备管理体系的理论,而是一套来自于
本书列出了100个改变建筑的伟大观念,其中很多观念至今仍在深刻影响着我们这个时代的建筑发展。书中不可避免地侧重于对一些较新的
《Docker实践(第2版)》内容简介:本书由浅入深地讲解了Docker的相关内容,涵盖从开发环境到DevOps流水线,再一路到生产环境的整个
AuthorJasonOstranderwalksdevelopersthroughthedifferentchoicesavailableontheirway...
本书注重理论与实践的结合,全面讲述高级的DOM脚本编程。全书分为3个部分:第一部分“深入理解DOM脚本编程”,涉及W3CDOM规范的各
《历史的面孔》内容简介:中国近代历史是一段苦难史,也是一段中国人民不断探索的历史。“求新求变”贯穿着整个时空,这里面涌现了
《中国履行《禁止化学武器公约》报告(2015)》内容简介:本书力求全面反映中国禁化武履约工作情况,客观展示中国履约成就,记录履