本书是一本广受好评的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
《财富自由从0到1》内容简介:个人的财富自由,可以通过资产的多样化配置、改变理财思维和习惯实现。想让自己的财富保值增值,人们
Ubuntu Linux完全自学教程 本书特色 全程图片讲解轻松推进,100%可实践针对性实例,节省70%学习时间Ubuntu Linux完全自学教程 内容简介...
用AngularJS开发下一代Web应用 本书特色 我们都希望开发更小型、更轻量的Web应用,让创建应用更加容易,并且当项目变大时仍然易于测试、扩展和维护。这本...
《商务英语写作100主题》内容简介:互联网+时代,你最需要的英语学习书! 100个商务主题,200篇标准范文,2000余个扩充例句,微信推
网格是所有设计的基础,对设计师来说,学会运用网格是进行所有设计的基础。运用从一栏到多栏网格,与文字、色彩、图像及其他诸多
本书全面考察了1960-1975年荷兰社会经济的环境下视觉识别的设计者(如设计公司、自由设计师)、客户(如企业、政府、公共机构)、执行
《新时代改革方法论研究》内容简介:该书包括以下几个个部分的内容。第一部分主要总结改革开放的重大意义,第二部分回顾改革方法论
《SQL Server与Oracle迁移指南》内容简介:本书主要对SQL Server与Oracle两种数据库功能间的相互迁移进行对比讲解,向开发人员提供
《安藤忠雄论建筑》是安藤忠雄根据自己给东京大学建筑系研究生讲课的内容写成的第一部著作。他在书中详细叙述了自己成长为一名建
HTML5、CSS3和JavaScript技术是网页设计的精髓,《精通HTML5+CSS3+JavaScript网页设计》以应用实例和综合实战案例的形式逐一详解
《西方哲学精神》内容简介:作者在分析、评价从古代到近代西方哲学史上著名的人物和流派的理论、观点的基础上,由中西比较的视点出
《数字图像处理》主要介绍了数字图像处理的基本概念、常用方法、实用技术和典型应用。全书分三大部分共9章,第一部分是数字图像处
《暑期社会调查报告优秀作品集(2019)》内容简介:本书为南京理工大学马克思主义学院“毛泽东思想与中国特色社会主义理论体系概论
本书解答了101个建筑设计中的关键问题,从建筑入门必须的知识,到弄清楚建筑设计过程中容易熟视无睹的问题,以一图一文的形式,将
本书结合应用介绍了PHP+MySQL构建Web系统的技术,并附有大量代码实例。全书共24章,分为4个部分:使用PHP、走进MySQL、典型模块和
Solid Edge高级篇 本书特色 本书以EDS公司*新版本的SolidEdge为内容编写而成。本套丛书分为《SolidEdge基础教程》、SolidEdge...
Scikit-Learn与TensorFlow机器学习实用指南 本书特色 TensorFlow是一个采用数据流图(data flow graphs),用于数值计...
在线阅读本书NowinitsFourthEdition,thisunrivaled,seminalworkcontinuesitslongtraditionof...
佐藤可士和KashiwaSato,艺术指导,创意指导,1965年生于东京。1989年毕业于多摩艺术大学,毕业后进入日本知名广告公司“博报堂”
《互联网金融原理与实务》内容简介:本书在人类三次重大的科技变革中,信息技术对社会与经济的发展影响极为深刻。互联网的出现推动