描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111569695丛书名: 大数据技术丛书
编辑推荐
内容简介
本书介绍了一些主流技术在商业项目中的应用,包括机器学习中的分类、聚类和线性回归,搜索引擎,推荐系统,用户行为跟踪,架构设计的基本理念及常用的消息和缓存机制。在这个过程中,我们有机会实践R、Mahout、Solr、Elasticsearch、Hadoop、HBase、Hive、Flume、Kafka、Storm等系统。本书大的特色就是,从商业需求出发演变到合理的技术方案和实现,因此根据不同的应用场景、不同的数据集合、不同的进阶难度,我们为读者提供了反复温习和加深印象的机会。
目 录
目 录?Contents
推荐序
前言
引子 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
前 言
前 言 Preface为什么要写这本书首先要感谢机械工业出版社华章公司的编辑们,在他们的大力支持下,我于2016年出版了《大数据架构商业之路:从业务需求到技术方案》一书,并获得了良好的销售额和口碑。不少读者主动和我联系,表示从书中学习到了如何使用大数据的知识,来制定合理的技术方案。能够让读者从书中获益,我也感到非常欣慰。与此同时,也有部分读者表示对于技术的细节很感兴趣,对此书未能包含实现部分深感遗憾。对此,我一直在犹豫是否需要重新写一版,包含更多的实战内容。因为《大数据架构商业之路:从业务需求到技术方案》一书的定位是程度地弥补业务需求和技术方案之间的空白,针对的读者主要是互联网公司的技术管理人员、产品经理、初级的架构师等。如果直接加入过多的技术细节,可能会导致该书的定位不清,让读者难以获得的阅读体验。
与本书的策划编辑杨老师再三讨论之后,我决定不在原书中加入更多的实现部分,而是重新撰写一本兄弟篇。这本全新的书,仍然会沿用前作的故事背景和应用场景,不过读者对象改为资深的程序员、算法工程师、数据科学家和系统架构师。因此,新作将大幅缩减基础知识的详细介绍以及业务需求的逐步分析,而是直接进入实战的主题,包括系统架构、算法设计,甚至是重要的代码部分。当然,我也不希望该书全由代码堆砌而成,因此主要针对核心代码进行了讲解。全部的实例代码会以其他形式来提供。
虽然定位有所不同,但是我仍然希望保持前作深入浅出的特点。
易读易懂。黄小明和杨大宝的创业故事在稍作修改的基础之上得以保留,继续使用生动的案例和形象的比喻来解读难点,降低理解的门槛。
可实践性强。本书选取了电子商务的平台,通过分享大量实践才能积累的宝贵经验和重点代码,程度地弥补业务需求和技术方案之间的空白。与此同时,针对频繁升级的开源软件,我也采用了2016年年底到2017年年初的版本。因此,部分代码甚至可作为中小公司创业起步的参考模板。这有利于技术人员针对不同的业务需求,规划更为合理的技术方案。
后,我们衷心希望本书成为相关领域技术专家的良师益友,大家在阅读之后,对电商大数据的实践能有更加深入的理解,并对自己所从事的项目有所裨益。
读者对象根据本书撰写的起心动念,我们觉得其内容适合如下的读者。
大数据相关领域的程序开发者和技术骨干。从本书中,他们可以看到常见的互联网公司从创业初期到中期,应该怎样设计数据平台、如何解决技术上的难题,才能终满足业务需求。
中小互联网创业公司的数据科学家或者算法工程师。算法是数据平台的一个关键因素。近几年,人工智能、机器学习乃至深度学习都是学术界和工业界的一大热点,而数据科学家也成为受人追捧的职业。合理地运用智能算法将从很大程度上节约重复劳动的成本,提高效率和转化率,终增加商业的价值。
架构工程师。架构是数据平台的另一个关键因素,很多刚刚从院校毕业、工作没多久的朋友,学了一身的本领,对新技术也很有热情,可惜没有太多实践的机会。本书中的案例,浓缩了不少业界实践的经验和心得,如能融会贯通,对他们的工作将有很大帮助。同时,覆盖面较广的技术课题概述,也为他们继续深入研究提供了方向和可能。
总之,本书适合钻研实现细节的程序员、工程师和算法专家。和前作的侧重点有所不同,本书并不适合作为入门教程使用。因此建议没有相关基础知识的读者,读完前作之后再来阅读此书。
如何阅读本书本书介绍了一些主流技术在商业项目中的应用,包括机器学习中的分类、聚类和线性回归,搜索引擎,推荐系统,用户行为跟踪,架构设计的基本理念及常用的消息和缓存机制。在这个过程中,我们有机会实践R、Mahout、Solr、Elasticsearch、Hadoop、HBase、Hive、Flume、Kafka、Storm等系统。如前所述,本书的特色就是,从商业需求出发演变到合理的技术方案和实现,因此根据不同的应用场景、不同的数据集合、不同的进阶难度,我们为读者提供了反复温习和加深印象的机会。
勘误和支持众所周知,大数据的发展实在是太快了。可能就在你阅读这段文字的同时,又有一项新的技术诞生了,N项技术升级了,M项技术被淘汰了。再加之笔者的水平有限,书中难免会出现一些不够准确或遗漏的地方,恳请读者通过如下的渠道积极建议和斧正,我们很期待能够收到你们的真挚反馈。
QQ:36638279微信:18616692855邮箱:[email protected]:https://cn.linkedin.com/in/shuang790228致谢首先要感谢上海交通大学和俞勇教授,你们给予我不断学习的机会,带领我进入了大数据的世界。同时,感谢阿里云的高级总监薛贵荣,你的指导让我树立了良好的科研态度。
还要感谢微软亚洲研究院、eBay中国研发中心、沃尔玛1号店、大润发飞牛网和IBM中国研发中心,在这些公司十多年的实战经验让我收获颇丰,也为本书的铸就打下了坚实的基础。
感谢曾经的微软战友陈正、孙建涛、Ling Bao、曾华军、张本宇、沈抖、刘宁、严峻、曹云波、王琼华、康亚滨、胡健、季蕾等,eBay的战
与本书的策划编辑杨老师再三讨论之后,我决定不在原书中加入更多的实现部分,而是重新撰写一本兄弟篇。这本全新的书,仍然会沿用前作的故事背景和应用场景,不过读者对象改为资深的程序员、算法工程师、数据科学家和系统架构师。因此,新作将大幅缩减基础知识的详细介绍以及业务需求的逐步分析,而是直接进入实战的主题,包括系统架构、算法设计,甚至是重要的代码部分。当然,我也不希望该书全由代码堆砌而成,因此主要针对核心代码进行了讲解。全部的实例代码会以其他形式来提供。
虽然定位有所不同,但是我仍然希望保持前作深入浅出的特点。
易读易懂。黄小明和杨大宝的创业故事在稍作修改的基础之上得以保留,继续使用生动的案例和形象的比喻来解读难点,降低理解的门槛。
可实践性强。本书选取了电子商务的平台,通过分享大量实践才能积累的宝贵经验和重点代码,程度地弥补业务需求和技术方案之间的空白。与此同时,针对频繁升级的开源软件,我也采用了2016年年底到2017年年初的版本。因此,部分代码甚至可作为中小公司创业起步的参考模板。这有利于技术人员针对不同的业务需求,规划更为合理的技术方案。
后,我们衷心希望本书成为相关领域技术专家的良师益友,大家在阅读之后,对电商大数据的实践能有更加深入的理解,并对自己所从事的项目有所裨益。
读者对象根据本书撰写的起心动念,我们觉得其内容适合如下的读者。
大数据相关领域的程序开发者和技术骨干。从本书中,他们可以看到常见的互联网公司从创业初期到中期,应该怎样设计数据平台、如何解决技术上的难题,才能终满足业务需求。
中小互联网创业公司的数据科学家或者算法工程师。算法是数据平台的一个关键因素。近几年,人工智能、机器学习乃至深度学习都是学术界和工业界的一大热点,而数据科学家也成为受人追捧的职业。合理地运用智能算法将从很大程度上节约重复劳动的成本,提高效率和转化率,终增加商业的价值。
架构工程师。架构是数据平台的另一个关键因素,很多刚刚从院校毕业、工作没多久的朋友,学了一身的本领,对新技术也很有热情,可惜没有太多实践的机会。本书中的案例,浓缩了不少业界实践的经验和心得,如能融会贯通,对他们的工作将有很大帮助。同时,覆盖面较广的技术课题概述,也为他们继续深入研究提供了方向和可能。
总之,本书适合钻研实现细节的程序员、工程师和算法专家。和前作的侧重点有所不同,本书并不适合作为入门教程使用。因此建议没有相关基础知识的读者,读完前作之后再来阅读此书。
如何阅读本书本书介绍了一些主流技术在商业项目中的应用,包括机器学习中的分类、聚类和线性回归,搜索引擎,推荐系统,用户行为跟踪,架构设计的基本理念及常用的消息和缓存机制。在这个过程中,我们有机会实践R、Mahout、Solr、Elasticsearch、Hadoop、HBase、Hive、Flume、Kafka、Storm等系统。如前所述,本书的特色就是,从商业需求出发演变到合理的技术方案和实现,因此根据不同的应用场景、不同的数据集合、不同的进阶难度,我们为读者提供了反复温习和加深印象的机会。
勘误和支持众所周知,大数据的发展实在是太快了。可能就在你阅读这段文字的同时,又有一项新的技术诞生了,N项技术升级了,M项技术被淘汰了。再加之笔者的水平有限,书中难免会出现一些不够准确或遗漏的地方,恳请读者通过如下的渠道积极建议和斧正,我们很期待能够收到你们的真挚反馈。
QQ:36638279微信:18616692855邮箱:[email protected]:https://cn.linkedin.com/in/shuang790228致谢首先要感谢上海交通大学和俞勇教授,你们给予我不断学习的机会,带领我进入了大数据的世界。同时,感谢阿里云的高级总监薛贵荣,你的指导让我树立了良好的科研态度。
还要感谢微软亚洲研究院、eBay中国研发中心、沃尔玛1号店、大润发飞牛网和IBM中国研发中心,在这些公司十多年的实战经验让我收获颇丰,也为本书的铸就打下了坚实的基础。
感谢曾经的微软战友陈正、孙建涛、Ling Bao、曾华军、张本宇、沈抖、刘宁、严峻、曹云波、王琼华、康亚滨、胡健、季蕾等,eBay的战
评论
还没有评论。