本书是一本广受好评的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
《智能制造基础共性标准研究成果(三)》内容简介:2015年开始,工业和信息化部与财政部共同实施了“智能制造综合标准化与新模式应
混沌同步及其在图像加密中的应用 内容简介 《混沌同步及其在图像加密中的应用研究》对近年来混沌同步控制的研究现状进行了客观的总结与回顾,总结了作者及团队近年来在混...
《美丽的青春》内容简介:本书收集了抒情诗人黑塞的中短篇小说中最脍炙人口的五篇名作。《秋之旅》描写一个在流浪和怀念之间徘徊的
《广义网络空间》内容简介:本书将广义网络空间定义为赛博、物理、社会和思维融合的四维超空间,系统地介绍了广义网络空间的相关主
《一场风花雪月的盐城》内容简介:黄海潮涌,诗与远方牵手;魅力水乡,谱写文旅新篇。盐城故事,从盐开始,与时俱进,日新月异。今
《人工智能极简编程入门(基于Python)》内容简介:本书尝试介绍一个新的学习主张,用以帮助初学者轻松而高效地入门人工智能这一专
《微课:快学、快用、快设计》内容简介:本书作者基于其微课开发的实践和对海量案例的研究,提供了一套有效的微课设计方法、展示了
《深度学习:核心技术、工具与案例解析》内容简介:本书由微软亚洲研究院的资深AI工程师撰写,是一本面向初学者的、以实战为导向的
《阳光穿越地中海》内容简介:阳光明媚、海水湛蓝的地中海是人类文明最重要的发祥地之一。在欧洲大陆还一片蒙昧时,这里就先后有多
《恐龙世界探险日记(神奇科学探险之旅)》内容简介:《恐龙世界探险日记》是“神奇科学探险之旅”丛书之一,本书选取了恐龙大家族
《我在清华等你来(第四辑)》内容简介:百年清华,莘莘学子心向往之!清华学生无疑是同龄人中的佼佼者,鲜花绽放的背后是长期的积
《文典一览》内容简介:《文典一览》是余秋雨先生长期斟酌之后选出并予以翻译、阐释的中国古代文学读本。他意在带领当代读者辨认古
《信息场的开拓:未来后信息社会交互设计》针对当前世界范围内有关交互设计和信息设计的各种疑问,通过对于信息、信息设汁以及与当
本书深入剖析Photoshop创作技巧与理念的同时,从作品需求的角度出发解读Photoshop影像处理功能及其应用。目录 O热爱图像的石头何
Withthesecondeditionofthispopularbook,youlllearnhowtobuildHTML5andCSS3-basedapps...
ThisbookisaboutlearningtoprograminLisp.Althoughwidelyknownastheprincipallanguage...
《达梦数据库编程指南》内容简介:本书以达梦数据库DM8为蓝本,介绍达梦数据库的存储过程、存储函数、触发器等服务器端程序,以及J
《王阳明:一切心法》内容简介:本书是一部诚意之作,它权威、有趣、真挚,易懂,只为让你了解真正的而不是为误解的王阳明,了解“
数据科学 本书特色 数据科学是一门新兴的热门科学,国外一流大学纷纷设立同名课程,相应的专业、课程及书籍也深受欢迎。本书是国内**部系统阐述数据科学的重要专著,填...
《产品生命周期管理:21世纪企业制胜之道》主要内容:产品生命周期管理是当今制造企业重要的管理理念和方法,对提升我阳制造企业的