|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《Cassandra实战》
) k5 W" }' |( Fjava电子书推荐理由:本书内容全面,基于Cassandra最新版撰写,系统地讲解了Cassandra的所有功能特性和使用方法;实战性强,不仅包含大量示例代码,而且还设计了一个完整的在线交易系统实例;有一定的深度,不仅结合源代码分析了Cassandra的底层机制和工作原理,而且还精心总结了一些关于Cassandra的最佳实践。5 t6 U' Z: h+ T) ^5 ~" u; i
5 U: S. Z; G1 R9 o# g; [
+ h0 e# R/ j- Z3 Y' [8 G& C' Q
作者:郭鹏
: s4 x0 [6 H' a* j出版社:机械工业出版社7 j% G! q6 P$ F+ u7 O/ O6 }/ U
出版时间:2011年6月
( b' f& Z6 o& w& H* }9 y- P4 d; a$ a2 H( f
$ l/ N+ v! c) `( {0 Z
z) q6 c' _# V" S' X: q% o9 R* W+ t- |( T- S. F2 c: i, ?
$ f: `5 ]5 |/ ?) L
java电子书目录:7 ]* H |2 h% D8 P- H! S! t" `
! x2 k2 C | _+ [$ T) `
, m) p4 k9 b0 O1 G9 w
目录
( W: d& k; ]$ x( B第1章 认识NoSQL
7 n6 {' Q, i+ K 1.1 NoSQL的起源和发展现状
7 U1 r- t. B9 V3 V* ? 1.2 为什么要使用NoSQL
# c* _8 n) G6 B2 Y7 c! w/ \ 1.3 开源NoSQL产品介绍' V0 m+ D: u$ n, b' @: d
1.3.1 KeyValue的NoSQL数据库
9 k; E7 C- g4 W, ]; B, _2 X 1.3.2 面向文档的NoSQL数据库
, f4 C- A2 n; G: P O4 o4 z5 v 1.3.3 面向列的NoSQL数据库3 [! q5 P4 K' V \1 T2 N7 S% P
1.3.4 面向图的NoSQL数据库& ^/ k0 v( {; U5 H
1.4 本章小结
4 S% t; O" v3 T/ F4 T2 o第2章 Cassandra快速入门* g6 q" f; `( A" ~' d
2.1 在Windows环境运行单机版Cassandra
+ H) x) e* E1 e% c; P 2.1.1 配置JRE
- V" ? V& D, y 2.1.2 配置运行Cassandra0.6.x
: J4 G4 Z( P6 m 2.1.3 配置运行Cassandra0.7.x
) N6 B( Y8 s- u2 t' X- j 2.2 在Linux环境运行单机版Cassandra
: ^$ k1 f+ N- J 2.2.1 配置JRE# a& Z( g) q' B* \4 I$ I
2.2.2 配置运行Cassandra0.6.x; S6 [. Q" F. y' g+ r! W
2.2.3 配置运行Cassandra0.7.x7 g/ |, `( U/ D0 ?; S" F5 K
2.3 Cassandra的数据模型
4 \6 T0 A% W0 X' G' j' g/ J 2.3.1 Column. g9 L9 s" e6 |( A
2.3.2 SuperColumn
; g1 w. Q3 d6 u, G: n: c 2.3.3 ColumnFamily
" M, }- x/ m9 `. A: a: n 2.3.4 Keyspace+ Z/ u* \- t& x9 A4 \+ Q
2.4 Cassandra的数据排序规则
- L! q2 _& o6 G% I8 L1 ^/ M1 w0 { 2.5 配置数据类型
; [5 Z9 \9 V% M' l1 t! N 2.6 使用命令行工具与Cassandra交互
1 \5 S8 D9 N4 |3 L @ 2.6.1 与Cassandra0.6.x进行交互9 l1 A% ?/ \7 k8 j6 ]$ T. w8 W- ]
2.6.2 与Cassandra0.7.x进行交互; L! S F+ }# h- ]! f3 r! G
2.7 本章小结
# d( \. F) p9 V4 _' V( L第3章 理解Cassandra编程接口7 u% }5 |* s7 N* {( @
3.1 多语言服务开发框架Thrift' \% [% ?. J, p) a( S
3.2 Cassandra的数据类型
7 J$ l$ n2 E5 f 3.2.1 Column
7 x% p* a7 h' {& P9 _ 3.2.2 SuperColumn
( j4 I7 X) [" S9 C, A- ] 3.2.3 ColumnOrSuperColumn/ C- Q9 `7 D2 M4 S3 b$ w
3.2.4 ColumnParent# ~7 V8 k5 b, ]$ ~! u
3.2.5 ColumnPath
: J* |0 c; C0 M7 [* U' O 3.2.6 SliceRange" [7 `( ?! d* }9 S# S+ ], @
3.2.7 SlicePredicate% M% L. H8 `7 v
3.2.8 Deletion
! S6 a& s* t" d( e9 X, L( ^ 3.2.9 Mutation
1 O5 f: E: d* i9 g+ a( a% {3 _+ q 3.2.10 KeyRange! J' `7 D% ~. Z# u+ K, m
3.2.11 KeySlice( v/ ^2 h# a0 y- }$ K
3.2.12 TokenRange
) H" V! H, J2 x2 ` 3.2.13 AuthenticationRequest6 N0 Q* F7 K# W9 W; J
3.2.14 ConsistencyLevel. [" v' A2 @# R& F( o
3.2.15 NotFoundException+ c+ L. b% y# M
3.2.16 InvalidRequestException3 T0 l. z; ~& G* U6 ^
3.2.17 UnavailableException. o) G2 r* L& R& [' `3 r
3.2.18 TimedOutException
# E& ~4 u1 j# K5 @ 3.2.19 AuthenticationException
2 K% @5 C1 |4 Y* y$ s 3.2.20 AuthorizationException
. f0 b4 {& T5 H" T: ^5 k# S 3.3 Cassandra的编程接口
9 {5 Q( Q8 A! O 3.3.1 get* \1 W' F& i8 U- ^
3.3.2 get_slice6 K, L- ]( }0 b- x8 T8 g
3.3.3 multiget_slice
- q8 \0 D M1 i# c& K0 Y) Q5 x2 f 3.3.4 get_count& S. o7 b9 X) s6 H% o9 Q! o8 y1 d( u
3.3.5 get_range_slices6 W8 _2 i0 l% y0 p4 q0 k5 _
3.5.6 insert0 V+ P! p4 k& z
3.3.7 remove T4 x1 o$ [6 t2 H
3.3.8 batch_mutate
4 V4 m/ {+ ]* Z' ~+ Z1 J 3.3.9 describe_keyspaces4 Y( {# ^! g0 l
3.3.10 describe_keyspace: T+ A! p9 b( ~1 ~- ~
3.3.11 describe_cluster_name2 F3 }4 ^6 c) g) z, |5 n8 [3 T
3.3.12 describe_version' R8 M( _+ H3 Z! G0 I+ l9 V1 j
3.3.13 describe_ring
( ?& E0 }4 k# j7 T* X* @ e" O 3.4 Cassandra0.7.x版本新增功能
: {: ^5 C, }0 @ 3.4.1 二级索引" l$ f' Q0 _7 T& V
3.4.2 动态修改Schema
5 X6 j, o3 ]- \, k 3.4.3 自动清除过期数据
+ m: x: L; I6 d3 q4 } 3.5 本章小结, j; v9 T5 h7 N' ~" f
第4章 基于Cassandra的在线交易系统, J. b& |+ I. ]: V/ N% D+ r1 i2 j6 z, R: {
4.1 需求分析+ @$ j: t( y7 H) g0 z
4.2 数据模型设计- O! _0 r2 u5 n4 {
4.2.1 Seller
8 F9 H, O, P3 U3 V; a 4.2.2 Buyer
( y2 T: P7 r( h& K+ V 4.2.3 Product
, N6 k, X# r6 G& Z! y# R 4.2.4 ProductCategory3 ^1 T( }! `6 p. _; Z
4.2.5 Comment$ g$ a( G. C$ k
4.3 编码实现, u0 \6 c- q5 C" m0 B
4.3.1 修改Keyspace设置
9 B: n1 P- [ T6 u$ I& M 4.3.2 建立Eclipse项目
: U( q! i J4 t2 f9 t 4.3.3 实体对象实现0 H. [9 q) V- r3 e) U0 k
4.3.4 Cassandra数据操作接口实现
5 D E) j! B' s4 z 4.4 系统功能验证% n; N* _ ]& O
4.4.1 BuyerDao功能验证4 e* }* f, Y% {4 F/ T3 ]1 w
4.4.2 SellerDao功能验证+ g! g: A4 S: [
4.4.3 ProductDao功能验证
2 q3 g2 e% N6 @- `3 M/ _6 d5 X. q7 `, n 4.5 迁移到Cassandra0.7.x
- G* N! i1 Y2 Q6 D. l, W 4.5.1 建立Eclipse项目6 W5 `0 R8 `' ]' E9 l1 I+ b
4.5.2 修改编译错误代码# |3 q0 T U" o3 f3 N. B
4.5.3 新增Schema在线定义功能/ s) O2 M$ j2 u0 ]
4.5.4 功能验证
$ o+ u; B; Z) q# L$ K 4.6 本章小结2 G s0 w+ s9 ^* t0 m. X7 n5 T
第5章 Cassandra的集群机制) p7 r' b5 D X$ k* h+ f* c
5.1 一致性哈希
2 O, w6 D7 D4 s 5.1.1 理解一致性哈希1 M' T& z- [ b7 z: H
5.1.2 一致性哈希在Cassandra中的应用
; h6 k& V! s+ L- |3 Q* i6 T 5.2 Gossip:集群节点之间的通信协议
0 h, k; ?5 ^/ J% ?$ Z: p& n, N% t 5.2.1 FailureDetector4 ?8 U+ @1 m, Q) A
5.2.2 Gossiper1 U" p/ y3 @6 e0 s
5.3 集群的数据备份机制
; _* P0 x$ Z+ G/ [* S" a# { 5.3.1 EndpointSnitch* x- U# d+ X9 U* F! z7 V% _
5.3.2 ReplicationStrategy
# Z u2 \" c2 l; ~" K6 ] 5.4 集群状态变化的处理机制
( n) X* ^( C" [1 N, s C. v 5.4.1 StorageLoadBalancer
& {, k8 t# t \8 s1 [0 h+ E! H1 M2 ] 5.4.2 StorageService( J+ W( W; w5 u8 y& ]; y0 [# @
5.4.3 MigrationManager
! A+ F" }6 {: U& ` z% k/ U- v3 K: Z 5.5 本章小结) j1 g' j5 l0 h" z% |. C& u9 }
第6章 Cassandra的内部数据存储结构
* W8 W+ C, B& Z# U1 H1 P. `' f 6.1 Cassandra中的数据存放规则* b. y y* b! }' g% P! E7 k
6.2 Commilog1 \& \! } ?+ h7 T
6.3 Memtable1 p# B, ]1 M4 X/ W8 ~6 d" X. Y% }
6.4 SSTable
q" [5 F. k- h6 X* T 6.4.1 Filter文件3 c, x4 ~( G) t: Q! B
6.4.2 Index文件! Q1 Y, s- t I
6.4.3 Data文件* X7 o4 S# C- ^6 {: N2 F2 n
6.4.4 Statistics文件
H0 M" `% |, h" G T0 N2 b 6.5 系统表空间
2 N$ C9 U5 i3 ^ Q* C, d 6.6 本章小结
; ^, K9 ?* E* e. ~4 j第7章 Cassandra的数据更新机制
5 n, g( q" s3 g- ~, M! s. o 7.1 数据更新流程
' ]3 o0 L: J8 e8 n% k# | 7.2 集群数据更新策略
/ }) N. G5 L5 T% b. q# } 7.2.1 ANY6 m" u3 _9 g T0 q! M; k# R+ B
7.2.2 ONE
& H2 ~3 z* [1 I7 u, ]' A9 k: q/ V+ ^ 7.2.3 QUORUM
4 v; b( W$ V9 |: M 7.2.4 LOCAL_QUORUM
8 |& U/ q* g4 r 7.2.5 EACH_QUORUM, v+ Q- E7 H4 H& Q
7.2.6 ALL! p4 R& x, q7 |* p- _
7.3 二级索引
' X+ t8 [/ R& m: l2 r; s: ^% ], G* `' e 7.3.1 为什么需要二级索引
0 p, B6 c: t: ]6 B+ \ 7.3.2 Cassandra二级索引更新过程7 _. S- s6 e" e. W1 Q# ]# I
7.4 本章小结9 i0 j7 w: E ~
第8章 Cassandra的数据读取机制
4 e! c4 {; g8 J. I3 Q 8.1 数据读取流程, b1 d7 X$ A' B
8.1.1 弱读取7 H- B% b8 b7 M) |( v! J. x. Q
8.1.2 强读取
7 L; B7 }6 Q2 R9 B8 a! v5 a8 n5 w 8.2 集群数据读取策略# Y% \* c3 c5 Z# x: W4 M& _9 D
8.2.1 ONE) @- J N0 \8 [2 C; q' N; ^
8.2.2 QUORUM7 |& D0 j5 Z- e3 R. m
8.2.3 LOCAL_QUORUM& j( ^% j& z; K' W
8.2.4 EACH_QUORUM9 j6 H4 j' n# [0 K( D: ?
8.2.5 ALL
) l& c4 t+ o- @. N6 J; S' b0 k* l2 ~! j 8.3 读修复) S& S& H7 [! Q) D4 {4 m0 p; n b, G
8.4 数据缓存
( Y* Z1 r2 L4 q; b4 ]- P 8.4.1 RowCache+ B7 r Z8 R* l. J- [+ k; O" L
8.4.2 KeyCache
9 ~& @# N# j. J 8.5 二级索引
( i0 ^/ S( K# C: j 8.6 本章小结% s7 F$ {3 A6 I6 [' a$ E
第9章 Cassandra的数据压缩机制/ B/ r8 N; [! ~& v! F+ G& n$ ^
9.1 为什么要进行数据压缩
2 u |% \" U) p2 }- [! G( N 9.2 如何控制数据压缩' x3 \9 L% w4 h `
9.3 数据压缩流程0 X9 \: g# h# k2 D# Z/ x
9.4 维护Cassandra中的数据
9 I) P2 w5 d/ y 9.4.1 数据清理压缩
) t& j- B6 d% U: Q( J1 {6 t 9.4.2 数据一致性校验压缩5 s6 Z8 i! S( X
9.5 本章小结* u2 S2 R$ u2 ?" j+ ` p
第10章 Cassandra的启动流程
4 E7 u: k$ S; l7 [* Z, k; g: p/ r 10.1 Cassandra启动脚本. G6 f0 u7 r1 p# K' h8 [/ `
10.2 Cassandra启动流程
" U1 A1 d2 i5 Y3 H+ `) u* z. k C i 10.2.1 配置log4j
0 U6 b+ p0 {, e 10.2.2 读取校验配置文件信息
3 S/ a X, ?& C5 ^) a 10.2.3 加载所有的数据文件
2 S5 U# L( y8 |' p' i1 ^) T 10.2.4 修复数据8 K/ f$ y3 r$ X; z
10.2.5 启动Gossiper服务7 H. W2 F4 B [) n% T
10.2.6 判断是否需要进行Bootstrap操作
: T7 a' p% i. ]' I$ I7 F I 10.2.7 监听Thrift端口,提供Thrift服务$ O9 y7 } W% k: S
10.3 本章小结! j& \& I; j' u
第11章 在分布式环境中使用的Cassandra! s" N; D$ S. [. u
11.1 在Linux环境中搭建与使用Cassandra集群9 C& E( I2 Q$ z9 I
11.1.1 配置JRE
$ Y8 [& Y m' d3 i+ l7 K" E7 [ 11.1.2 部署Cassandra可执行文件+ `4 y( B/ M8 N) \; s! |
11.1.3 修改Cassandra配置文件
/ F9 W% N- g; Z 11.1.4 启动Cassandra+ _0 a& o, R' W2 t9 m3 H0 V& D
11.2 Cassandra运行配置项详解
* s: A; R7 ?, `: S3 u% k3 d+ X2 Q 11.3 Cassandra集群的运行和维护5 x7 h4 C* u, g w1 R$ [
11.3.1 查看集群的运行情况
1 a2 z( W( p: _! T: z 11.3.2 添加节点- C! S! q' G, e0 K8 M8 T4 X6 T
11.3.3 删除节点
5 C# @1 w+ |4 q+ c0 U 11.3.4 移动节点2 g2 T, S6 `, c3 w/ Y3 R9 }& {: G9 O
11.3.5 数据维护5 a( M- }9 x" g/ I( c. @$ S
11.4 本章小结
' @* V& w) ^! @5 r9 I4 T8 a8 f! K; m% @第12章 Cassandra与Hadoop的整合
7 m3 [ C- Y' u9 ^# D3 d6 w 12.1 Hadoop快速入门
5 A8 M- ^. y; @% R7 M 12.1.1 Hadoop简介8 a i! M5 l% h# @, C1 Q! n$ [
12.1.2 HDFS4 ^2 H4 j+ H& j* [) {
12.1.3 MapReduce
; |4 R. D4 u/ y% d# u 12.1.4 配置单机版Hadoop e( s! |5 t9 K5 |
12.1.5 编写MapReduce程序
! v8 Q# y: D$ }& m 12.2 为什么要整合Cassandra与Hadoop ^, x: E; m5 s/ ~; o7 @3 b
12.3 使用MapReduce导入数据到Cassandra中; v( d, v( W, A# t7 [+ {8 V! G
12.4 将Cassandra中的数据作为MapReduce输入
) T+ c9 I- _, _5 V, O' @+ B 12.5 本章小结1 [: y4 r5 {' E
第13章 Cassandra最佳实践/ {; V0 n( F% a: t2 f
13.1 避免Cassandra自身的限制) \( _; ], J* z$ D5 O
13.1.1 不要盲目使用SuperColumn
; Y# E% P3 G: g# o* }0 H% } 13.1.2 硬盘的容量大小限制
, v; x, T$ S3 d# ?7 O6 d% q 13.1.3 注意系统大小限制/ N5 E2 M4 ]4 `
13.2 数据压缩策略
8 B* H% C; [) U, ~ 13.3 使用高级的客户端& n* v# J, K9 w1 |) H
13.3.1 Pycassa
3 G, o4 g; ^$ L( ^) Q( n 13.3.2 Hector
3 g0 A& X' G. I3 | 13.3.3 FluentCassandra
4 o& V, H* B( x* F 13.3.4 Cassandra
$ d) z9 F: ~, q0 r4 ~ 13.3.5 phpcassa
; f4 `5 f& U. x3 | 13.4 负载均衡7 i8 w0 s" D+ e4 B: {+ O n6 M
13.4.1 随机选取
" A6 s7 C& l# e r) x' X7 m 13.4.2 缓存集群信息0 ^; N! p" i3 n% G
13.5 谨慎使用二级索引
5 ^# S6 i" L J/ T 13.6 通过JMX监测Cassandra
& G' x& q1 o: e/ N& f# v \ 13.7 调整JVM启动参数1 H8 Q# ~: C# _5 i
13.8 使用适合的系统配置参数& c- c& r0 t3 O. c! c
13.9 本章小结
: h, |3 \' ^7 J0 e7 J H& |" u& l# }- p' _ K- u
, u: w& |0 Z3 H8 y3 ]$ d百度网盘下载地址链接(百度云):java自学网(javazx.com) Cassandra实战 PDF 高清 电子书 百度云.zip【密码回帖可见】
' E. P7 L$ y. f1 P1 b* f
- I' W7 R, I! U- Z+ M$ n6 ~* i8 b- E; X- f3 j4 Y
|
|