首页>参考读物>计算机科学与技术>软件与程序设计

大数据架构和算法实现之路:电商系统的技术实战
作者 : 黄申 著
丛书名 : 大数据技术丛书
出版日期 : 2017-06-12
ISBN : 978-7-111-56969-5
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 437
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

书中通过介绍一个虚拟的互联网创业案例,逐步展开介绍各个阶段可能遇到的业务需求,以及相对应的技术方案,甚至是技术难度。为了达到深入浅出,通俗易懂的效果,每个小章节一般是从业务需求的描述入手,然后进行需求分析,根据需求的特点,对备选技术方案进行科普、概述和探讨,最后是技术方案确定和结论。可能后面还会附上几道开放的思考题,加强和读者的互动。

图书前言

为什么要写这本书
首先要感谢机械工业出版社华章分社的编辑们,在他们的大力支持下,我于2016年出版了《大数据架构商业之路:从业务需求到技术方案》一书,并获得了良好的销售额和口碑。不少读者主动和我联系,表示从书中学习到了如何使用大数据的知识,来制定合理的技术方案。能够让读者从书中获益,我也感到非常欣慰。与此同时,也有部分读者表示对于技术的细节很感兴趣,对此书未能包含实现部分深感遗憾。对此,我一直在犹豫是否需要重新写一版,包含更多的实战内容。因为《大数据架构商业之路:从业务需求到技术方案》一书的定位是最大程度地弥补业务需求和技术方案之间的空白,针对的读者主要是互联网公司的技术管理人员、产品经理、初级的架构师等。如果直接加入过多的技术细节,可能会导致该书的定位不清,让读者难以获得最佳的阅读体验。
与本书的策划编辑杨老师再三讨论之后,我决定不在原书中加入更多的实现部分,而是重新撰写一本兄弟篇。这本全新的书,仍然会沿用前作的故事背景和应用场景,不过读者对象改为资深的程序员、算法工程师、数据科学家和系统架构师。因此,新作将大幅缩减基础知识的详细介绍以及业务需求的逐步分析,而是直接进入实战的主题,包括系统架构、算法设计,甚至是重要的代码部分。当然,我也不希望该书全由代码堆砌而成,因此主要针对核心代码进行了讲解。全部的实例代码会以其他形式来提供。
虽然定位有所不同,但是我仍然希望保持前作深入浅出的特点。
易读易懂。黄小明和杨大宝的创业故事在稍作修改的基础之上得以保留,继续使用生动的案例和形象的比喻来解读难点,降低理解的门槛。
可实践性强。本书选取了电子商务的平台,通过分享大量实践才能积累的宝贵经验和重点代码,最大程度地弥补业务需求和技术方案之间的空白。与此同时,针对频繁升级的开源软件,我也采用了2016年年底到2017年年初最新的版本。因此,部分代码甚至可作为中小公司创业起步的参考模板。这有利于技术人员针对不同的业务需求,规划更为合理的技术方案。
最后,我们衷心希望本书成为相关领域技术专家的良师益友,大家在阅读之后,对电商大数据的实践能有更加深入的理解,并对自己所从事的项目有所裨益。
读者对象
根据本书撰写的起心动念,我们觉得其内容适合如下的读者。
大数据相关领域的程序开发者和技术骨干。从本书中,他们可以看到常见的互联网公司从创业初期到中期,应该怎样设计数据平台、如何解决技术上的难题,才能最终满足业务需求。
中小互联网创业公司的数据科学家或者算法工程师。算法是数据平台的一个关键因素。最近几年,人工智能、机器学习乃至深度学习都是学术界和工业界的一大热点,而数据科学家也成为受人追捧的职业。合理地运用智能算法将从很大程度上节约重复劳动的成本,提高效率和转化率,最终增加商业的价值。
架构工程师。架构是数据平台的另一个关键因素,很多刚刚从院校毕业、工作没多久的朋友,学了一身的本领,对新技术也很有热情,可惜没有太多实践的机会。本书中的案例,浓缩了不少业界实践的经验和心得,如能融会贯通,对他们的工作将有很大帮助。同时,覆盖面较广的技术课题概述,也为他们继续深入研究提供了方向和可能。
总之,本书适合钻研实现细节的程序员、工程师和算法专家。和前作的侧重点有所不同,本书并不适合作为入门教程使用。因此建议没有相关基础知识的读者,读完前作之后再来阅读此书。
如何阅读本书
本书介绍了一些主流技术在商业项目中的应用,包括机器学习中的分类、聚类和线性回归,搜索引擎,推荐系统,用户行为跟踪,架构设计的基本理念及常用的消息和缓存机制。在这个过程中,我们有机会实践R、Mahout、Solr、Elasticsearch、Hadoop、HBase、Hive、Flume、Kafka、Storm等系统。如前所述,本书最大的特色就是,从商业需求出发演变到合理的技术方案和实现,因此根据不同的应用场景、不同的数据集合、不同的进阶难度,我们为读者提供了反复温习和加深印象的机会。
勘误和支持
众所周知,大数据的发展实在是太快了。可能就在你阅读这段文字的同时,又有一项新的技术诞生了,N项技术升级了,M项技术被淘汰了。再加之笔者的水平有限,书中难免会出现一些不够准确或遗漏的地方,恳请读者通过如下的渠道积极建议和斧正,我们很期待能够收到你们的真挚反馈。
QQ:36638279
微信:18616692855
邮箱:s_huang790228@hotmail.com
LinkedIn:https://cn.linkedin.com/in/shuang790228
致谢
首先要感谢上海交通大学和俞勇教授,你们给予我不断学习的机会,带领我进入了大数据的世界。同时,感谢阿里云的高级总监薛贵荣,你的指导让我树立了良好的科研态度。
还要感谢微软亚洲研究院、eBay中国研发中心、沃尔玛1号店、大润发飞牛网和IBM中国研发中心,在这些公司十多年的实战经验让我收获颇丰,也为本书的铸就打下了坚实的基础。
感谢曾经的微软战友陈正、孙建涛、Ling Bao、曾华军、张本宇、沈抖、刘宁、严峻、曹云波、王琼华、康亚滨、胡健、季蕾等,eBay的战友逄伟、王强、王骁、沈丹、Yongzheng Zhang、Catherine Baudin、Alvaro Bolivar、Xiaodi Zhang、吴晓元、周洋、胡文彦、宋荣、刘文、Lily Yu等,沃尔玛1号店的战友韩军、王欣磊、胡茂华、付艳超、张旭强、黄哲铿、沙燕霖、郭占星、聂巍、邵汉成、张珺、胡毅、邱仔松、孙灵飞、凌昱、王善良、廖川、杨平、余迁、周航、吴敏、李峰,熊健等,大润发飞牛网的战友王俊杰、陈俞安、蔡伯璟、陈慧文、夏吉吉、文燕军、杨立生、张飞、代伟、陈静、赵瑜、李航等,IBM的战友李伟、谢欣、周健、马坚、刘钧、唐显莉等。要感谢的同仁太多,如有遗漏敬请谅解,很怀念和你们并肩作战的日子,那段时间让我学习到了很多。
感谢机械工业出版社华章分社的编辑杨绣国(Lisa)老师,感谢你的魄力和远见,在最近的3个月中始终支持我的写作,你的鼓励和帮助引导我顺利完成了全部书稿。也要感谢凌云为我引荐了如此优秀的出版社和编辑。
衷心感谢源码资本合伙人、前金山软件CEO、前微软亚太研发集团CTO张宏江先生,非常荣幸他能在百忙之中抽空为本书作序。也衷心感谢Apache Kylin联合创建者及CEO韩卿先生,饿了么CTO张雪峰先生、 CloudBrain的创始人张本宇先生为本书撰写推荐语。
还要感谢我和太太双方的父母,感谢你们对我写书的理解和支持。
最后我一定要谢谢我的太太Stephanie和宝贝儿子Polaris,为了此书我周末陪伴你们的时间更少了。你们不但没有怨言,而且时时刻刻为我灌输着信心和力量,感谢你们!
谨以此书,献给我最亲爱的家人,以及众多热爱大数据的朋友们。

黄 申
美国,硅谷,2017年3月

上架指导

计算机\程序设计

作者简介

黄申 著:暂无相关简介

推荐序

最近的这几年,我们见证了大数据和人工智能如何推动企业的转型和升级。大数据的获取、处理和运营逐渐融入不同规模企业的日常业务中,并成为它们的创新引擎。之前我们就已经看到Google的广告业务,它背后存在许多大数据的技术作为支撑,因此,它能够比较精确地预测在什么时候给你推荐什么内容的广告。时至今日,这样的大数据技术越来越多地应用到生活中的各个领域,包括电商、金融、旅游、健康,甚至是游戏和娱乐产业。
不过,在利用大数据技术创新的时候,人们往往面临这样的困惑:对于某类技术,如何找到合适的应用场景?反之亦然。所以,无论是在微软还是金山时,我们都非常强调将科研成果转变为实际的产品的过程。在创新的同时,需要找到合理的产品解决方案和定位。本书的作者黄申曾经在微软亚洲研究院工作,从事机器学习相关的研究。之后他加入了eBay中国等多家电子商务公司,对于大数据技术在电商领域的应用有着自己独到的见解。相信本书能够从电商业务的需求出发,解析技术实战的难点,探讨大数据和商业的结合之道,帮助大家打造更多实用型的创新产品。

张宏江先生,源码资本合伙人,前金山软件CEO、前微软亚太研发集团CTO
2017年4月

图书目录

推荐序
前言
引子 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

教学资源推荐
作者: 王珊珊 臧洌 张志航 编著
作者: (美)Y.Daniel Liang 著 阿姆斯特朗亚特兰大州立大学
作者: 陈秋劲
参考读物推荐