《尋路大數據 海量數據與大規模分析》是2014年11月電子工業出版社出版的圖書,作者是[美] Michael Manoochehri(麥可·馬諾切里)。
基本介紹
- 書名:尋路大數據 海量數據與大規模分析
- 作者:[美] Michael Manoochehri(麥可·馬諾切里)
- 出版社:電子工業出版社
- 出版時間:2014年11月
- 頁數:244 頁
- 定價:59 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787121244728
內容簡介,圖書目錄,作者簡介,
內容簡介
這是一個數據爆發的時代,更是一個數據技術爆發的時代,各行各業都在因此進行深刻的變革。如何從眾多的數據技術中選擇正確的工具、如何使用這糠甩背些工具從海量數據中挖掘出有價值的東西,無疑是非常具有挑戰性的問題。
《尋路大數據:海量數據與大規模分析》作者結合自己戀臘端贈在Google 大數據平台工作的豐富經驗,闡述了數據技術的方方面面。從數據收集、共享到數據存儲,從分散式諒狼協數據平台、分析型資料庫到數據可視化,從數據工作流構建到大規模數據分析,作者不僅進行了全面而深入的介紹,更覆蓋了目前流行的各種數據技術與工具,同時對技術選型提出了指導性的建議。最後,作者對數據挑戰的非技術因素進行了深刻的分析,並對數據技術的發展趨勢進行了展望,引人深思。
《尋路大數據:海量數據與大規模分析》對企業管理者、技術經理、數據分析師、數據套用開發人員和相關從業者都有很好的參考價值。決策者可以從中看到技術趨勢,把握時代發展脈搏;數據分析人員可以看到經驗的總結和工具的套用;其他從業者可以從兆懂中了解數據技術所涉及的各個方面。
圖書目錄
第1 部分 大數據時代指引 1
第1 章 數據成功四原則 3
1.1 當數據成為一件“大”事 3
1.2 數據和單台伺服器 4
1.3 大數據的權衡 5
1.3.1 構建可(限)擴展的解決方案 6
1.3.2 構建可(在網際網路上)共享數據的系統 7
1.3.3 構建解決方案,而非基礎設施 8
1.3.4 關注從數據肯紋少拒中解放價值 8
1.4 大數據流水線剖析 9
1.5 終極資料庫 10
1.6 總結 10
第2 部分 收集和共享海量數據 13
第2 章 託管和共享TB 級原始數據 15
2.1 檔案之殤 16
2.1.1 共享大量檔案的挑戰 16
2.2 存儲:基礎慨兆套設施即服務 17
2.2.1 網路很慢 18
2.3 選擇合適的數據格式 18
2.3.1 XML :數據,描述你自己 20
2.3.2 JSON :程式設計師的選擇 21
2.4 字元編碼 22
2.4.1 檔案轉換 24
XXII 目錄
2.5 移動中的數據:數據序列化格式 25
2.5.1 Apache Thrift 和Protocol Buffers 26
2.6 總結 27
第3 章 構建基於NoSQL 的Web 套用採集眾包數據 29
3.1 關係型資料庫:命令及控制 30
3.1.1 關係資料庫的ACID 測試 32
3.2 當關係型資料庫遇上網際網路 33
3.2.1 CAP 原理與BASE 34
3.3 非關係型資料庫的模式 36
3.3.1 鍵- 值資料庫 36
3.3.2 文檔存儲 38
3.4 為寫入性能最佳化:Redis 40
3.5 在多個Redis 實例上分片 43
3.5.1 使用Twemproxy 自動分區 44
3.5.2 Redis 的替代選項 46
3.6 NewSQL :Codd 歸來 46
3.7 總結 47
第4 章 解決數據孤島問題的策略 49
4.1 堆滿術語的倉庫 49
4.1.1 實踐中的問題 51
4.1.2 數據合規與安全規劃 52
4.1.3 走進數據倉庫 53
4.1.4 數據倉庫的口訣:抽取、轉換和載入 54
4.2 Hadoop :數據倉庫中的大象 55
4.3 數據孤島也可能是個優點 55
4.3.1 專注於數據問題,而不是技術 56
4.3.2 鼓勵員工提出他們自己的問題 57
4.3.3 投資溝通數據孤島的技術 57
4.4 融合:數據孤島的終結 58
目錄XXIII
4.4.1 Luhn 的商業智慧型系統是否能成為現實 59
4.5 總結 59
第3 部分 數據探究 61
第5 章 使用Hadoop、Hive 和Shark 探索大規模數據集 63
5.1 什麼是勸乃雄數據倉庫 64
5.2 Apache Hive :在Hadoop 上進行互動式查詢 66
5.2.1 Hive 用例 66
5.2.2 Hive 實戰 67
5.2.3 在Hive 中使用其他數據源 71
5.3 Shark :以記憶體的速度進行查詢 72
5.4 雲中的數據倉庫 73
5.5 總結 74
第6 章 使用Google BigQuery 構建數據信息中心 77
6.1 分析型資料庫 78
6.2 Dremel :均貧富 79
6.2.1 Dremel 與MapReduce 的不同之處 80
6.3 BigQuery :數據分析即服務 81
6.3.1 BigQuery 的查詢語言 82
6.4 建造自己的大數據信息面板 83
6.4.1 授權訪問BigQuery API 84
6.4.2 運行查詢並獲取結果 87
6.4.3 快取查詢結果 88
6.4.4 添加可視化圖形 89
6.5 分析型查詢引擎的未來 91
6.6 總結 91
第7 章 探索大數據的可視化策略 93
7.1 警世良言:將數據翻譯成故事 94
7.2 人類尺度 VS 機器尺度 97
XXIV 目錄
7.2.1 互動性 97
7.3 開發互動式數據套用 98
7.3.1 使用R 和ggplot2 實現互動式可視化 98
7.3.2 matplotlib: Python 的2D 圖形庫 100
7.3.3 D3.js :用於Web 的互動式可視化庫 100
7.4 總結 104
第4 部分 構建數據流水線 107
第8 章 整合:MapReduce 數據流水線 109
8.1 數據流水線是什麼 109
8.1.1 正確的工具 110
8.2 使用Hadoop Streaming 搭建數據流水線 111
8.2.1 MapReduce 和數據轉換 111
8.2.2 最簡單的流水線:stdin 到stdout 113
8.3 單步MapReduce 變換 115
8.3.1 從原始NVSS 數據中抽取相關信息:map 階段 116
8.3.2 合計每月出生數:reducer 階段 117
8.3.3 在本地測試MapReduce 流水線 118
8.3.4 在Hadoop 集群上運行我們的MapReduce 作業 119
8.4 降低複雜性:Hadoop 上Python 的MapReduce 框架 120
8.4.1 使用mrjob 重寫Hadoop Streaming 示例 121
8.4.2 建造一個多步流水線 122
8.4.3 在Elastic MapReduce 上運行mrjob 腳本 124
8.4.4 其他基於Python 的MapReduce 框架 125
8.5 總結 125
第9 章 使用Pig 和Cascading 構建數據轉換工作流 127
9.1 大規模數據工作流實戰 128
9.2 多步MapReduce 轉換真複雜 128
9.2.1 Apache Pig :拒絕複雜 129
目錄XXV
9.2.2 使用互動式Grunt shell 運行Pig 130
9.2.3 過濾和最佳化數據工作流 132
9.2.4 以批處理模式運行Pig 腳本 132
9.3 Cascading :構建健壯的數據工作流套用 133
9.3.1 以source 和sink 的方式思考 134
9.3.2 構建Cascading 套用 135
9.3.3 創建一個Cascade :一個簡單的JOIN 例子 136
9.3.4 在Hadoop 集群上部署Cascading 套用 138
9.4 何時選擇Pig 或Cascading 139
9.5 總結 140
第5 部分 基於大規模數據集的機器學習 141
第10 章 使用Mahout 構建數據分類系統 143
10.1 機器能否預測未來 144
10.2 機器學習的挑戰 144
10.2.1 貝葉斯分類 146
10.2.2 聚類 146
10.2.3 推薦引擎 148
10.3 Apache Mahout :可伸縮的機器學習工具 148
10.3.1 使用Mahout 進行文本分類 149
10.4 MLbase :分散式機器學習框架 152
10.5 總結 152
第6 部分 基於大規模數據集的統計分析 155
第11 章 使用R 語言處理大數據集 157
11.1 統計學為什麼性感 158
11.1.1 R 處理大型數據集的局限性 159
11.1.2 R 的數據幀和矩陣 161
XXVI 目錄
11.2 處理大數據集的策略 162
11.2.1 大矩陣處理:bigmemory 和biganalytics 162
11.2.2 ff: 使用大於記憶體的數據幀 164
11.2.3 biglm :大規模數據集的線性回歸 165
11.2.4 RHadoop: 使用R 訪問Apache Hadoop 166
11.3 總結 168
第12 章 使用Python 和Pandas 構建分析工作流 171
12.1 數據樂園中自在的蟒蛇――Python 172
12.1.1 為統計性計算選擇一門語言 172
12.1.2 擴展現有代碼 173
12.1.3 工具和測試 174
12.2 用於數據處理的Python 庫 174
12.2.1 NumPy 175
12.2.2 SciPy :Python 的科學計算庫 176
12.2.3 數據分析庫Pandas 178
12.3 構建更複雜的工作流 182
12.3.1 處理損壞或丟失的記錄 184
12.4 iPython :科學計算工具鏈的最後一環 185
12.4.1 在集群上並行執行iPython 186
12.5 總結 190
第7 部分 展望未來 191
第13 章 何時選擇自製、購買或外包 193
13.1 功能重合的解決方案 193
13.2 理解你的數據問題 195
13.3 自製還是購買問題的參考手冊 197
13.3.1 你已經對哪些技術有所投入 197
13.3.2 從小處著手 198
13.3.3 規劃時考慮可擴展性 198
目錄XXVII
13.4 私人數據中心 199
13.5 了解開源的成本 201
13.6 一切皆服務 202
13.7 總結 202
第14 章 未來:數據科技的幾個趨勢 205
14.1 Hadoop :攪局者與被攪局者 206
14.2 一切皆在雲中 208
14.3 數據科學家的興衰 209
14.4 融合:終極資料庫 212
14.5 文化融合 213
14.6 總結 214
作者簡介
Michael Manoochehri,是個企業家、作家和樂觀主義者。憑藉自己與企業、研究機構和非營利性機構多年的合作經驗,他力圖讓可擴展數據分析變得更加廉價和易獲取。Michael 是Google 雲平台開發者關係組的成員之一,關注云計算和數據開發者產品,例如Google BigQuery。此外,Michael 是技術部落格ProgrammableWeb.com的作者之一,曾在烏干達農村地區研究行動電話的使用,擁有UC Berkeley 信息學院的信息管理與系統文學碩士學位。
陳冠誠,並行實驗室創建者。在導師Prof. Per Stenström指導下完成碩士畢業設計“關於並行程式中鎖競爭的性能分析”。2011年加入IBM中國研究院系統組,從事雲計算系統架構、海量數據處理等相關研究工作。
3.3.1 鍵- 值資料庫 36
3.3.2 文檔存儲 38
3.4 為寫入性能最佳化:Redis 40
3.5 在多個Redis 實例上分片 43
3.5.1 使用Twemproxy 自動分區 44
3.5.2 Redis 的替代選項 46
3.6 NewSQL :Codd 歸來 46
3.7 總結 47
第4 章 解決數據孤島問題的策略 49
4.1 堆滿術語的倉庫 49
4.1.1 實踐中的問題 51
4.1.2 數據合規與安全規劃 52
4.1.3 走進數據倉庫 53
4.1.4 數據倉庫的口訣:抽取、轉換和載入 54
4.2 Hadoop :數據倉庫中的大象 55
4.3 數據孤島也可能是個優點 55
4.3.1 專注於數據問題,而不是技術 56
4.3.2 鼓勵員工提出他們自己的問題 57
4.3.3 投資溝通數據孤島的技術 57
4.4 融合:數據孤島的終結 58
目錄XXIII
4.4.1 Luhn 的商業智慧型系統是否能成為現實 59
4.5 總結 59
第3 部分 數據探究 61
第5 章 使用Hadoop、Hive 和Shark 探索大規模數據集 63
5.1 什麼是數據倉庫 64
5.2 Apache Hive :在Hadoop 上進行互動式查詢 66
5.2.1 Hive 用例 66
5.2.2 Hive 實戰 67
5.2.3 在Hive 中使用其他數據源 71
5.3 Shark :以記憶體的速度進行查詢 72
5.4 雲中的數據倉庫 73
5.5 總結 74
第6 章 使用Google BigQuery 構建數據信息中心 77
6.1 分析型資料庫 78
6.2 Dremel :均貧富 79
6.2.1 Dremel 與MapReduce 的不同之處 80
6.3 BigQuery :數據分析即服務 81
6.3.1 BigQuery 的查詢語言 82
6.4 建造自己的大數據信息面板 83
6.4.1 授權訪問BigQuery API 84
6.4.2 運行查詢並獲取結果 87
6.4.3 快取查詢結果 88
6.4.4 添加可視化圖形 89
6.5 分析型查詢引擎的未來 91
6.6 總結 91
第7 章 探索大數據的可視化策略 93
7.1 警世良言:將數據翻譯成故事 94
7.2 人類尺度 VS 機器尺度 97
XXIV 目錄
7.2.1 互動性 97
7.3 開發互動式數據套用 98
7.3.1 使用R 和ggplot2 實現互動式可視化 98
7.3.2 matplotlib: Python 的2D 圖形庫 100
7.3.3 D3.js :用於Web 的互動式可視化庫 100
7.4 總結 104
第4 部分 構建數據流水線 107
第8 章 整合:MapReduce 數據流水線 109
8.1 數據流水線是什麼 109
8.1.1 正確的工具 110
8.2 使用Hadoop Streaming 搭建數據流水線 111
8.2.1 MapReduce 和數據轉換 111
8.2.2 最簡單的流水線:stdin 到stdout 113
8.3 單步MapReduce 變換 115
8.3.1 從原始NVSS 數據中抽取相關信息:map 階段 116
8.3.2 合計每月出生數:reducer 階段 117
8.3.3 在本地測試MapReduce 流水線 118
8.3.4 在Hadoop 集群上運行我們的MapReduce 作業 119
8.4 降低複雜性:Hadoop 上Python 的MapReduce 框架 120
8.4.1 使用mrjob 重寫Hadoop Streaming 示例 121
8.4.2 建造一個多步流水線 122
8.4.3 在Elastic MapReduce 上運行mrjob 腳本 124
8.4.4 其他基於Python 的MapReduce 框架 125
8.5 總結 125
第9 章 使用Pig 和Cascading 構建數據轉換工作流 127
9.1 大規模數據工作流實戰 128
9.2 多步MapReduce 轉換真複雜 128
9.2.1 Apache Pig :拒絕複雜 129
目錄XXV
9.2.2 使用互動式Grunt shell 運行Pig 130
9.2.3 過濾和最佳化數據工作流 132
9.2.4 以批處理模式運行Pig 腳本 132
9.3 Cascading :構建健壯的數據工作流套用 133
9.3.1 以source 和sink 的方式思考 134
9.3.2 構建Cascading 套用 135
9.3.3 創建一個Cascade :一個簡單的JOIN 例子 136
9.3.4 在Hadoop 集群上部署Cascading 套用 138
9.4 何時選擇Pig 或Cascading 139
9.5 總結 140
第5 部分 基於大規模數據集的機器學習 141
第10 章 使用Mahout 構建數據分類系統 143
10.1 機器能否預測未來 144
10.2 機器學習的挑戰 144
10.2.1 貝葉斯分類 146
10.2.2 聚類 146
10.2.3 推薦引擎 148
10.3 Apache Mahout :可伸縮的機器學習工具 148
10.3.1 使用Mahout 進行文本分類 149
10.4 MLbase :分散式機器學習框架 152
10.5 總結 152
第6 部分 基於大規模數據集的統計分析 155
第11 章 使用R 語言處理大數據集 157
11.1 統計學為什麼性感 158
11.1.1 R 處理大型數據集的局限性 159
11.1.2 R 的數據幀和矩陣 161
XXVI 目錄
11.2 處理大數據集的策略 162
11.2.1 大矩陣處理:bigmemory 和biganalytics 162
11.2.2 ff: 使用大於記憶體的數據幀 164
11.2.3 biglm :大規模數據集的線性回歸 165
11.2.4 RHadoop: 使用R 訪問Apache Hadoop 166
11.3 總結 168
第12 章 使用Python 和Pandas 構建分析工作流 171
12.1 數據樂園中自在的蟒蛇――Python 172
12.1.1 為統計性計算選擇一門語言 172
12.1.2 擴展現有代碼 173
12.1.3 工具和測試 174
12.2 用於數據處理的Python 庫 174
12.2.1 NumPy 175
12.2.2 SciPy :Python 的科學計算庫 176
12.2.3 數據分析庫Pandas 178
12.3 構建更複雜的工作流 182
12.3.1 處理損壞或丟失的記錄 184
12.4 iPython :科學計算工具鏈的最後一環 185
12.4.1 在集群上並行執行iPython 186
12.5 總結 190
第7 部分 展望未來 191
第13 章 何時選擇自製、購買或外包 193
13.1 功能重合的解決方案 193
13.2 理解你的數據問題 195
13.3 自製還是購買問題的參考手冊 197
13.3.1 你已經對哪些技術有所投入 197
13.3.2 從小處著手 198
13.3.3 規劃時考慮可擴展性 198
目錄XXVII
13.4 私人數據中心 199
13.5 了解開源的成本 201
13.6 一切皆服務 202
13.7 總結 202
第14 章 未來:數據科技的幾個趨勢 205
14.1 Hadoop :攪局者與被攪局者 206
14.2 一切皆在雲中 208
14.3 數據科學家的興衰 209
14.4 融合:終極資料庫 212
14.5 文化融合 213
14.6 總結 214
作者簡介
Michael Manoochehri,是個企業家、作家和樂觀主義者。憑藉自己與企業、研究機構和非營利性機構多年的合作經驗,他力圖讓可擴展數據分析變得更加廉價和易獲取。Michael 是Google 雲平台開發者關係組的成員之一,關注云計算和數據開發者產品,例如Google BigQuery。此外,Michael 是技術部落格ProgrammableWeb.com的作者之一,曾在烏干達農村地區研究行動電話的使用,擁有UC Berkeley 信息學院的信息管理與系統文學碩士學位。
陳冠誠,並行實驗室創建者。在導師Prof. Per Stenström指導下完成碩士畢業設計“關於並行程式中鎖競爭的性能分析”。2011年加入IBM中國研究院系統組,從事雲計算系統架構、海量數據處理等相關研究工作。