《Cassandra權威指南》是2011年8月1日人民郵電出版社出版的圖書,作者是Eben Hewitt、王旭。本書適合資料庫開發人員與網站開發者閱讀。
基本介紹
- 書名:Cassandra權威指南
- 作者:Eben Hewitt、王旭
- ISBN:9787115258540
- 頁數:280頁
- 出版社:人民郵電出版社
- 出版時間:2011年8月1日
- 裝幀:平裝
- 開本:16
- 叢書名:圖靈程式設計叢書
- 正文語種:簡體中文
內容簡介,目錄,
內容簡介
本書是一本廣受好評的Cassandra圖書。與傳統的關係型資料庫不同,Cassandra是一種開源的分散式存儲系統。書中介紹了它無中心架構、高可用、無縫擴展等引人注目的特點,講述了如何安裝、配置Cassandra及如何在其上運行實例,還介紹了對它的監控、維護和性能調優手段,同時還涉及了Cassandra相關的集成工具Hadoop及其類似的其他NoSQL資料庫。
目錄
目 錄
譯者序 XIII
序 XV
前言 XVII
第1章 Cassandra概況 1
- 1 關係型資料庫有什麼問題 1
- 2 關係型資料庫簡單回顧 5
- 2.1 RDBMS:出類拔萃與表現平平 6
- 2.2 網際網路的規模 12
- 3 Cassandra的電梯間演講 13
- 3.1 50個字介紹Cassandra 13
- 3.2 分散式與無中心 13
- 3.3 彈性可擴展 14
- 3.4 高可用與容錯 15
- 3.5 可調節的一致性 15
- 3.6 Brewer的CAP理論 18
- 3.7 面向行 21
- 3.8 無schema 22
- 3.9 高性能 22
- 4 Cassandra來自何方 22
- 5 Cassandra的套用場景 23
- 5.1 大規模部署 23
- 5.2 寫密集、統計和分析型工作 24
- 5.3 地區分布 24
- 5.4 變化的套用 24
- 6 誰在使用Cassandra 24
- 7 小結 26
第2章 安裝Cassandra 27
- 1 安裝二進制包 27
- 1.1 解壓縮 27
- 1.2 裡面有什麼 27
- 2 從源碼編譯 28
- 2.1 其他編譯目標 30
- 2.2 使用Maven編譯 30
- 3 運行Cassandra 30
- 3.1 在Windows平台上運行Cassandra 31
- 3.2 在Linux下運行Cassandra 31
- 3.3 啟動伺服器 32
- 4 使用命令行界面的客戶端 33
- 5 基本命令行命令 34
- 5.1 幫助 34
- 5.2 連線伺服器 35
- 5.3 描述環境 35
- 5.4 創建keyspace和列族 36
- 5.5 讀寫數據 37
- 6 小結 38
第3章 Cassandra的數據模型 39
- 1 關係型數據模型 39
- 2 簡介 40
- 3 集群 43
- 4 keyspace 43
- 5 列族 44
- 6 列 46
- 6.1 寬行與窄行 48
- 6.2 列的排序 49
- 7 超級列 50
- 8 Cassandra與RDBMS的設計差別 53
- 8.1 沒有查詢語言 53
- 8.2 沒有引用完整性 53
- 8.3 第二索引 53
- 8.4 排序成為一種設計決策 54
- 8.5 反範式化 54
- 9 設計模式 55
- 9.1 具體化視圖 56
- 9.2 無值列 56
- 9.3 聚合鍵 56
- 10 需要記住的幾件事 57
- 11 小結 57
第4章 套用實例 59
- 1 數據模型設計 59
- 2 酒店套用的關係型資料庫設計 60
- 3 酒店套用的Cassandra設計 61
- 4 酒店套用代碼 62
- 4.1 創建資料庫 63
- 4.2 數據結構 64
- 4.3 進行連線 65
- 4.4 預裝填資料庫 66
- 4.5 搜尋套用 78
- 5 Twissandra 82
- 6 小結 82
第5章 Cassandra的架構 83
- 1 system keyspace 83
- 2 對等結構 84
- 3 gossip與故障檢測 84
- 4 逆熵與讀修復 86
- 5 memtable、SSTable和commit log 87
- 6 提示移交 89
- 7 壓緊 89
- 8 Bloom filter 91
- 9 墓碑 91
- 10 分階段事件驅動架構 92
- 11 管理器與服務 93
- 11.1 Cassandra守護進程 93
- 11.2 存儲服務 93
- 11.3 訊息服務 93
- 11.4 提示移交管理器 94
- 12 小結 94
第6章 配置Cassandra 95
- 1 keyspace 95
- 1.1 創建列族 98
- 1.2 從0.6遷移到0.7 99
- 2 副本 99
- 3 副本放置策略 100
- 3.1 簡單策略 101
- 3.2 舊網路拓撲策略 102
- 3.3 網路拓撲策略 103
- 4 副本因子 103
- 5 分區器 105
- 5.1 隨機分區器 106
- 5.2 有序分區器 106
- 5.3 配頁有序分區器 107
- 5.4 位元組序分區器 107
- 6 Snitch 107
- 6.1 Simple Snitch 107
- 6.2 PropertyFileSnitch 107
- 7 創建集群 108
- 7.1 修改集群名稱 109
- 7.2 給集群增加節點 109
- 7.3 多種子節點 111
- 8 動態加入環 113
- 9 安全 114
- 9.1 使用SimpleAuthenticator 114
- 9.2 編程鑒權 117
- 9.3 使用MD5加密 118
- 9.4 提供你自己的鑒權算法 118
- 10 雜項設定 119
- 11 附加工具 120
- 11.1 查看鍵值 120
- 11.2 導入之前版本的配置 120
- 12 小結 122
第7章 讀寫數據 123
- 1 Cassandra與RDBMS查詢的不同 123
- 1.1 沒有Update查詢 123
- 1.2 記錄級的寫原子性 123
- 1.3 不支持服務端事務 123
- 1.4 沒有重複鍵值 124
- 2 寫操作的基本屬性 124
- 3 一致性級別 124
- 4 讀操作的基本屬性 126
- 5 API 126
- 6 設定與插入數據 128
- 7 使用簡單的get 133
- 8 數據準備 135
- 9 切片謂詞 135
- 9.1 使用get_slice讀取特定列名 136
- 9.2 通過切片區間獲取一組列 137
- 9.3 取出一行中的所有列 138
- 10 get_range_slices 138
- 11 multiget_slice 140
- 12 刪除 142
- 13 批量變更 144
- 13.1 批量刪除 144
- 13.2 區間鬼影 145
- 14 編程定義keyspace和列族 145
- 15 小結 146
第8章 客戶端 147
- 1 基本的客戶端API 148
- 2 Thrift 148
- 2.1 Thrift對Java的支持 151
- 2.2 異常 151
- 2.3 Thrift小結 152
- 3 Avro 152
- 3.1 Avro Ant目標 154
- 3.2 Avro規範 155
- 3.3 Avro小結 156
- 4 Git簡介 156
- 5 連線客戶端節點 157
- 5.1 客戶端列表 157
- 5.2 循環DNS 157
- 5.3 負載均衡器 157
- 6 Cassandra Web控制台 157
- 7 Hector(Java) 161
- 7.1 特性 161
- 7.2 Hector API 162
- 8 HectorSharp(C#) 162
- 9 Chirper 167
- 10 Chiton(Python) 167
- 11 Pelops(Java) 168
- 12 Kundera(Java ORM) 169
- 13 Fauna(Ruby) 169
- 14 小結 170
第9章 監控 171
- 1 日誌 171
- 1.1 跟蹤查看 173
- 1.2 通用技巧 174
- 2 JMX與MBean概述 175
- 2.1 MBean 177
- 2.2 集成JMX 179
- 3 通過JMX與Cassandra互動 180
- 4 Cassandra的MBean 181
- 4.1 org.apache.cassandra.concurrent 185
- 4.2 org.apache.cassandra.db 185
- 4.3 org.apache.cassandra.gms 186
- 4.4 org.apache.cassandra.service 186
- 5 定製Cassandra的MBean 188
- 6 運行時分析工具 190
- 6.1 使用JMX和JHAT進行堆分析 191
- 6.2 發現執行緒問題 194
- 7 健康檢查 195
- 8 小結 196
第10章 維護 197
- 1 獲取環的信息 198
- 1.1 Info 198
- 1.2 Ring 198
- 2 獲取統計信息 199
- 2.1 使用cfstats 199
- 2.2 使用tpstats 200
- 3 基本維護工作 201
- 3.1 修復 201
- 3.2 刷寫 202
- 3.3 清理 203
- 4 快照 203
- 4.1 進行快照 203
- 4.2 清除快照 204
- 5 對集群進行負載均衡 205
- 6 退服節點 208
- 7 更新節點 210
- 7.1 刪除令牌 210
- 7.2 壓緊閾值 210
- 7.3 在一個工作的集群中改變列族 210
- 8 小結 211
第11章 性能調優 213
- 1 數據存儲 213
- 2 回復逾時 215
- 3 commit log 215
- 4 memtable 216
- 5 並發 216
- 6 快取 217
- 7 緩衝區尺寸 218
- 8 使用Python壓力測試 218
- 8.1 生成Python Thrift接口 218
- 8.2 運行Python壓力測試 220
- 9 啟動和JVM設定 222
- 10 小結 224
第12章 集成Hadoop 225
- 1 何為Hadoop 225
- 2 使用MapReduce 226
- 3 運行字數統計例子 227
- 3.1 將數據輸出到Cassandra 229
- 3.2 Hadoop流 229
- 4 MapReduce之上的工具 229
- 4.1 Pig 230
- 4.2 Hive 231
- 5 集群配置 231
- 6 案例 233
- 6.1 Raptr-com: Keith Thornhill 233
- 6.2 Imagini: Dave Gardner 233
- 7 小結 234
附錄 非關係型資料庫大觀 235
辭彙表 261
關於作者 279
關於封面 279