Cassandra權威指南

Cassandra權威指南

1.3.7面向行21 10.3.1修復201 12.4.1Pig230

圖書信息

作者:Eben Hewitt (作者), 王旭 (譯者)
出版社: 人民郵電出版社; 第1版 (2011年8月1日)
叢書名: 圖靈程式設計叢書
平裝: 280頁
正文語種: 簡體中文
開本: 16
ISBN: 9787115258540
條形碼: 9787115258540
產品尺寸及重量: 23.2 x 17.6 x 1.6 cm ; 499 g

內容簡介

本書是一本廣受好評的Cassandra圖書。與傳統的關係型數據庫不同,Cassandra是一種開源的分散式存儲系統。書中介紹了它無中心架構、高可用、無縫擴展等引人注目的特點,講述了如何安裝、配置Cassandra及如何在其上運行實例,還介紹了對它的監控、維護和性能調優手段,同時還涉及了Cassandra相關的集成工具Hadoop及其類似的其他NoSQL資料庫。
本書適合資料庫開發人員與網站開發者閱讀。

目錄

目 錄
譯者序 XIII
序 XV
前言 XVII
第1章 Cassandra概況 1
1.1 關係型資料庫有什麼問題 1
1.2 關係型資料庫簡單回顧 5
1.2.1 RDBMS:出類拔萃與表現平平 6
1.2.2 網際網路的規模 12
1.3 Cassandra的電梯間演講 13
1.3.1 50個字介紹Cassandra 13
1.3.2 分散式與無中心 13
1.3.3 彈性可擴展 14
1.3.4 高可用與容錯 15
1.3.5 可調節的一致性 15
1.3.6 Brewer的CAP理論 18
1.3.7 面向行 21
1.3.8 無schema 22
1.3.9 高性能 22
1.4 Cassandra來自何方 22
1.5 Cassandra的套用場景 23
1.5.1 大規模部署 23
1.5.2 寫密集、統計和分析型工作 24
1.5.3 地區分布 24
1.5.4 變化的套用 24
1.6 誰在使用Cassandra 24
1.7 小結 26
第2章 安裝Cassandra 27
2.1 安裝二進制包 27
2.1.1 解壓縮 27
2.1.2 裡面有什麼 27
2.2 從源碼編譯 28
2.2.1 其他編譯目標 30
2.2.2 使用Maven編譯 30
2.3 運行Cassandra 30
2.3.1 在Windows平台上運行Cassandra 31
2.3.2 在Linux下運行Cassandra 31
2.3.3 啟動伺服器 32
2.4 使用命令行界面的客戶端 33
2.5 基本命令行命令 34
2.5.1 幫助 34
2.5.2 連線伺服器 35
2.5.3 描述環境 35
2.5.4 創建keyspace和列族 36
2.5.5 讀寫數據 37
2.6 小結 38
第3章 Cassandra的數據模型 39
3.1 關係型數據模型 39
3.2 簡介 40
3.3 集群 43
3.4 keyspace 43
3.5 列族 44
3.6 列 46
3.6.1 寬行與窄行 48
3.6.2 列的排序 49
3.7 超級列 50
3.8 Cassandra與RDBMS的設計差別 53
3.8.1 沒有查詢語言 53
3.8.2 沒有引用完整性 53
3.8.3 第二索引 53
3.8.4 排序成為一種設計決策 54
3.8.5 反範式化 54
3.9 設計模式 55
3.9.1 具體化視圖 56
3.9.2 無值列 56
3.9.3 聚合鍵 56
3.10 需要記住的幾件事 57
3.11 小結 57
第4章 套用實例 59
4.1 數據模型設計 59
4.2 酒店套用的關係型資料庫設計 60
4.3 酒店套用的Cassandra設計 61
4.4 酒店套用代碼 62
4.4.1 創建資料庫 63
4.4.2 數據結構 64
4.4.3 進行連線 65
4.4.4 預裝填資料庫 66
4.4.5 搜尋套用 78
4.5 Twissandra 82
4.6 小結 82
第5章 Cassandra的架構 83
5.1 system keyspace 83
5.2 對等結構 84
5.3 gossip與故障檢測 84
5.4 逆熵與讀修復 86
5.5 memtable、SSTable和commit log 87
5.6 提示移交 89
5.7 壓緊 89
5.8 Bloom filter 91
5.9 墓碑 91
5.10 分階段事件驅動架構 92
5.11 管理器與服務 93
5.11.1 Cassandra守護進程 93
5.11.2 存儲服務 93
5.11.3 訊息服務 93
5.11.4 提示移交管理器 94
5.12 小結 94
第6章 配置Cassandra 95
6.1 keyspace 95
6.1.1 創建列族 98
6.1.2 從0.6遷移到0.7 99
6.2 副本 99
6.3 副本放置策略 100
6.3.1 簡單策略 101
6.3.2 舊網絡拓撲策略 102
6.3.3 網路拓撲策略 103
6.4 副本因子 103
6.5 分區器 105
6.5.1 隨機分區器 106
6.5.2 有序分區器 106
6.5.3 配頁有序分區器 107
6.5.4 位元組序分區器 107
6.6 Snitch 107
6.6.1 Simple Snitch 107
6.6.2 PropertyFileSnitch 107
6.7 創建集群 108
6.7.1 修改集群名稱 109
6.7.2 給集群增加節點 109
6.7.3 多種子節點 111
6.8 動態加入環 113
6.9 安全 114
6.9.1 使用SimpleAuthenticator 114
6.9.2 編程鑒權 117
6.9.3 使用MD5加密 118
6.9.4 提供你自己的鑒權算法 118
6.10 雜項設定 119
6.11 附加工具 120
6.11.1 查看鍵值 120
6.11.2 導入之前版本的配置 120
6.12 小結 122
第7章 讀寫數據 123
7.1 Cassandra與RDBMS查詢的不同 123
7.1.1 沒有Update查詢 123
7.1.2 記錄級的寫原子性 123
7.1.3 不支持服務端事務 123
7.1.4 沒有重複鍵值 124
7.2 寫操作的基本屬性 124
7.3 一致性級別 124
7.4 讀操作的基本屬性 126
7.5 API 126
7.6 設定與插入數據 128
7.7 使用簡單的get 133
7.8 數據準備 135
7.9 切片謂詞 135
7.9.1 使用get_slice讀取特定列名 136
7.9.2 通過切片區間獲取一組列 137
7.9.3 取出一行中的所有列 138
7.10 get_range_slices 138
7.11 multiget_slice 140
7.12 刪除 142
7.13 批量變更 144
7.13.1 批量刪除 144
7.13.2 區間鬼影 145
7.14 編程定義keyspace和列族 145
7.15 小結 146
第8章 客戶端 147
8.1 基本的客戶端API 148
8.2 thrift 148
8.2.1 Thrift對Java的支持 151
8.2.2 異常 151
8.2.3 Thrift小結 152
8.3 Avro 152
8.3.1 Avro Ant目標 154
8.3.2 Avro規範 155
8.3.3 Avro小結 156
8.4 Git簡介 156
8.5 連線客戶端節點 157
8.5.1 客戶端列表 157
8.5.2 循環DNS 157
8.5.3 負載均衡器 157
8.6 Cassandra Web控制台 157
8.7 Hector(Java) 161
8.7.1 特性 161
8.7.2 Hector API 162
8.8 HectorSharp(C#) 162
8.9 Chirper 167
8.10 Chiton(Python) 167
8.11 Pelops(Java) 168
8.12 Kundera(Java ORM) 169
8.13 Fauna(Ruby) 169
8.14 小結 170
第9章 監控 171
9.1 日誌 171
9.1.1 跟蹤查看 173
9.1.2 通用技巧 174
9.2 JMX與MBean概述 175
9.2.1 MBean 177
9.2.2 集成JMX 179
9.3 通過JMX與Cassandra互動 180
9.4 Cassandra的MBean 181
9.4.1 org.apache.cassandra.concurrent 185
9.4.2 org.apache.cassandra.db 185
9.4.3 org.apache.cassandra.gms 186
9.4.4 org.apache.cassandra.service 186
9.5 定製Cassandra的MBean 188
9.6 運行時分析工具 190
9.6.1 使用JMX和JHAT進行堆分析 191
9.6.2 發現執行緒問題 194
9.7 健康檢查 195
9.8 小結 196
第10章 維護 197
10.1 獲取環的信息 198
10.1.1 Info 198
10.1.2 Ring 198
10.2 獲取統計信息 199
10.2.1 使用cfstats 199
10.2.2 使用tpstats 200
10.3 基本維護工作 201
10.3.1 修復 201
10.3.2 刷寫 202
10.3.3 清理 203
10.4 快照 203
10.4.1 進行快照 203
10.4.2 清除快照 204
10.5 對集群進行負載均衡 205
10.6 退服節點 208
10.7 更新節點 210
10.7.1 刪除令牌 210
10.7.2 壓緊閾值 210
10.7.3 在一個工作的集群中改變列族 210
10.8 小結 211
第11章 性能調優 213
11.1 數據存儲 213
11.2 回復逾時 215
11.3 commit log 215
11.4 memtable 216
11.5 並發 216
11.6 快取 217
11.7 緩衝區尺寸 218
11.8 使用Python壓力測試 218
11.8.1 生成Python Thrift接口 218
11.8.2 運行Python壓力測試 220
11.9 啟動和JVM設定 222
11.10 小結 224
第12章 集成Hadoop 225
12.1 何為Hadoop 225
12.2 使用MapReduce 226
12.3 運行字數統計例子 227
12.3.1 將數據輸出到Cassandra 229
12.3.2 Hadoop流 229
12.4 MapReduce之上的工具 229
12.4.1 Pig 230
12.4.2 Hive 231
12.5 集群配置 231
12.6 案例 233
12.6.1 Raptr-com: Keith Thornhill 233
12.6.2 Imagini: Dave Gardner 233
12.7 小結 234
附錄 非關係型資料庫大觀 235
辭彙表 261
關於作者 279
關於封面 279

相關詞條

相關搜尋

熱門詞條

聯絡我們