Cassandra實戰

hzbook2008發表於2011-05-27
書名:Cassandra實戰
ISBN:9787111341642
作者:郭鵬 著
定價:59.00元
出版時間:2011年6月1日
出版社:機械工業出版社華章公司

內容簡介:
《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章認識NoSQL/1
1.1NoSQL的起源和發展現狀/2
1.2為什麼要使用NoSQL/2
1.3開源NoSQL產品介紹/3
1.3.1Key/Value的NoSQL資料庫/3
1.3.2面向文件的NoSQL資料庫/4
1.3.3面向列的NoSQL資料庫/5
1.3.4面向圖的NoSQL資料庫/6
1.4本章小結/7
第2章Cassandra快速入門/9
2.1在Windows環境執行單機版Cassandra/10
2.1.1配置JRE/11
2.1.2配置執行Cassandra 0.6.x/11
2.1.3配置執行Cassandra 0.7.x/12
2.2在Linux環境執行單機版Cassandra/14
2.2.1配置JRE/14
2.2.2配置執行Cassandra 0.6.x/15
2.2.3配置執行Cassandra 0.7.x/16
2.3Cassandra的資料模型/18
2.3.1Column/18
2.3.2SuperColumn/18
2.3.3ColumnFamily/19
2.3.4Keyspace/20
2.4Cassandra的資料排序規則/20
2.5配置資料型別/22
2.6使用命令列工具與Cassandra互動/23
2.6.1與Cassandra 0.6.x進行互動/23
2.6.2與Cassandra 0.7.x進行互動/24
2.7本章小結/26
第3章理解Cassandra程式設計介面/27
3.1多語言服務開發框架Thrift/28
3.2Cassandra的資料型別/28
3.2.1Column/28
3.2.2SuperColumn/29
3.2.3ColumnOrSuperColumn/29
3.2.4ColumnParent/29
3.2.5ColumnPath/30
3.2.6SliceRange/30
3.2.7SlicePredicate/31
3.2.8Deletion/31
3.2.9Mutation/31
3.2.10KeyRange/31
3.2.11KeySlice/32
3.2.12TokenRange/32
3.2.13AuthenticationRequest/32
3.2.14ConsistencyLevel/33
3.2.15NotFoundException/33
3.2.16InvalidRequestException/34
3.2.17UnavailableException/34
3.2.18TimedOutException/34
3.2.19AuthenticationException/34
3.2.20AuthorizationException/35
3.3Cassandra的程式設計介面/35
3.3.1get/35
3.3.2get_slice/36
3.3.3multiget_slice/36
3.3.4get_count/37
3.3.5get_range_slices/37
3.5.6insert/38
3.3.7remove/38
3.3.8batch_mutate/39
3.3.9describe_keyspaces/39
3.3.10describe_keyspace/39
3.3.11describe_cluster_name/40
3.3.12describe_version/40
3.3.13describe_ring/40
3.4Cassandra 0.7.x版本新增功能/40
3.4.1二級索引/40
3.4.2動態修改Schema/44
3.4.3自動清除過期資料/46
3.5本章小結/47
第4章基於Cassandra的線上交易系統/49
4.1需求分析/50
4.2資料模型設計/50
4.2.1Seller/51
4.2.2Buyer/51
4.2.3Product/52
4.2.4ProductCategory/53
4.2.5Comment/54
4.3編碼實現/54
4.3.1修改Keyspace設定/55
4.3.2建立Eclipse專案/56
4.3.3實體物件實現/55
4.3.4Cassandra資料操作介面實現/56
4.4系統功能驗證/60
4.4.1BuyerDao功能驗證/60
4.4.2SellerDao功能驗證/61
4.4.3ProductDao功能驗證/62
4.5遷移到Cassandra 0.7.x/65
4.5.1建立Eclipse專案/65
4.5.2修改編譯錯誤程式碼/65
4.5.3新增Schema線上定義功能/69
4.5.4功能驗證/70
4.6本章小結/71
第5章Cassandra的叢集機制/73
5.1一致性雜湊/74
5.1.1理解一致性雜湊/74
5.1.2一致性雜湊在Cassandra中的應用/77
5.2Gossip:叢集節點之間的通訊協議/81
5.2.1FailureDetector/82
5.2.2Gossiper/83
5.3叢集的資料備份機制/88
5.3.1EndpointSnitch/88
5.3.2ReplicationStrategy/91
5.4叢集狀態變化的處理機制/96
5.4.1StorageLoadBalancer/97
5.4.2StorageService/98
5.4.3MigrationManager/99
5.5本章小結/99
第6章Cassandra的內部資料儲存結構/101
6.1Cassandra中的資料存放規則/102
6.2Commilog/102
6.3Memtable/103
6.4SSTable/105
6.4.1Filter檔案/105
6.4.2Index檔案/107
6.4.3Data檔案/109
6.4.4Statistics檔案/113
6.5系統表空間/113
6.6本章小結/114
第7章Cassandra的資料更新機制/115
7.1資料更新流程/116
7.2叢集資料更新策略/116
7.2.1ANY/120
7.2.2ONE/121
7.2.3QUORUM/121
7.2.4LOCAL_QUORUM/121
7.2.5EACH_QUORUM/121
7.2.6ALL/121
7.3二級索引/122
7.3.1為什麼需要二級索引/122
7.3.2Cassandra二級索引更新過程/123
7.4本章小結/124
第8章Cassandra的資料讀取機制/125
8.1資料讀取流程/126
8.1.1弱讀取/126
8.1.2強讀取/128
8.2叢集資料讀取策略/131
8.2.1ONE/132
8.2.2QUORUM/132
8.2.3LOCAL_QUORUM/132
8.2.4EACH_QUORUM/132
8.2.5ALL/133
8.3讀修復/133
8.4資料快取/134
8.4.1RowCache/134
8.4.2KeyCache/134
8.5二級索引/135
8.6本章小結/135
第9章Cassandra的資料壓縮機制/137
9.1為什麼要進行資料壓縮/138
9.2如何控制資料壓縮/138
9.3資料壓縮流程/139
9.4維護Cassandra中的資料/143
9.4.1資料清理壓縮/143
9.4.2資料一致性校驗壓縮/144
9.5本章小結/144
第10章Cassandra的啟動流程/145
10.1Cassandra啟動指令碼/146
10.2Cassandra啟動流程/149
10.2.1配置log4j/150
10.2.2讀取校驗配置檔案資訊/150
10.2.3載入所有的資料檔案/152
10.2.4修復資料/154
10.2.5啟動Gossiper服務/155
10.2.6判斷是否需要進行Bootstrap操作/156
10.2.7監聽Thrift埠,提供Thrift服務/157
10.3本章小結/157
第11章在分散式環境中使用的Cassandra/159
11.1在Linux環境中搭建與使用Cassandra叢集/160
11.1.1配置JRE/160
11.1.2部署Cassandra可執行檔案/161
11.1.3修改Cassandra配置檔案/162
11.1.4啟動Cassandra/163
11.2Cassandra執行配置項詳解/166
11.3Cassandra叢集的執行和維護/175
11.3.1檢視叢集的執行情況/176
11.3.2新增節點/179
11.3.3刪除節點/181
11.3.4移動節點/183
11.3.5資料維護/185
11.4本章小結/187
第12章Cassandra與Hadoop的整合/189
12.1Hadoop快速入門/190
12.1.1Hadoop簡介/190
12.1.2HDFS/192
12.1.3Map/Reduce/192
12.1.4配置單機版Hadoop/194
12.1.5編寫Map/Reduce程式/195
12.2為什麼要整合Cassandra與Hadoop/200
12.3使用Map/Reduce匯入資料到Cassandra中/200
12.4將Cassandra中的資料作為Map/Reduce輸入/205
12.5本章小結/209
第13章Cassandra最佳實踐/211
13.1避免Cassandra自身的限制/212
13.1.1不要盲目使用Super Column/212
13.1.2硬碟的容量大小限制/212
13.1.3注意系統大小限制/212
13.2資料壓縮策略/213
13.3使用高階的客戶端/213
13.3.1Pycassa/213
13.3.2Hector/215
13.3.3FluentCassandra/218
13.3.4Cassandra/220
13.3.5phpcassa/221
13.4負載均衡/222
13.4.1隨機選取/222
13.4.2快取叢集資訊/222
13.5謹慎使用二級索引/223
13.6通過JMX監測Cassandra/223
13.7調整JVM啟動引數/229
13.8使用適合的系統配置引數/231
13.9本章小結/232
附錄A在Eclipse中修改Cassandra原始碼/233
附錄BCassSeller程式碼/243
附錄CCassSeller-0.7程式碼/243

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16502878/viewspace-696448/,如需轉載,請註明出處,否則將追究法律責任。

相關文章