本書是《大數據架構商業之路:從業務需求到技術方案》一書的續作,仍然沿用前作的故事背景和套用場景,不過讀者對象變為資深的程式設計師、算法工程師、數據科學家和系統架構師。本作直接進入實戰的主題,包括系統架構、算法設計,甚至是針對重要代碼的講解。從技術點而言,全書介紹了一些主流些技術在商業項目中的套用,包括:機器學習中的分類、聚類和線性回歸,搜尋引擎,推薦系統,用戶行為跟蹤,架構設計的基本理念以及常用的訊息和快取機制。讀者有機會實踐R、Mahout、Solr、Elasticsearch,Hadoop、HBase、Hive、Flume、Kafka,Storm等系統。
基本介紹
- 書名:大數據架構和算法實現之路:電商系統的技術實戰
- 作者:黃申
- ISBN:9787111569695
- 頁數:425
- 定價:79
- 出版社:機械工業出版社-華章
- 出版時間:2016-06-30
- 裝幀:簡裝
- 開本:16開
內容提要,作者簡介,目錄,
內容提要
全書介紹了一些主流些技術在商業項目中的套用,包括:機器學習中的分類、聚類和線性回歸,搜尋引擎,推薦系統,用戶行為跟蹤,架構設計的基本理念以及常用的訊息和快取機制。在這個過程中,我們有機會實踐R、Mahout、Solr、Elasticsearch,Hadoop、HBase、Hive、Flume、Kafka,Storm等系統。和前作不同之處在於,本書完全是面向技術人員,因此提供了大量詳盡的實現步驟和代碼分析。不過,本書在技術和商業結合方面,仍然和前作保持一致,從具體業務需求出發演變到合理的技術方案和實現,根據不同的套用場景、不同的數據集合、不同的進階難度,我們為讀者提供了反覆溫習和加深印象的機會。
作者簡介
黃申,博士,LinkedIn資深科學家,畢業於上海交通大學計算機科學與工程專業,師從俞勇教授。微軟學者,IBMExtremeBlue天才計畫成員。長期專注於大數據相關的搜尋、推薦、廣告以及用戶精準化領域。曾在微軟亞洲研究院、IBM全球研究院、eBay中國、沃爾瑪1號店和大潤發飛牛網擔任要職,帶隊完成了若干公司級的戰略項目。同時著有20多篇國際論文和10多項國際專利,兼任《計算機工程》期刊特邀審稿專家。《大數據架構商業之路:從業務到技術方案》和《大數據架構和算法實現之路:電商系統的技術實戰》的作者,《Python機器學習實踐指南》和《Elasticsearch實戰》中文版的譯者。因其對業界的卓越貢獻,2015年獲得美國政府頒發的“美國傑出人才”稱號。
目錄
推薦序
前言
引子 1
第一篇 支持高效的運營
第1章 方案設計和技術選型:分類 5
1.1 分類的基本概念 6
1.2 分類任務的處理流程 7
1.3 算法:樸素貝葉斯和K最近鄰 8
1.3.1 樸素貝葉斯 8
1.3.2 K最近鄰 9
1.4 分類效果評估 10
1.5 相關軟體:R和Mahout 12
1.5.1 R簡介 12
1.5.2 Mahout簡介 13
1.5.3 Hadoop簡介 14
1.6 案例實踐 17
1.6.1 實驗環境設定 17
1.6.2 中文分詞 18
1.6.3 使用R進行樸素貝葉斯分類 22
1.6.4 使用R進行K最近鄰分類 37
1.6.5 單機環境使用Mahout運行樸素貝葉斯分類 39
1.6.6 多機環境使用Mahout運行樸素貝葉斯分類 47
1.7 更多的思考 58
第2章 方案設計和技術選型:聚類 60
2.1 聚類的基本概念 60
2.2 算法:K均值和層次型聚類 61
2.2.1 K均值聚類 61
2.2.2 層次型聚類 62
2.3 聚類的效果評估 64
2.4 案例實踐 66
2.4.1 使用R進行K均值聚類 66
2.4.2 使用Mahout進行K均值聚類 69
第3章 方案設計和技術選型:因變數連續的回歸分析 74
3.1 線性回歸的基本概念 74
3.2 案例實踐 76
3.2.1 實驗環境設定 76
3.2.2 R中數據的標準化 78
3.2.3 使用R的線性回歸分析 81
第二篇為顧客發現喜歡的商品:
基礎篇
第4章 方案設計和技術選型:搜尋 94
4.1 搜尋引擎的基本概念 94
4.1.1 相關性 95
4.1.2 及時性 97
4.2 搜尋引擎的評估 100
4.3 為什麼不是資料庫 103
4.4 系統框架 104
4.4.1 離線預處理 104
4.4.2 線上查詢 107
4.5 常見的搜尋引擎實現 108
4.5.1 Lucene簡介 108
4.5.2 Solr簡介 113
4.5.3 Elasticsearch簡介 120
4.6 案例實踐 123
4.6.1 實驗環境設定 123
4.6.2 基於Solr的實現 123
4.6.3 基於Elasticsearch的實現 154
4.6.4 統一的搜尋API 175
第三篇為顧客發現喜歡的商品:高級篇
第5章 方案設計和技術選型:NoSQL和搜尋的整合 195
5.1 問題分析 195
5.2 HBase簡介 196
5.3 結合HBase和搜尋引擎 203
5.4 案例實踐 204
5.4.1 實驗環境設定 204
5.4.2 HBase的部署 205
5.4.3 HBase和搜尋引擎的集成 211
第6章 方案設計和技術選型:查詢分類和搜尋的整合 219
6.1 問題分析 219
6.2 結合分類器和搜尋引擎 219
6.3 案例實踐 225
6.3.1 實驗環境設定 225
6.3.2 構建查詢分類器 226
6.3.3 定製化的搜尋排序 229
6.3.4 整合查詢分類和定製化排序 236
第7章 方案設計和技術選型:個性化搜尋 245
7.1 問題分析 245
7.2 結合用戶畫像和搜尋引擎 245
7.3 案例實踐 249
7.3.1 用戶畫像的讀取 250
7.3.2 個性化搜尋引擎 253
7.3.3 結果對比 260
第8章 方案設計和技術選型:搜尋分片 267
8.1 問題分析 267
8.2 利用搜尋的分片機制 269
8.3 案例實踐 271
8.3.1 Solr路由的實現 271
8.3.2 Elasticsearch路由的實現 278
第9章 方案設計和技術選型:搜尋提示 283
9.1 問題分析 283
9.2 案例實踐:基礎方案 284
9.2.1 Solr搜尋建議和拼寫糾錯的實現 284
9.2.2 Elasticsearch搜尋建議和拼寫糾錯的實現 286
9.3 改進方案 291
9.4 案例實踐:改進方案 294
第10章 方案設計和技術選型:推薦 303
10.1 推薦系統的基本概念 305
10.2 推薦的核心要素 306
10.2.1 系統角色 306
10.2.2 相似度 307
10.2.3 相似度傳播框架 307
10.3 推薦系統的分類 307
10.4 混合模型 311
10.5 系統架構 312
10.6 Mahout中的推薦算法 313
10.7 電商常見的推薦系統方案 314
10.7.1 電商常見的推薦系統方案 314
10.7.2 相似度的計算 317
10.7.3 協同過濾 319
10.7.4 結果的查詢 320
10.8 案例實踐 321
10.8.1 基於內容特徵的推薦 321
10.8.2 基於行為特徵的推薦 341
第四篇 獲取數據,跟蹤效果
第11章 方案設計和技術選型:行為跟蹤 369
11.1 基本概念 370
11.1.1 網站的核心框架 370
11.1.2 行為數據的類型 371
11.1.3 行為數據的模式 372
11.1.4 設計理念 374
11.2 使用谷歌分析 375
11.3 自行設計之Flume、HDFS和Hive的整合 378
11.3.1 數據的收集——Flume簡介 378
11.3.2 數據的存儲——Hadoop HDFS回顧 382
11.3.3 批量數據分析——Hive簡介 383
11.3.4 Flume、HDFS和Hive的整合方案 386
11.4 自行設計之Flume、Kafka和Storm的整合 386
11.4.1 實時性數據分析之Kafka簡介 386
11.4.2 實時性數據分析之Storm簡介 388
11.4.3 Flume、Kafka和Storm的整合方案 390
11.5 案例實踐 391
11.5.1 數據模式的設計 392
11.5.2 實驗環境設定 392
11.5.3 谷歌分析實戰 394
11.5.4 自主設計實戰之Flume、HDFS和Hive的整合 401
11.5.5 自主設計實戰之Flume、Kafka和Storm的整合 410
11.6 更多的思考 424
後記 425
前言
引子 1
第一篇 支持高效的運營
第1章 方案設計和技術選型:分類 5
1.1 分類的基本概念 6
1.2 分類任務的處理流程 7
1.3 算法:樸素貝葉斯和K最近鄰 8
1.3.1 樸素貝葉斯 8
1.3.2 K最近鄰 9
1.4 分類效果評估 10
1.5 相關軟體:R和Mahout 12
1.5.1 R簡介 12
1.5.2 Mahout簡介 13
1.5.3 Hadoop簡介 14
1.6 案例實踐 17
1.6.1 實驗環境設定 17
1.6.2 中文分詞 18
1.6.3 使用R進行樸素貝葉斯分類 22
1.6.4 使用R進行K最近鄰分類 37
1.6.5 單機環境使用Mahout運行樸素貝葉斯分類 39
1.6.6 多機環境使用Mahout運行樸素貝葉斯分類 47
1.7 更多的思考 58
第2章 方案設計和技術選型:聚類 60
2.1 聚類的基本概念 60
2.2 算法:K均值和層次型聚類 61
2.2.1 K均值聚類 61
2.2.2 層次型聚類 62
2.3 聚類的效果評估 64
2.4 案例實踐 66
2.4.1 使用R進行K均值聚類 66
2.4.2 使用Mahout進行K均值聚類 69
第3章 方案設計和技術選型:因變數連續的回歸分析 74
3.1 線性回歸的基本概念 74
3.2 案例實踐 76
3.2.1 實驗環境設定 76
3.2.2 R中數據的標準化 78
3.2.3 使用R的線性回歸分析 81
第二篇為顧客發現喜歡的商品:
基礎篇
第4章 方案設計和技術選型:搜尋 94
4.1 搜尋引擎的基本概念 94
4.1.1 相關性 95
4.1.2 及時性 97
4.2 搜尋引擎的評估 100
4.3 為什麼不是資料庫 103
4.4 系統框架 104
4.4.1 離線預處理 104
4.4.2 線上查詢 107
4.5 常見的搜尋引擎實現 108
4.5.1 Lucene簡介 108
4.5.2 Solr簡介 113
4.5.3 Elasticsearch簡介 120
4.6 案例實踐 123
4.6.1 實驗環境設定 123
4.6.2 基於Solr的實現 123
4.6.3 基於Elasticsearch的實現 154
4.6.4 統一的搜尋API 175
第三篇為顧客發現喜歡的商品:高級篇
第5章 方案設計和技術選型:NoSQL和搜尋的整合 195
5.1 問題分析 195
5.2 HBase簡介 196
5.3 結合HBase和搜尋引擎 203
5.4 案例實踐 204
5.4.1 實驗環境設定 204
5.4.2 HBase的部署 205
5.4.3 HBase和搜尋引擎的集成 211
第6章 方案設計和技術選型:查詢分類和搜尋的整合 219
6.1 問題分析 219
6.2 結合分類器和搜尋引擎 219
6.3 案例實踐 225
6.3.1 實驗環境設定 225
6.3.2 構建查詢分類器 226
6.3.3 定製化的搜尋排序 229
6.3.4 整合查詢分類和定製化排序 236
第7章 方案設計和技術選型:個性化搜尋 245
7.1 問題分析 245
7.2 結合用戶畫像和搜尋引擎 245
7.3 案例實踐 249
7.3.1 用戶畫像的讀取 250
7.3.2 個性化搜尋引擎 253
7.3.3 結果對比 260
第8章 方案設計和技術選型:搜尋分片 267
8.1 問題分析 267
8.2 利用搜尋的分片機制 269
8.3 案例實踐 271
8.3.1 Solr路由的實現 271
8.3.2 Elasticsearch路由的實現 278
第9章 方案設計和技術選型:搜尋提示 283
9.1 問題分析 283
9.2 案例實踐:基礎方案 284
9.2.1 Solr搜尋建議和拼寫糾錯的實現 284
9.2.2 Elasticsearch搜尋建議和拼寫糾錯的實現 286
9.3 改進方案 291
9.4 案例實踐:改進方案 294
第10章 方案設計和技術選型:推薦 303
10.1 推薦系統的基本概念 305
10.2 推薦的核心要素 306
10.2.1 系統角色 306
10.2.2 相似度 307
10.2.3 相似度傳播框架 307
10.3 推薦系統的分類 307
10.4 混合模型 311
10.5 系統架構 312
10.6 Mahout中的推薦算法 313
10.7 電商常見的推薦系統方案 314
10.7.1 電商常見的推薦系統方案 314
10.7.2 相似度的計算 317
10.7.3 協同過濾 319
10.7.4 結果的查詢 320
10.8 案例實踐 321
10.8.1 基於內容特徵的推薦 321
10.8.2 基於行為特徵的推薦 341
第四篇 獲取數據,跟蹤效果
第11章 方案設計和技術選型:行為跟蹤 369
11.1 基本概念 370
11.1.1 網站的核心框架 370
11.1.2 行為數據的類型 371
11.1.3 行為數據的模式 372
11.1.4 設計理念 374
11.2 使用谷歌分析 375
11.3 自行設計之Flume、HDFS和Hive的整合 378
11.3.1 數據的收集——Flume簡介 378
11.3.2 數據的存儲——Hadoop HDFS回顧 382
11.3.3 批量數據分析——Hive簡介 383
11.3.4 Flume、HDFS和Hive的整合方案 386
11.4 自行設計之Flume、Kafka和Storm的整合 386
11.4.1 實時性數據分析之Kafka簡介 386
11.4.2 實時性數據分析之Storm簡介 388
11.4.3 Flume、Kafka和Storm的整合方案 390
11.5 案例實踐 391
11.5.1 數據模式的設計 392
11.5.2 實驗環境設定 392
11.5.3 谷歌分析實戰 394
11.5.4 自主設計實戰之Flume、HDFS和Hive的整合 401
11.5.5 自主設計實戰之Flume、Kafka和Storm的整合 410
11.6 更多的思考 424
後記 425