前言
为什么写本书
*早开始接触Cassandra是在2010年年初,那时Cassandra才刚刚进入人们的视线。由于传统的数据库已经无法满足项目业务的需求,公司便派我去寻找和尝试其他的数据库解决方案。当时有两种备选方案:Hadoop项目中的HBase和Facebook开源的Cassandra。
在对比了各方面的资料和分析了项目的业务需求之后,我们*终选择了配置简单、部署方便,使用**的Cassandra。与HBase不同,Cassandra是一套独立的系统,不需要搭建和了解HDFS及Zookeeper集群即可开始使用,并且可以在Windows系统中直接进行测试。所以,我们在很短的时间之内就完成了功能和性能的评估,为后期的项目实施做好了技术储备。
到2010年6月份,部门开始正式搭建实时数据**,需要将公司前台数据库产生的业务数据定期抽取到实时数据**,提供给业务部门的相关人员使用。于是我们开始设计Cassandra的业务数据存储结构,并开始分析Cassandra内部的实现机制和源代码,从Cassandra的工作原理上指导我们的业务数据存储结构设计和测试方案。在整个设计和测试的过程中,我们遇到的一些问题,都可以通过活跃的Cassandra开发社区和?放的源代码找到答案。而且,我们还可以通过修改少量的源代码来修复一些BUG和增强系统管理的特性。*终,这些修改也都在开源社区提供的后续版本中得到了体现。得益于活跃的开源社区,Cassandra的功能和版本也在不断地更新。尤其是在*新的Cassandra 0.7.x版本中,提供了大家都非常期待的二级索引与在线更新Schema的功能。
Datastax公司作为Cassandra的主要开发成员,开始为Cassandra的使用者提供相应的服务支持,并开发出了一系列强大的工具,进一步提高了Cassandra的实用性。另外,在2011年的5月,Datastax将提供一款振奋人心的工具——Brisk。通过Brisk,Cassandra将取代Hadoop项目中的HDFS和HBase的角色,直接与Hadoop项目中的MapReduce和Hive项目进行集成,从而提高整个海量数据分析系统的性能和易用性。
相信未来Cassandra能够我们带来更多的惊喜。 本书面向的读者
初中级程序员。他们可以从《Cassandra实战》中的实际例子了解Cassandra的基本概念,以及如何通过各种编程接口在Cassandra中写入和读取数据,如何建立二级索引,如何动态修改Schema信息,如何通过MapReduce做海量的数据分析,?等。
中**程序员。他们可以通过本书对源代码的分析和讲解来了解Cassandra中的内部实现原理,从而能选用更加**的实现方式,调整*适合的Cassandra集群运行配置,增强程序的整体运行性能和稳定性。
DBA和系统运维人员。他们可以通过本书中的运维管理等内容,了解如何在Cassandra集群中****地增加或减少服务器,以及如何恢复集群的错误,等等。
系统架构师。他们可以根据本书所讲的内容掌握Cassandra能做什么,不能做什么,适合做什么,从而为不同项目?出*合适的架构选型。 联系作者
正如大家所知,开源技术的更新速度非常之快,Cassandra亦是如此。尽管我们已经很努力地将*新的内容融入其中,但仍难免会**部分内容。所以,如果你发现本书存在任何错误和问题,或者是你对书中的某些内容不理解需要与我们进一步探讨,再或者是你有好的意见或建议,都欢迎随时与我取得联系,我的邮箱是:gpcuster@gmail.com。
另外,我的个人博客也会经常更新关于Cassandra的*新动态和使用心得等内容,也欢迎大家来这里与我交流。博客的地址是:http://gpcuster.cnblogs.com。 致谢
感谢老张、许玉勤和姜迅,是你们的信任与支持给了我接触和学习Cassandra的机会和应用Cassandra的平台。
感谢童家旺、何勇、任振中、王海和陈晓峰,在学习和应用Cassandra的过程中,你们给予了我很多帮助与支持。
感谢我的家人,一年来,我的大部分原来属于你们的业余时间都给了这本书,感谢你们的理解。
感谢杨福川和曾?两位编辑为本书付出的耐心与努力,你们为本书提出了很多宝贵的建议,你们的敬业精神令我钦佩。
感谢本书的所有读者,希望你们能从本书中有所收获,大家的认可是我不断前进的动力。
郭鹏
2011年4月