Cassandra实战
《Cassandra实战》是国内首本Cassandra专著,由Cassandra领域的先驱者和实践者亲自执笔,多位数据库专家联袂推荐,权威性毋庸置疑。《Cassandra实战》内容全面,基于Cassandra最新版撰写,系统地讲解了Cassandra的所有功能特性和使用方法;实战性强,不仅包含大量示例代码,而且还设计了一个完整的在线交易系统实例;有一定的深度,不仅结合源代码分析了Cassandra的底层机制和工作原理,而且还精心总结了一些关于Cassandra的最佳实践。前言DBA超级论运为什么写本书最早开始接触 Cassandra是在2010年年初,那时 Cassandra才刚刚进入人们的视线。由于传统的数据库已经无法满足项目业务的需求,公司便派我去寻找和尝试其他的数据库解决方案。当时有两种备选方案: Hadoop项目中的 HBase和 Facebook开源的 Cassandra在对比了各方面的资料和分析了项目的业务需求之后,我们最终选择了配置简单、部署方便,使用高效的 Cassandra。与 HBase不同, Cassandra是一套独立的系统,不需要搭建和了解HDFS及 Zookeeper集群即可开始使用,并且可以在 Windows系统中直接进行测试。所以,我们在很短的时间之内就完成了功能和性能的评估,为后期的项目实施做好了技术储备。到2010年6月份,部门开始正式搭建实时数据中心,需要将公司前台数据库产生的业务数据定期抽取到实时数据中心,提供给业务部门的相关人员使用。于是我们开始设计Cassandra的业务数据存储结构,并开始分析 Cassandra内部的实现机制和源代码,从Cassandra的工作原理上指导我们的业务数据存储结构设计和测试方案。在整个设计和测试的过程中,我们遇到的一些问题,都可以通过活跃的 Cassandra开发社区和开放的源代码找到答案。而且,我们还可以通过修改少量的源代码来修复一些BUG和增强系统管理的特性。最终,这些修改也都在开源社区提供的后续版本中得到了体现。得益于活跃的开源社区,www.Chinadba.net中国DBA超级论坛ⅣCassandra F的功能和版本也在不断地更新。尤其是在最新的 Cassandra07.x版本中,提供了大家都非常期待的二级索引与在线更新 Schema的功能。Datastax公司作为 Cassandra的主要开发成员,开始为 Cassandra的使用者提供相应的服务支持,并开发出了一系列强大的工具,进一步提高了 Cassandra的实用性。另外,在2011年的5月, Datastax将提供一款振奋人心的工具Brsk。通过Brsk, Cassandra.将取代Hado项目中的HDFs和 HBase的角色,直接与 Hadoop项目中的 MapReduce和Hive项目进行集成,从而提高整个海量数据分析系统的性能和易用性。相信未来 Cassandra能够我们带来更多的惊喜。本书面向的读者初中级程序员。他们可以从本书中的实际例子了解 Cassandra的基本概念,以及如何通过各种编程接口在 Cassandra中写入和读取数据,如何建立二级索引,如何动态修改 Schema信息,如何通过 MapReduce做海量的数据分析,等等。中高级程序员。他们可以通过本书对源代码的分析和讲解来了解 Cassandra中的内部实现原理,从而能选用更加高效的实现方式,调整最适合的 Cassandra集群运行配置,增强程序的整体运行性能和稳定性。DBA和系统运维人员。他们可以通过本书中的运维管理等内容,了解如何在 Cassandra集群中安全高效地增加或减少服务器,以及如何恢复集群的错误,等等。系统架构师。他们可以根据本书所讲的内容掌握 Cassandra能做什么,不能做什么,适合做什么,从而为不同项目做出最合适的架构选型。联系作者正如大家所知,开源技术的更新速度非常之快, Cassandra亦是如此。尽管我们已经很努力地将最新的内容融入其中,但仍难免会遗留部分内容。所以,如果你发现本书存在任何错误和问题,或者是你对书中的某些内容不理解需要与我们进一步探讨,再或者是你有好的意见或建议,都欢迎随时与我取得联系,我的邮箱是:guster(@gmail.com另外,我的个人博客也会经常更新关于 Cassandra的最新动态和使用心得等内容,也欢迎大家来这里与我交流。博客的地址是:htp:/penster.cnblogs.com致谢感谢老张、许玉勤和姜迅,是你们的信任与支持给了我接触和学习 Cassandra的机会和应用Ccassandra的平台。感谢童家旺、何勇、任振中、王海和陈晓峰,在学习和应用 Cassandra的过程中,你们www.Chinadba.net中国DBA超级论坛V给予了我很多帮助与支持。感谢我的家人,一年来,我的大部分原来属于你们的业余时间都给了这本书,感谢你们的理解。感谢杨福川和曾珊两位编辑为本书付出的耐心与努力,你们为本书提出了很多宝贵的建议,你们的敬业精神令我钦佩。感谢本书的所有读者,希望你们能从本书中有所收获,大家的认可是我不断前进的动力。郭鹏2011年4月ai naNBA口et中国DBA超级论运www.chinadba.net中国DBA超级论坛目录下M前言www Chi naDBA net中国DBA超级论运第1章认识 NOSQL/11.1 NOSQL的起源和发展现状/21.2为什么要使用 NoSQL/21.3开源 NOSQL产品介绍/31.3.1Key/ Value的 NOSQL数据库/31.3.2面向文档的 NOSQL数据库/41.3.3面向列的 NOSQL数据库/51.3.4面向图的 NOSQL数据库/61.4本章小结/7第2章 Cassandra快速人门/92.1在 Windows环境运行单机版 Cassandra/102.1.1配置JRE/102.1.2配置运行 Cassandra0.6.x/11www.chinadba.net中国DBA超级论坛2.1.3配置运行 Cassandra0.7.x/122.2在 Linux环境运行单机版Cacassandra/142.2.1配置JRE/142.2.2配置运行Ccassandra0.6.x/152.2.3配置运行 Cassandra0.7.x/162.3 Cassandra的数据模型/182.3.1 Column/182. 3. 2 SuperColumn/182.3.3 Column Family/192.3.4 Keyspace/202.4 Cassandra的数据排序规则/202.5配置数据类型/222.6使用命令行工具与 Cassandra交互/232.6.1与 Cassandra0.6.x进行交互/232.6.2与 Cassandra0.7.x进行交互/242.7本章小结/26第3章理解 Cassandra编程接口/273.1多语言服务开发框架 Thrift/283.2 Cassandra的数据类型/283.2.1 Column/283. 2.2 SuperColumn/293.2.3 ColumnOrSuperColumn/293.2.4 Column Parent/293. 2. 5 ColumnPath/303. 2. 6 SliceRange/303. 2.7 Slice Predicate/303. 2.8 Deletion/313.2.9 Mutation/313.2.10Key range313. 2. 11 KeySlice/323. 2. 12 Token Range/323. 2. 13 Authentication Request/323. 2. 14 ConsistencyLevel/333.2. 15 Nowy fhinaDiAinet33中国DBA超级论坛3.2.16 Invalid RequestException/343.2.17 Unavailable Exception/343. 2.18 Timed Exception/343. 2. 19 Authentication Exception/343. 2. 20 Authorization Exception/353.3 Cassandra的编程接口/353.3.1ge353.3.2 get slice/363. 3. 3 multiget slice/363.3.4 get_count/373.3.5 get_range__slices/373.5.6 insert/383. 3.7 remove/383.3.8 batch mutate/393.3.9 describe_keyspace/393. 3. 10 describe keyspace/393. 3. 11 describe cluster name/40BA. nEt3.3.12 describe version/40超级3. 3. 13 describe_ring/403.4 Cassandra0.7.x版本新增功能/403.4.1二级索引/403.4.2动态修改 Schema/443.4.3自动清除过期数据/463.5本章小结/47第4章基于 Cassandra的在线交易系统/494.1需求分析/504.2数据模型设计/504.2.1 Seller/504.2.2 Buyer/514.2.3 Product/514.2.4 Product Category/524. 2.5 Comment/534.3编码实现/544.3.1修改 Keyspace设置/544.3.2建立 Eclipse项目/54www.Chinadba.net中国DBA超级论坛X4.3.3实体对象实现/554.3.4 Cassandra数据操作接口实现/564.4系统功能验证/604.4.1 BuyerDao功能验证/604.4.2 SellerDac功能验证/64.4.3 Product Dao功能验证/624.5迁移到Ccassandra0.7.x/654.5.1建立 Eclipse项目/654.5.2修改编译错误代码/654.5.3新增 Schema在线定义功能/694.5.4功能验证/704.6本章小结/71第5章 Cassandra的集群机制/735.1一致性哈希/745.1.1理解一致性哈希/45.1.2一致性哈希在Ccassandra中的应用/775.2 Gossip:集群节点之间的通信协议/815.2.1 Failure Detector/825.2.2 Gossiper/835.3集群的数据备份机制/885. 3. 1 Endpoint Snitch/885.3.2 ReplicationStrategy/915.4集群状态变化的处理机制/965. 4. 1 Storage LoadBalancer/965.4.2 Storage Service/975.4.3 MigrationManager/985.5本章小结/99第6章 Cassandra的内部数据存储结构/1016.1 Cassandra中的数据存放规则/1026. 2 Commilog/1026.3Memtable/103www.chinadba.Net中国DBA超级论坛Ⅺ6.4 SSTable/1056.4.1 Filter文件/1056.4.2 Index文件/1076.4.3Data文件/1096.4.4 Statistics文件/1136.5系统表空间/1136.6本章小结/114第7章 Cassandra的数据更新机制/lls7.1数据更新流程/1167.2集群数据更新策略/1167.2.1ANY/1207.2.2ONE/1217.2.3 QUORUM/1217.2.4 LOCAL_QUORUM/1217. 2.5 EACH_QUORUM/121ChinaDBA net7.2.6ALL/121中国DBA超级论坛7.3二级索引/1227.3.1为什么需要二级索引/1227.3.2 Cassandra二级索引更新过程/1237.4本章小结/124第8章 Cassandra的数据读取机制/258.1数据读取流程/1268.1.1弱读取/1268.1.2强读取/1288.2集群数据读取策略/1318.2.1ONE/1328. 2. 2 QUORUM/1328. 2. 3 LOCAL_QUORUM/1328. 2. 4 EACH_ QUORUM/1328.2.5ALL1338.3读修复/1338.4数据缓存/134www.chinadba.neT中国DBA超级论坛
用户评论