主编推荐语
内容全面,系统地讲解了Cassandra的所有功能特性及其使用方法。
内容简介
国内首本Cassandra专著,由Cassandra领域的先驱者和实践者亲自执笔,多位数据库专家联袂推荐,权威性毋庸置疑。
内容全面,基于Cassandra最新版撰写,系统地讲解了Cassandra的所有功能特性和使用方法;实战性强,不仅包含大量示例代码,而且还设计了一个完整的在线交易系统实例;有一定的深度,不仅结合源代码分析了Cassandra的底层机制和工作原理,而且还精心总结了一些关于Cassandra的最佳实践。
本书一共分为13章,首先简单介绍了NoSQL的优势,以及几种具有代表性的NoSQL数据库的功能特性;其次详细讲解了Cassandra的安装和配置、数据模型和排序规则、编程接口等基础知识;接着以迭代的方式演示了一个基于Cassandra的在线交易系统的完整开发过程,很好地将基础理论融入到了实践中;再接着结合源代码分析了Cassandra的集群机制、内部数据存储结构、数据更新机制、数据读取机制、数据压缩机制、启动流程等与Cassandra的底层机制和工作原理相关的内容;最后讲解了Cassandra在分布式环境中的应用、与Hadoop的整合,以及相关的最佳实践。附录中包含了本书示例的源代码以及在Eclipse环境中编辑和修改Cassandra的源代码方法。
目录
- 版权信息
- 前言
- 第1章 认识NoSQL
- 1.1 NoSQL的起源和发展现状
- 1.2 为什么要使用NoSQL
- 1.3 开源NoSQL产品介绍
- 1.3.1 Key/Value的NoSQL数据库
- 1.3.2 面向文档的NoSQL数据库
- 1.3.3 面向列的NoSQL数据库
- 1.3.4 面向图的NoSQL数据库
- 1.4 本章小结
- 第2章 Cassandra快速入门
- 2.1 在Windows环境运行单机版Cassandra
- 2.1.1 配置JRE
- 2.1.2 配置运行Cassandra 0.6.x
- 2.1.3 配置运行Cassandra 0.7.x
- 2.2 在Linux环境运行单机版Cassandra
- 2.2.1 配置JRE
- 2.2.2 配置运行Cassandra 0.6.x
- 2.2.3 配置运行Cassandra 0.7.x
- 2.3 Cassandra的数据模型
- 2.3.1 Column
- 2.3.2 SuperColumn
- 2.3.3 ColumnFamily
- 2.3.4 Keyspace
- 2.4 Cassandra的数据排序规则
- 2.5 配置数据类型
- 2.6 使用命令行工具与Cassandra交互
- 2.6.1 与Cassandra 0.6.x进行交互
- 2.6.2 与Cassandra 0.7.x进行交互
- 2.7 本章小结
- 第3章 理解Cassandra编程接口
- 3.1 多语言服务开发框架Thrift
- 3.2 Cassandra的数据类型
- 3.2.1 Column
- 3.2.2 SuperColumn
- 3.2.3 ColumnOrSuperColumn
- 3.2.4 ColumnParent
- 3.2.5 ColumnPath
- 3.2.6 SliceRange
- 3.2.7 SlicePredicate
- 3.2.8 Deletion
- 3.2.9 Mutation
- 3.2.10 KeyRange
- 3.2.11 KeySlice
- 3.2.12 TokenRange
- 3.2.13 AuthenticationRequest
- 3.2.14 ConsistencyLevel
- 3.2.15 NotFoundException
- 3.2.16 InvalidRequestException
- 3.2.17 UnavailableException
- 3.2.18 TimedOutException
- 3.2.19 AuthenticationException
- 3.2.20 AuthorizationException
- 3.3 Cassandra的编程接口
- 3.3.1 get
- 3.3.2 get_slice
- 3.3.3 multiget_slice
- 3.3.4 get_count
- 3.3.5 get_range_slices
- 3.5.6 insert
- 3.3.7 remove
- 3.3.8 batch_mutate
- 3.3.9 describe_keyspaces
- 3.3.10 describe_keyspace
- 3.3.11 describe_cluster_name
- 3.3.12 describe_version
- 3.3.13 describe_ring
- 3.4 Cassandra 0.7.x版本新增功能
- 3.4.1 二级索引
- 3.4.2 动态修改Schema
- 3.4.3 自动清除过期数据
- 3.5 本章小结
- 第4章 基于Cassandra的在线交易系统
- 4.1 需求分析
- 4.2 数据模型设计
- 4.2.1 Seller
- 4.2.2 Buyer
- 4.2.3 Product
- 4.2.4 ProductCategory
- 4.2.5 Comment
- 4.3 编码实现
- 4.3.1 修改Keyspace设置
- 4.3.2 建立Eclipse项目
- 4.3.3 实体对象实现
- 4.3.4 Cassandra数据操作接口实现
- 4.4 系统功能验证
- 4.4.1 BuyerDao功能验证
- 4.4.2 SellerDao功能验证
- 4.4.3 ProductDao功能验证
- 4.5 迁移到Cassandra 0.7.x
- 4.5.1 建立Eclipse项目
- 4.5.2 修改编译错误代码
- 4.5.3 新增Schema在线定义功能
- 4.5.4 功能验证
- 4.6 本章小结
- 第5章 Cassandra的集群机制
- 5.1 一致性哈希
- 5.1.1 理解一致性哈希
- 5.1.2 一致性哈希在Cassandra中的应用
- 5.2 Gossip:集群节点之间的通信协议
- 5.2.1 FailureDetector
- 5.2.2 Gossiper
- 5.3 集群的数据备份机制
- 5.3.1 EndpointSnitch
- 5.3.2 ReplicationStrategy
- 5.4 集群状态变化的处理机制
- 5.4.1 StorageLoadBalancer
- 5.4.2 StorageService
- 5.4.3 MigrationManager
- 5.5 本章小结
- 第6章 Cassandra的内部数据存储结构
- 6.1 Cassandra中的数据存放规则
- 6.2 Commilog
- 6.3 Memtable
- 6.4 SSTable
- 6.4.1 Filter文件
- 6.4.2 Index文件
- 6.4.3 Data文件
- 6.4.4 Statistics文件
- 6.5 系统表空间
- 6.6 本章小结
- 第7章 Cassandra的数据更新机制
- 7.1 数据更新流程
- 7.2 集群数据更新策略
- 7.2.1 ANY
- 7.2.2 ONE
- 7.2.3 QUORUM
- 7.2.4 LOCAL_QUORUM
- 7.2.5 EACH_QUORUM
- 7.2.6 ALL
- 7.3 二级索引
- 7.3.1 为什么需要二级索引
- 7.3.2 Cassandra二级索引更新过程
- 7.4 本章小结
- 第8章 Cassandra的读取机制
- 8.1 数据读取流程
- 8.1.1 弱读取
- 8.1.2 强读取
- 8.2 集群数据读取策略
- 8.2.1 ONE
- 8.2.2 QUORUM
- 8.2.3 LOCAL_QUORUM
- 8.2.4 EACH_QUORUM
- 8.2.5 ALL
- 8.3 读修复
- 8.4 数据缓存
- 8.4.1 RowCache
- 8.4.2 KeyCache
- 8.5 二级索引
- 8.6 本章小结
- 第9章 Cassandra的数据压缩机制
- 9.1 为什么要进行数据压缩
- 9.2 如何控制数据压缩
- 9.3 数据压缩流程
- 9.4 维护Cassandra中的数据
- 9.4.1 数据清理压缩
- 9.4.2 数据一致性校验压缩
- 9.5 本章小结
- 第10章 Cassandra的启动流程
- 10.1 Cassandra启动脚本
- 10.2 Cassandra启动流程
- 10.2.1 配置log4j
- 10.2.2 读取校验配置文件信息
- 10.2.3 加载所有的数据文件
- 10.2.4 修复数据
- 10.2.5 启动Gossiper服务
- 10.2.6 判断是否需要进行Bootstrap操作
- 10.2.7 监听Thrift端口,提供Thrift服务
- 10.3 本章小结
- 第11章 在分布环境下使用的Cassandra
- 11.1 在Linux环境中搭建与使用Cassandra集群
- 11.1.1 配置JRE
- 11.1.2 部署Cassandra可执行文件
- 11.1.3 修改Cassandra配置文件
- 11.1.4 启动Cassandra
- 11.2 Cassandra运行配置项详解
- 11.3 Cassandra集群的运行和维护
- 11.3.1 查看集群的运行情况
- 11.3.2 添加节点
- 11.3.3 删除节点
- 11.3.4 移动节点
- 11.3.5 数据维护
- 11.4 本章小结
- 第12章 Cassandra与Hadoop的整合
- 12.1 Hadoop快速入门
- 12.1.1 Hadoop简介
- 12.1.2 HDFS
- 12.1.3 Map/Reduce
- 12.1.4 配置单机版Hadoop
- 12.1.5 编写Map/Reduce程序
- 12.2 为什么要整合Cassandra与Hadoop
- 12.3 使用Map/Reduce导入数据到Cassandra中
- 12.4 将Cassandra中的数据作为Map/Reduce输入
- 12.5 本章小结
- 第13章 Cassandra最佳实践
- 13.1 避免Cassandra自身的限制
- 13.1.1 不要盲目使用Super Column
- 13.1.2 硬盘的容量大小限制
- 13.1.3 注意系统大小限制
- 13.2 数据压缩策略
- 13.3 使用高级的客户端
- 13.3.1 Pycassa
- 13.3.2 Hector
- 13.3.3 FluentCassandra
- 13.3.4 Cassandra
- 13.3.5 phpcassa
- 13.4 负载均衡
- 13.4.1 随机选取
- 13.4.2 缓存集群信息
- 13.5 谨慎使用二级索引
- 13.6 通过JMX监测Cassandra
- 13.7 调整JVM启动参数
- 13.8 使用适合的系统配置参数
- 13.9 本章小结
- 附录A 在Eclipse中修改Cassandra源代码
- A.1 配置环境
- A.2 下载Cassandra源码
- A.3 编译Cassandra
- A.4 在Eclipse中修改Cassandra源码
- A.5 运行单元测试
- A.6 打包发布
- 附录B CassSeller代码
- B.1 cassSeller.app.App
- B.2 cassSeller.dao.BuyerDao
- B.3 cassSeller.dao.ProductDao
- B.4 cassSeller.dao.SellerDao
- B.5 cassSeller.dao.impl.BuyerDaoImpl
- B.6 cassSeller.dao.impl.ProductDaoImpl
- B.7 cassSeller.dao.impl.SellerDaoImpl
- B.8 cassSeller.model.Buyer
- B.9 cassSeller.model.Comment
- B.10 cassSeller.model.Product
- B.11 cassSeller.model.Seller
- 附录C CassSeller-0.7代码
- C.1 cassSeller.app.App
- C.2 cassSeller.dao.BuyerDao
- C.3 cassSeller.dao.ProductDao
- C.4 cassSeller.dao.SellerDao
- C.5 cassSeller.dao.impl.BuyerDaoImpl
- C.6 cassSeller.dao.impl.ProductDaoImpl
- C.7 cassSeller.dao.impl.SchemaIniter
- C.8 cassSeller.dao.impl.SellerDaoimpl
- C.9 cassSeller.model.Buyer
- C.10 cassSeller.model.Comment
- C.11 cassSeller.model.Product
- C.12 cassSeller.model.Seller
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。