具体描述
本书介绍了一些主流技术在商业项目中的应用,包括机器学习中的分类、聚类和线性回归,搜索引擎,推荐系统,用户行为跟踪,架构设计的基本理念及常用的消息和缓存机制。在这个过程中,我们有机会实践R、Mahout、Solr、Elasticsearch、Hadoop、HBase、Hive、Flume、Kafka、Storm等系统。如前所述,本书最大的特色就是,从商业需求出发演变到合理的技术方案和实现,因此根据不同的应用场景、不同的数据集合、不同的进阶难度,我们为读者提供了反复温习和加深印象的机会。
作者简介
目录信息
推荐序
前言
引子 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
· · · · · · (收起)
读后感
用户评价
这本书的语言风格非常接地气,作者似乎很懂得如何用最直白、最贴近实战的语言来阐述那些原本枯燥深奥的技术概念。我尤其欣赏它在解释“为什么”和“怎么做”之间的平衡把握。很多技术书籍只告诉你“是什么”,但这本书却花费了大量篇幅去剖析在真实项目场景中,面对各种性能瓶颈和业务约束时,技术选型背后的权衡和取舍。读起来完全没有那种“纸上谈兵”的空洞感,反而感觉像是在听一位经验丰富的老工程师在分享他踩过的坑和总结的教训。他很少使用过于晦涩的学术术语,如果实在要用,也会立刻给出生活化的比喻来辅助理解,这一点对于刚入行或者想转向架构方向的开发者来说,无疑是极大的帮助,能有效降低学习曲线的陡峭程度。
从内容的深度和广度来看,这本书的覆盖面确实令人印象深刻。它没有局限于某个单一的技术栈进行深入挖掘,而是以一个宏观的视角,系统性地构建起一个完整的技术体系框架。我观察到它对基础理论的讲解非常扎实,为后续的深入实践打下了坚实的基础。但更可贵的是,它没有止步于理论的陈述,而是紧密结合了行业内的前沿实践案例进行论述。这种“理论指导实践,实践反哺理论”的叙事结构,使得知识点之间逻辑联系紧密,形成了一个互相支撑的知识网络。读完后,我感觉自己对整个技术领域有了更立体、更全面的认知,不再是零散知识点的堆砌,而是一个结构化的知识体系,这对于提升解决问题的系统性思维至关重要。
这本书的排版和印刷质量着实让人眼前一亮,装帧设计充满了现代感,拿到手里很有分量。初翻的时候,那种纸张的质感就给人一种专业、扎实的印象。我特别喜欢它在图表和代码示例上的处理方式,排版清晰,层次分明,即便是复杂的系统架构图,也能一目了然。这种对细节的重视,让我感觉作者在内容呈现上也是下足了功夫,而不是敷衍了事。在阅读过程中,我发现有些技术书籍在图文混排上处理得比较粗糙,但这本书在这一点上做得非常到位,几乎找不到让人分心的排版错误或者模糊不清的图例。这对于需要反复对照文字和图示来理解复杂概念的读者来说,简直是福音。它不仅仅是一本工具书,更像是一件精心打磨的工艺品,让人愿意花时间去细细品味。这种精心的设计,无疑为提升阅读体验加分不少。
这本书中提供的案例研究部分,给我带来了最直接的启发和震撼。它不仅仅是展示了“我们用A技术解决了B问题”的简单罗列,而是深入到决策制定的全过程。作者很坦诚地剖析了在资源、时间限制下的最优解并非总是技术上最完美的解,这种对工程现实的尊重,才是成熟架构师的标志。特别是那些关于数据一致性、高可用性以及跨团队协作方面的讨论,让我对如何将理论转化为可落地的生产系统有了全新的认识。这些“内幕消息”和反思,是标准文档和官方教程中很难获取到的宝贵经验,它们极大地丰富了我对实际工程挑战的预判能力和应对策略,让我感觉自己仿佛被邀请进入了一个资深技术团队的内部会议,收获颇丰。
这本书的章节组织逻辑安排得极富匠心,体现了作者对知识传递路径的深刻理解。它采取了一种逐步递进的方式,从最基础的模块开始,层层向上构建起复杂的系统结构。这种布局的好处是,即使读者在某些特定领域可能存在知识盲区,也能通过前置章节的学习平滑地过渡到后面的高级内容。我发现作者在关键转折点上,都会设置一个清晰的总结或者承上启下的过渡段落,确保读者不会在复杂的流程中迷失方向。这种精心设计的阅读路径,极大地提高了学习效率,让人能够保持专注,并对知识点的掌握程度有一个清晰的自我评估,使得整个学习过程既有挑战性又不至于产生挫败感,是教科书级别的结构设计范例。
很不错,我从国图借的,开阔视野,但是不适合新手读书,业务背景要求太高了!准备过几年再读(到时候,推荐会变吧)
很不错,我从国图借的,开阔视野,但是不适合新手读书,业务背景要求太高了!准备过几年再读(到时候,推荐会变吧)
作为续作,本书最大的特色是加入了大量的实践和代码,非常实用
本书介绍了一些主流技术在商业项目中的应用,包括机器学习中的分类、聚类和线性回归,搜索引擎,推荐系统,用户行为跟踪,架构设计的基本理念及常用的消息和缓存机制。在这个过程中,我们有机会实践R、Mahout、Solr、Elasticsearch、Hadoop、HBase、Hive、Flume、Kafka、Storm等系统。
作为续作,本书最大的特色是加入了大量的实践和代码,非常实用