
是2011年机械工业出版社出版的图书,作者是郭来自鹏。
- 书名 Cassandra实战
- 作者 郭鹏
- 出版社 机械工业出版社; 第1版
- 出版时间 2011年6月1日
- 页数 303 页
简介
《Cassandra实战》是国内首本Cassandra专著,由Cassandra领域的先驱者和实践者亲自执笔,多位数据库专家联袂推荐,权威性毋庸置疑。《Cassandr顾a实战》内容全面,基于Cassandra最新版撰写,系统地讲解了Cass迫果andra的所有功能特性和使用方法;实战性强,不仅包含大量示例代码,而且应量令向货镇报整还设计了一个完整的在线交易系统实例;有一定的深度,不仅结合源代码分析了Ca来自ssandra的底层机制和工作原理,而且还精心总结了一些360百科关于Cassandra的最佳实践。
《Cassandra实战》一共分为13章,首先简单介绍了NoSQL的优客尼居说采验头政势,以及几种具有代表性的NoSQL数据库的功能特性;其压次详细讲解了Cassandra的安装和配置、数据模型和排序规则、编程接口等基础知识;接着以迭代的方式演示了一个基于Cassandra的在线交易系统的完整开发过程,很好地将基础理论融入到了实践中;再接着结合源代码分析了Cassandra的集群机制、内部数据存储结构、数据更新机制、数据读取机制、数据压缩机制、启动流程等与Cassandr交意被践华宣规爱早样a的底层机制和工作原理相关的内容;最后讲解了Cassandra在分布式环境中的应用、与Hadoop的整合,以及相关的最佳实践。附录中包含了《Cassandra实战》示例帝氢火江空粉本收决的源代码以及在Eclipse环境中编辑和修改Cassandra的源代码方法。
《Cassandra实战》适合所有对Cassandra感兴趣的读者阅读。通过《Cas则响权现脱认sandra实战》,不仅能全面掌握Cassandra的基础知识和使用方法,还能深入理取车丰客罪星费径解Cassandra油县选绍的底层机制和工作原理,以及它在复杂现实环境中的应用。
推敌亚命船威德视坚如省皇荐
《Cassand操合民袁蒸药证ra实战》:《Cassandra实战》内容全面,系统地讲解了Cassandra的所有功能特性及其使用方法。《Cassandra实战》深入浅出,结合源代码分析了Cassandra的底朝等地商答冲剂劳品层机制和工作原理。《Cassandra实战》由国内Cassandra领域的驱者和实践者亲自执笔,多位数据库专家联袂推荐。
以Face book和Twitter为代表的Web 2. 应用的数据的爆炸性增尼镇海依理局长为后台存储系统带来了两个新的挑战:海量数据存储数据查询低延时
为了设计出能够存储海量数据并实现低延时的数据库架构,Google和Amazon分别给出了自己的实现技术,并且能满足不同的需求。Google开发了BigTable,Amazon开发了Dynamo。这两种实现都具有高扩展性和高可用性,并且可以在廉价的服务器中稳定运行,节约了大量的硬件成本。Face book基于Google和Amazon的研究成果开发出了Cassandra,它不仅具备BigTable强大的数据模型,而且还具备Dynamo的简洁性,例如确九名米犯晶行稳曾岩端到端数据备份,以及洋员婷球家强大的错误容灾功草灯坐改能等。
2008年,Face book将Cassandra贡献给了开源社区。今天,Cassandra已经成为实现访问低延时和海量数据存储的首选架构。大量的公司和机构都开始使用Cassandra构建实时应用程序以处理海量的数据,其中包括Netflix、TWitter和Cisco等国际知名企业。
Cassandra阳的开发社区非常活跃,它在0.6版中与Hadoop进行了整合,使得Ca放由过法读尼争那正似ssandra中的数据能够被Hadoop处理;在0.7版中,它又新增了二级索引和在线更新Schema等功能。更让人期待的是,Cassandra将实现HDFS的接口,成为HDFS和HBase的替换方案,能提供更好的性能。
《Cassandra实战》内容全面,实战性强,不仅系统地讲解了Cassandra的使用方法,而且还从源代码的角度对Cassandra的实现原理和工作机制进行了分析和探讨,深度、广度和实践性完美结合,相信能给广大Cassandra用户带来一定的帮助。
媒体推荐
毫无疑问,NoSQL数据库的出现让数据库的选择性变得更加丰富。Facebook够皮歌离笑配适公司推出的Cass衡破补笑界andra无疑是开源NoSQL产品中的一颗闪亮新星。Facebook、T来自witter、Digg等公司对Cassandra的使用已经证明了它不是一个玩具产品,其完全可以在复杂的生产环境下承担向差红今元下叫光无异送重要的角色。同时,越来越多的关系数据库也开始关注NoSQL对数据库技术的影响,如最近MySQL数据库下的InnoDB存储引擎已经提供了NoSQL的访问方式。《Cassandra实战》对Cassandra的顶心们周配置、应用、编译等内容进快轴能行了详细的介绍,想对Cassandra一探究竟的读者千万不能错过。
--姜承尧 资深MySQL数据库专家,著有经典著作《MySQL技术内幕:InnoDB存提吧弱定立微令航储引擎》
Cassandra最初是由Facebook开发的一套开源的分布式干刑唱敌云越巴国连呢NoSQL数据库系统,它同时具备了Google BigTable的数据模型和Amazon Dynamo360百科的完全分布式架构,具有良好的可扩展性,目前被很多大型的Web2.0网站所使用,是一种流行的分布式结构化数据存储方案。《Cassandra实战》作者维护须快工含Cassandra数据库已经有很长时间,具有丰富的一线工作经验,同时本书还结合源码对一些底层的机制和原理进行了分析,值得初中级读者参考。
--杨海朝 新浪网(中国)技术有限公司首席DBA/新板浪微博数据库负责人
NoSQ顺露宁L是IT领域当下讨论最热烈的技术话题之一。2010负年,Cassandra的去心室球上欢中心化和无缝扩展的特性吸引了众多NoS良车直阶杀怎又八其圆病QL粉丝的眼球,成为了NoSQL阵营中的一道亮丽风景线。本岁露听每未致浓书既能引领我们全面掌握Cassandra的基础知识,又能帮助我们深入了解Cassandra的运行机制与原理。相信在阅读完本书后,我们将会对Cassandra有一个全面而深入的认识。对于角显院范治手律田乎维兰喜爱NoSQL的我来说,看到国内有相关的书籍出版,非常兴奋,特此向所有关注NoSQL的朋友推荐《Cassandra实战》。
--孙立 数据库专家/NoSQL先驱/去哪儿网高级系统架构师
有很多技术在出现后不逐答组音久就淡出了人们的视野,导致这种情况发生的原因有很多,点许越伯袁由四传甲营聚其中一个重要的原因就是没有合适的应用环境。在这一点上,NoSQL技术无疑是幸运的。因离期排给有程身浓孔批剂为我们所熟知的关系型数据库在很多超大规模、高并发的Web 2.0网站应用中面临很多无法克服的问题,所以近几年NoSQL技术越来越受到关注和重视。Amazon的Dynamo和Google的BigTable都是非常成功的商业NoSQL产品,很多开源的NoSQL产品也得到了长足的发展,Cassandra就是其中之一。《Cassandra实战》由浅入深地介绍了Cassandra的基础知识和它在生产环境中的应用,无疑是一本全面了解Cassandra的好书,本书将引领你走进无比精彩的NoSQL世界。
--张勤 著有《linux服务器配置全程实录》
图书目录
前言
第1章 认识NoSQL/1
1.1 NoSQL的起源和发展现状/2
1.2 为什么要使用NoSQL/2
1.3 开源NoSQL产品介绍/3
1.3.1 Key/Value的NoSQL数据库/3
1.3.2 面向文档的NoSQL数据库/4
1.3.3 面向列的NoSQL数据库/5
1.3.4 面向图的NoSQL数据库/6
1.4 本章小结/7
第2章 Cassandra快速入门/9
2.1 在Windows环境运行单机版Cassandra/10
2.1.1 配置JRE/11
2.1.2 配置运行Cassandra 0.6.x/11
2.1.3 配置运行Cassandra 0.7.x/12
2.2 在Linux环境运行单机版Cassandra/14
2.2.1 配置JRE/14
2.2.2 配置运行Cassandra 0.6.x/15
2.2.3 配置运行Cassandra 0.7.x/16
2.3 Cassandra的数据模型/18
2.3.1 Column/18
2.3.2 SuperColumn/18
2.3.3 ColumnFamily/19
2.3.4 Keyspace/20
2.4 Cassandra的数据排序规则/20
2.5 配置数据类型/22
2.6 使用命令行工具与Cassandra交互/23
2.6.1 与Cassandra 0.6.x进行交互/23
2.6.2 与Cassandra 0.7.x进行交互/24
2.7 本章小结/26
第3章 理解Cassandra编程接口/27
3.1 多语言服务开发框架Thrift/28
3.2 Cassandra的数据类型/28
3.2.1 Column/28
3.2.2 SuperColumn/29
3.2.3 ColumnOrSuperColumn/29
3.2.4 ColumnParent/29
3.2.5 ColumnPath/30
3.2.6 SliceRange/30
3.2.7 SlicePredicate/31
3.2.8 Deletion/31
3.2.9 Mutation/31
3.2.10 KeyRange/31
3.2.11 KeySlice/32
3.2.12 TokenRange/32
3.2.13 AuthenticationRequest/32
3.2.14 ConsistencyLevel/33
3.2.15 NotFoundException/33
3.2.16 InvalidRequestException/34
3.2.17 UnavailableException/34
3.2.18 TimedOutException/34
3.2.19 AuthenticationException/34
3.2.20 AuthorizationException/35
3.3 Cassandra的编程接口/35
3.3.1 get/35
3.3.2 get_slice/36
3.3.3 multiget_slice/36
3.3.4 get_count/37
3.3.5 get_range_slices/37
3.5.6 insert/38
3.3.7 remove/38
3.3.8 batch_mutate/39
3.3.9 describe_keyspaces/39
3.3.10 describe_keyspace/39
3.3.11 describe_cluster_name/40
3.3.12 describe_version/40
3.3.13 describe_ring/40
3.4 Cassandra 0.7.x版本新增功能/40
3.4.1 二级索引/40
3.4.2 动态修改Schema/44
3.4.3 自动清除过期数据/46
3.5 本章小结/47
第4章 基于Cassandra的在线交易系统/49
4.1 需求分析/50
4.2 数据模型设计/50
4.2.1 Seller/51
4.2.2 Buyer/51
4.2.3 Product/52
4.2.4 ProductCategory/53
4.2.5 Comment/54
4.3 编码实现/54
4.3.1 修改Keyspace设置/55
4.3.2 建立Eclipse项目/56
4.3.3 实体对象实现/55
4.3.4 Cassandra数据操作接口实现/56
4.4 系统功能验证/60
4.4.1 BuyerDao功能验证/60
4.4.2 SellerDao功能验证/61
4.4.3 ProductDao功能验证/62
4.5 迁移到Cassandra 0.7.x/65
4.5.1 建立Eclipse项目/65
4.5.2 修改编译错误代码/65
4.5.3 新增Schema在线定义功能/69
4.5.4 功能验证/70
4.6 本章小结/71
第5章 Cassandra的集群机制/73
5.1 一致性哈希/74
5.1.1 理解一致性哈希/74
5.1.2 一致性哈希在Cassandra中的应用/77
5.2 Gossip:集群节点之间的通信协议/81
5.2.1 FailureDetector/82
5.2.2 Gossiper/83
5.3 集群的数据备份机制/88
5.3.1 EndpointSnitch/88
5.3.2 ReplicationStrategy/91
5.4 集群状态变化的处理机制/96
5.4.1 StorageLoadBalancer/97
5.4.2 StorageService/98
5.4.3 MigrationManager/99
5.5 本章小结/99
第6章 Cassandra的内部数据存储结构/101
6.1 Cassandra中的数据存放规则/102
6.2 Commilog/102
6.3 Memtable/103
6.4 SSTable/105
6.4.1 Filter文件/105
6.4.2 Index文件/107
6.4.3 Data文件/109
6.4.4 Statistics文件/113
6.5 系统表空间/113
6.6 本章小结/114
第7章 Cassandra的数据更新机制/115
7.1 数据更新流程/116
7.2 集群数据更新策略/116
7.2.1 ANY/120
7.2.2 ONE/121
7.2.3 QUORUM/121
7.2.4 LOCAL_QUORUM/121
7.2.5 EACH_QUORUM/121
7.2.6 ALL/121
7.3 二级索引/122
7.3.1 为什么需要二级索引/122
7.3.2 Cassandra二级索引更新过程/123
7.4 本章小结/124
第8章 Cassandra的数据读取机制/125
8.1 数据读取流程/126
8.1.1 弱读取/126
8.1.2 强读取/128
8.2 集群数据读取策略/131
8.2.1 ONE/132
8.2.2 QUORUM/132
8.2.3 LOCAL_QUORUM/132
8.2.4 EACH_QUORUM/132
8.2.5 ALL/133
8.3 读修复/133
8.4 数据缓存/134
8.4.1 RowCache/134
8.4.2 KeyCache/134
8.5 二级索引/135
8.6 本章小结/135
第9章 Cassandra的数据压缩机制/137
9.1 为什么要进行数据压缩/138
9.2 如何控制数据压缩/138
9.3 数据压缩流程/139
9.4 维护Cassandra中的数据/143
9.4.1 数据清理压缩/143
9.4.2 数据一致性校验压缩/144
9.5 本章小结/144
第10章 Cassandra的启动流程/145
10.1 Cassandra启动脚本/146
10.2 Cassandra启动流程/149
10.2.1 配置log4j/150
10.2.2 读取校验配置文件信息/150
10.2.3 加载所有的数据文件/152
10.2.4 修复数据/154
10.2.5 启动Gossiper服务/155
10.2.6 判断是否需要进行Bootstrap操作/156
10.2.7 监听Thrift端口,提供Thrift服务/157
10.3 本章小结/157
第11章 在分布式环境中使用的Cassandra/159
11.1 在Linux环境中搭建与使用Cassandra集群/160
11.1.1 配置JRE/160
11.1.2 部署Cassandra可执行文件/161
11.1.3 修改Cassandra配置文件/162
11.1.4 启动Cassandra/163
11.2 Cassandra运行配置项详解/166
11.3 Cassandra集群的运行和维护/175
11.3.1 查看集群的运行情况/176
11.3.2 添加节点/179
11.3.3 删除节点/181
11.3.4 移动节点/183
11.3.5 数据维护/185
11.4 本章小结/187
第12章 Cassandra与Hadoop的整合/189
12.1 Hadoop快速入门/190
12.1.1 Hadoop简介/190
12.1.2 HDFS/192
12.1.3 Map/Reduce/192
12.1.4 配置单机版Hadoop/194
12.1.5 编写Map/Reduce程序/195
12.2 为什么要整合Cassandra与Hadoop/200
12.3 使用Map/Reduce导入数据到Cassandra中/200
12.4 将Cassandra中的数据作为Map/Reduce输入/205
12.5 本章小结/209
第13章 Cassandra最佳实践/211
13.1 避免Cassandra自身的限制/212
13.1.1 不要盲目使用Super Column/212
13.1.2 硬盘的容量大小限制/212
13.1.3 注意系统大小限制/212
13.2 数据压缩策略/213
13.3 使用高级的客户端/213
13.3.1 Pycassa/213
13.3.2 Hector/215
13.3.3 FluentCassandra/218
13.3.4 Cassandra/220
13.3.5 phpcassa/221
13.4 负载均衡/222
13.4.1 随机选取/222
13.4.2 缓存集群信息/222
13.5 谨慎使用二级索引/223
13.6 通过JMX监测Cassandra/223
13.7 调整JVM启动参数/229
13.8 使用适合的系统配置参数/231
13.9 本章小结/232
附录A 在Eclipse中修改Cassandra源代码/233
附录B CassSeller代码/243
附录C CassSeller-0.7代码/243
作者简介
郭鹏,国内Cassandra领域的先驱者和实践者。资深软件开发工程师,擅长分布式应用程序的开发和使用,时间经验极其丰富。一直致力于Cassandra、Hadoop、Hive、MongoDB等分布式应用的底层实现原理的研究和探索,对分布式数据库和数据仓库也有深刻而独到的理解。曾任阿里巴巴数据仓库开发工程师,参与设计和开发了多个基于Cassandra和Hadoop的大型应用。现供职于盛大在线,参与Hadoop计算存储平台的搭建与实施。活跃于开源技术社区,是博客园的推荐博客,也是CSDN的博客专家,热衷于与网友分享自己的心得和体会,深受社区欢迎。
评论留言