Cassandra实战

Cassandra实战

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
6.826 评价豆瓣读书
免费试读

作品简介

《Cassandra实战》是国内首本Cassandra专著,由Cassandra领域的先驱者和实践者亲自执笔,多位数据库专家联袂推荐,权威性毋庸置疑。

本书内容全面,基于Cassandra最新版撰写,系统地讲解了Cassandra的所有功能特性和使用方法;实战性强,不仅包含大量示例代码,而且还设计了一个完整的在线交易系统实例;有一定的深度,不仅结合源代码分析了Cassandra的底层机制和工作原理,而且还精心总结了一些关于Cassandra的最佳实践。

本书一共分为13章,首先简单介绍了NoSQL的优势,以及几种具有代表性的NoSQL数据库的功能特性;其次详细讲解了Cassandra的安装和配置、数据模型和排序规则、编程接口等基础知识;接着以迭代的方式演示了一个基于Cassandra的在线交易系统的完整开发过程,很好地将基础理论融入到了实践中;再接着结合源代码分析了Cassandra的集群机制、内部数据存储结构、数据更新机制、数据读取机制、数据压缩机制、启动流程等与Cassandra的底层机制和工作原理相关的内容;最后讲解了Cassandra在分布式环境中的应用、与Hadoop的整合,以及相关的最佳实践。附录中包含了本书示例的源代码以及在Eclipse环境中编辑和修改Cassandra的源代码方法。

本书适合所有对Cassandra感兴趣的读者阅读。通过本书,不仅能全面掌握Cassandra的基础知识和使用方法,还能深入理解Cassandra的底层机制和工作原理,以及它在复杂现实环境中的应用。

郭鹏,国内Cassandra领域的先驱者和实践者。资深软件开发工程师,擅长分布式应用程序的开发和使用,时间经验极其丰富。一直致力于Cassandra、Hadoop、Hive、MongoDB等分布式应用的底层实现原理的研究和探索,对分布式数据库和数据仓库也有深刻而独到的理解。曾任阿里巴巴数据仓库开发工程师,参与设计和开发了多个基于Cassandra和Hadoop的大型应用。现供职于盛大在线,参与Hadoop计算存储平台的搭建与实施。活跃于开源技术社区,是博客园的推荐博客,也是CSDN的博客专家,热衷于与网友分享自己的心得和体会,深受社区欢迎。博客地址:http://gpcuster.cnblogs.com/;新浪微博:@逖靖寒。

作品目录

  1. 前言
  2. 为什么写本书
  3. 本书面向的读者
  4. 联系作者
  5. 致谢
  6. 第1章 认识NoSQL
  7. 1.1 NoSQL的起源和发展现状
  8. 1.2 为什么要使用NoSQL
  9. 1.3 开源NoSQL产品介绍
  10. 1.3.1 Key/Value的NoSQL数据库
  11. 1.3.2 面向文档的NoSQL数据库
  12. 1.3.3 面向列的NoSQL数据库
  13. 1.3.4 面向图的NoSQL数据库
  14. 1.4 本章小结
  15. 第2章 Cassandra快速入门
  16. 2.1 在Windows环境运行单机版Cassandra
  17. 2.1.1 配置JRE
  18. 2.1.2 配置运行Cassandra 0.6.x
  19. 2.1.3 配置运行Cassandra 0.7.x
  20. 2.2 在Linux环境运行单机版Cassandra
  21. 2.2.1 配置JRE
  22. 2.2.2 配置运行Cassandra 0.6.x
  23. 2.2.3 配置运行Cassandra 0.7.x
  24. 2.3 Cassandra的数据模型
  25. 2.3.1 Column
  26. 2.3.2 SuperColumn
  27. 2.3.3 ColumnFamily
  28. 2.3.4 Keyspace
  29. 2.4 Cassandra的数据排序规则
  30. 2.5 配置数据类型
  31. 2.6 使用命令行工具与Cassandra交互
  32. 2.6.1 与Cassandra 0.6.x进行交互
  33. 2.6.2 与Cassandra 0.7.x进行交互
  34. 2.7 本章小结
  35. 第3章 理解Cassandra编程接口
  36. 3.1 多语言服务开发框架Thrift
  37. 3.2 Cassandra的数据类型
  38. 3.2.1 Column
  39. 3.2.2 SuperColumn
  40. 3.2.3 ColumnOrSuperColumn
  41. 3.2.4 ColumnParent
  42. 3.2.5 ColumnPath
  43. 3.2.6 SliceRange
  44. 3.2.7 SlicePredicate
  45. 3.2.8 Deletion
  46. 3.2.9 Mutation
  47. 3.2.10 KeyRange
  48. 3.2.11 KeySlice
  49. 3.2.12 TokenRange
  50. 3.2.13 AuthenticationRequest
  51. 3.2.14 ConsistencyLevel
  52. 3.2.15 NotFoundException
  53. 3.2.16 InvalidRequestException
  54. 3.2.17 UnavailableException
  55. 3.2.18 TimedOutException
  56. 3.2.19 AuthenticationException
  57. 3.2.20 AuthorizationException
  58. 3.3 Cassandra的编程接口
  59. 3.3.1 get
  60. 3.3.2 get_slice
  61. 3.3.3 multiget_slice
  62. 3.3.4 get_count
  63. 3.3.5 get_range_slices
  64. 3.5.6 insert
  65. 3.3.7 remove
  66. 3.3.8 batch_mutate
  67. 3.3.9 describe_keyspaces
  68. 3.3.10 describe_keyspace
  69. 3.3.11 describe_cluster_name
  70. 3.3.12 describe_version
  71. 3.3.13 describe_ring
  72. 3.4 Cassandra 0.7.x版本新增功能
  73. 3.4.1 二级索引
  74. 3.4.2 动态修改Schema
  75. 3.4.3 自动清除过期数据
  76. 3.5 本章小结
  77. 第4章 基于Cassandra的在线交易系统
  78. 4.1 需求分析
  79. 4.2 数据模型设计
  80. 4.2.1 Seller
  81. 4.2.2 Buyer
  82. 4.2.3 Product
  83. 4.2.4 ProductCategory
  84. 4.2.5 Comment
  85. 4.3 编码实现
  86. 4.3.1 修改Keyspace设置
  87. 4.3.2 建立Eclipse项目
  88. 4.3.3 实体对象实现
  89. 4.3.4 Cassandra数据操作接口实现
  90. 4.4 系统功能验证
  91. 4.4.1 BuyerDao功能验证
  92. 4.4.2 SellerDao功能验证
  93. 4.4.3 ProductDao功能验证
  94. 4.5 迁移到Cassandra 0.7.x
  95. 4.5.1 建立Eclipse项目
  96. 4.5.2 修改编译错误代码
  97. 4.5.3 新增Schema在线定义功能
  98. 4.5.4 功能验证
  99. 4.6 本章小结
  100. 第5章 Cassandra的集群机制
  101. 5.1 一致性哈希
  102. 5.1.1 理解一致性哈希
  103. 5.1.2 一致性哈希在Cassandra中的应用
  104. 5.2 Gossip:集群节点之间的通信协议
  105. 5.2.1 FailureDetector
  106. 5.2.2 Gossiper
  107. 5.3 集群的数据备份机制
  108. 5.3.1 EndpointSnitch
  109. 5.3.2 ReplicationStrategy
  110. 5.4 集群状态变化的处理机制
  111. 5.4.1 StorageLoadBalancer
  112. 5.4.2 StorageService
  113. 5.4.3 MigrationManager
  114. 5.5 本章小结
  115. 第6章 Cassandra的内部数据存储结构
  116. 6.1 Cassandra中的数据存放规则
  117. 6.2 Commilog
  118. 6.3 Memtable
  119. 6.4 SSTable
  120. 6.4.1 Filter文件
  121. 6.4.2 Index文件
  122. 6.4.3 Data文件
  123. 6.4.4 Statistics文件
  124. 6.5 系统表空间
  125. 6.6 本章小结
  126. 第7章 Cassandra的数据更新机制
  127. 7.1 数据更新流程
  128. 7.2 集群数据更新策略
  129. 7.2.1 ANY
  130. 7.2.2 ONE
  131. 7.2.3 QUORUM
  132. 7.2.4 LOCAL_QUORUM
  133. 7.2.5 EACH_QUORUM
  134. 7.2.6 ALL
  135. 7.3 二级索引
  136. 7.3.1 为什么需要二级索引
  137. 7.3.2 Cassandra二级索引更新过程
  138. 7.4 本章小结
  139. 第8章 Cassandra的读取机制
  140. 8.1 数据读取流程
  141. 8.1.1 弱读取
  142. 8.1.2 强读取
  143. 8.2 集群数据读取策略
  144. 8.2.1 ONE
  145. 8.2.2 QUORUM
  146. 8.2.3 LOCAL_QUORUM
  147. 8.2.4 EACH_QUORUM
  148. 8.2.5 ALL
  149. 8.3 读修复
  150. 8.4 数据缓存
  151. 8.4.1 RowCache
  152. 8.4.2 KeyCache
  153. 8.5 二级索引
  154. 8.6 本章小结
  155. 第9章 Cassandra的数据压缩机制
  156. 9.1 为什么要进行数据压缩
  157. 9.2 如何控制数据压缩
  158. 9.3 数据压缩流程
  159. 9.4 维护Cassandra中的数据
  160. 9.4.1 数据清理压缩
  161. 9.4.2 数据一致性校验压缩
  162. 9.5 本章小结
  163. 第10章 Cassandra的启动流程
  164. 10.1 Cassandra启动脚本
  165. 10.2 Cassandra启动流程
  166. 10.2.1 配置log4j
  167. 10.2.2 读取校验配置文件信息
  168. 10.2.3 加载所有的数据文件
  169. 10.2.4 修复数据
  170. 10.2.5 启动Gossiper服务
  171. 10.2.6 判断是否需要进行Bootstrap操作
  172. 10.2.7 监听Thrift端口,提供Thrift服务
  173. 10.3 本章小结
  174. 第11章 在分布环境下使用的Cassandra
  175. 11.1 在Linux环境中搭建与使用Cassandra集群
  176. 11.1.1 配置JRE
  177. 11.1.2 部署Cassandra可执行文件
  178. 11.1.3 修改Cassandra配置文件
  179. 11.1.4 启动Cassandra
  180. 11.2 Cassandra运行配置项详解
  181. 11.3 Cassandra集群的运行和维护
  182. 11.3.1 查看集群的运行情况
  183. 11.3.2 添加节点
  184. 11.3.3 删除节点
  185. 11.3.4 移动节点
  186. 11.3.5 数据维护
  187. 11.4 本章小结
  188. 第12章 Cassandra与Hadoop的整合
  189. 12.1 Hadoop快速入门
  190. 12.1.1 Hadoop简介
  191. 12.1.2 HDFS
  192. 12.1.3 Map/Reduce
  193. 12.1.4 配置单机版Hadoop
  194. 12.1.5 编写Map/Reduce程序
  195. 12.2 为什么要整合Cassandra与Hadoop
  196. 12.3 使用Map/Reduce导入数据到Cassandra中
  197. 12.4 将Cassandra中的数据作为Map/Reduce输入
  198. 12.5 本章小结
  199. 第13章 Cassandra最佳实践
  200. 13.1 避免Cassandra自身的限制
  201. 13.1.1 不要盲目使用Super Column
  202. 13.1.2 硬盘的容量大小限制
  203. 13.1.3 注意系统大小限制
  204. 13.2 数据压缩策略
  205. 13.3 使用高级的客户端
  206. 13.3.1 Pycassa
  207. 13.3.2 Hector
  208. 13.3.3 FluentCassandra
  209. 13.3.4 Cassandra
  210. 13.3.5 phpcassa
  211. 13.4 负载均衡
  212. 13.4.1 随机选取
  213. 13.4.2 缓存集群信息
  214. 13.5 谨慎使用二级索引
  215. 13.6 通过JMX监测Cassandra
  216. 13.7 调整JVM启动参数
  217. 13.8 使用适合的系统配置参数
  218. 13.9 本章小结
  219. 附录A 在Eclipse中修改Cassandra源代码
  220. A.1 配置环境
  221. A.2 下载Cassandra源码
  222. A.3 编译Cassandra
  223. A.4 在Eclipse中修改Cassandra源码
  224. A.5 运行单元测试
  225. A.6 打包发布
  226. 附录B CassSeller代码
  227. B.1 cassSeller.app.App
  228. B.2 cassSeller.dao.BuyerDao
  229. B.3 cassSeller.dao.ProductDao
  230. B.4 cassSeller.dao.SellerDao
  231. B.5 cassSeller.dao.impl.BuyerDaoImpl
  232. B.6 cassSeller.dao.impl.ProductDaoImpl
  233. B.7 cassSeller.dao.impl.SellerDaoImpl
  234. B.8 cassSeller.model.Buyer
  235. B.9 cassSeller.model.Comment
  236. B.10 cassSeller.model.Product
  237. B.11 cassSeller.model.Seller
  238. 附录C CassSeller-0.7代码
  239. C.1 cassSeller.app.App
  240. C.2 cassSeller.dao.BuyerDao
  241. C.3 cassSeller.dao.ProductDao
  242. C.4 cassSeller.dao.SellerDao
  243. C.5 cassSeller.dao.impl.BuyerDaoImpl
  244. C.6 cassSeller.dao.impl.ProductDaoImpl
  245. C.7 cassSeller.dao.impl.SchemaIniter
  246. C.8 cassSeller.dao.impl.SellerDaoimpl
  247. C.9 cassSeller.model.Buyer
  248. C.10 cassSeller.model.Comment
  249. C.11 cassSeller.model.Product
  250. C.12 cassSeller.model.Seller
载入中