新書推薦:
《
股票大作手回忆录
》
售價:NT$
254.0
《
秩序四千年:人类如何运用法律缔造文明
》
售價:NT$
704.0
《
民法典1000问
》
售價:NT$
454.0
《
国术健身 易筋经
》
售價:NT$
152.0
《
古罗马800年
》
售價:NT$
857.0
《
权力与相互依赖(第四版)(中译本修订版)
》
售價:NT$
658.0
《
写出心灵深处的故事:踏上疗愈之旅(修订版)(创意写作书系)
》
售價:NT$
301.0
《
控制权视角下的家族企业管理与传承
》
售價:NT$
398.0
|
編輯推薦: |
技术畅销书《大型网站技术架构:核心原理与案例分析》作者李智慧老师的又一本力作。本书沿续了他一贯的写作风格:用简单易懂的表达方式,将复杂的技术体系一一拆解、融入有趣的讲解当中,剖析学习中的各个疑难点,直接领略技术的本质,不走弯路!
本书既适合零基础学习大数据技术入门使用,也适合有经验的工程师,了解大数据技术的思路,掌握心法、举一反三、更好地运用于实践工作。
|
內容簡介: |
在人工智能时代,不论是否从事大数据开发,掌握大数据的原理和架构早已成为每个工程师的技能。本书结合作者多年大数据开发、应用的经验,深入浅出地阐述大数据的完整知识体系,帮助读者从不同视角找到大数据方向的突破口,真正从普通开发者晋升为拥有大数据思维并能解决复杂问题的技术专家。
本书一共分为7章,分别是大数据的前世今生与应用场景、Hadoop大数据原理与架构、大数据生态体系主要产品原理与架构、大数据开发实践、大数据平台与系统集成、大数据分析与运营、大数据算法与机器学习。
本书既可作为初学者了解大数据技术的入门指南,也可作为有一定经验的工程师深入理解大数据思维的有益参考。
|
關於作者: |
李智慧,同程旅行交通首席架构师。曾任阿里巴巴、Intel架构师,长期从事分布式系统与大数据开发,Apache Spark 代码贡献者,腾讯云 TVP,著有畅销书《大型网站技术架构:核心原理与案例分析》。
|
目錄:
|
1 大数据的前世今生与应用场景 1
大数据的前世今生:大数据简史与大数据生态体系概述 1
从搜索引擎到人工智能:大数据应用发展史 6
大数据应用的搜索引擎时代 6
大数据应用的数据仓库时代 7
大数据应用的数据挖掘时代 7
大数据应用的机器学习时代 8
数据驱动一切:大数据全领域应用场景分析 10
大数据在医疗健康领域的应用 10
大数据在社交媒体领域的应用 12
大数据在金融领域的应用 13
大数据在新零售领域的应用 13
大数据在交通领域的应用 13
2 Hadoop大数据原理与架构 15
移动计算比移动数据更划算 16
从RAID看垂直伸缩到水平伸缩的演化 19
新技术层出不穷,HDFS依然是存储的王者 23
为什么说MapReduce既是编程模型又是计算框架 29
MapReduce如何让数据完成一次旅行 33
MapReduce作业启动和运行机制 34
MapReduce数据合并与连接机制 37
为什么把Yarn称为资源调度框架 39
程序员应该如何学好大数据技术 44
3 大数据生态体系主要产品原理与架构 47
Hive是如何让MapReduce实现SQL操作的 47
用MapReduce实现SQL数据分析的原理 48
Hive的架构 49
Hive如何实现join操作 51
人们并没有觉得MapReduce速度慢,直到Spark出现 53
同样的本质,为何Spark可以更高效 57
Spark的计算阶段 57
Spark的作业管理 61
Spark的执行过程 62
BigTable的开源实现:HBase 63
HBase可伸缩架构 64
HBase可扩展数据模型 65
HBase的高性能存储 66
流式计算的代表:Storm、Spark Streaming、Flink 68
Storm 68
Spark Streaming 70
Flink 71
ZooKeeper是如何保证数据一致性的 74
分布式一致性原理 75
Paxos算法与ZooKeeper架构 76
大数据技术应用场景分析 80
4 大数据开发实践 82
如何自己开发一个大数据SQL引擎 83
Panthera架构 83
Panthera的SQL语法转换 84
比如这条SQL 85
Panthera程序设计 85
Spark的性能优化案例分析 89
Apache开源社区的组织和参与方式 90
软件性能优化 91
大数据开发的性能优化 91
Spark性能优化 92
案例1:Spark任务文件初始化调优 95
案例2:Spark任务调度优化 98
案例3:Spark应用配置优化 102
案例4:操作系统配置优化 102
案例5:硬件优化 103
大数据基准测试可以带来什么好处 105
大数据基准测试的应用 105
大数据基准测试工具HiBench 107
从大数据性能测试工具Dew看如何快速开发大数据系统 109
Dew设计与开发 110
Akka的原理与应用 112
大数据开发实践的启示 115
5 大数据平台与系统集成 117
大数据平台 = 互联网产品 大数据产品 117
数据采集 119
数据处理 119
数据输出与展示 119
大数据任务调度 120
大数据平台Lamda架构 120
数据在大数据平台中的流转 121
大数据从哪里来 123
从数据库导入 123
从日志文件导入 124
前端埋点采集 126
爬虫系统 128
数据的熵 128
知名大厂如何搭建大数据平台 129
淘宝大数据平台 129
美团大数据平台 130
滴滴大数据平台 131
学架构就是学架构模式 133
盘点可供中小企业参考的商业大数据平台 134
大数据解决方案提供商 134
大数据云计算服务商 136
大数据SaaS服务商 138
大数据开放平台 138
当大数据遇上物联网 139
物联网应用场景分析 139
物联网平台架构 140
大数据技术在物联网中的应用 141
6 大数据分析与运营 144
老板想要监控什么运营指标 144
互联网运营的常用数据指标 145
数据可视化图表与数据监控 147
一个用户新增下降的数据分析案例 150
数据分析案例 151
数据分析方法 154
AB测试与灰度发布必知必会 156
A/B测试的过程 157
A/B测试的系统架构 158
灰度发布 159
如何利用大数据成为“增长黑客” 160
Hotmail的增长黑客故事 161
AARRR用户增长模型 161
利用大数据增长用户数量 163
为什么说数据驱动运营 164
7 大数据算法与机器学习 168
如何对数据进行分类和预测 168
k近邻分类算法 169
数据的距离 170
文本的特征值 171
贝叶斯分类 172
如何发掘数据的关系 174
搜索排序 174
关联分析 177
聚类 179
如何预测用户的喜好 181
基于人口统计的推荐 182
基于商品属性的推荐 183
基于用户的协同过滤推荐 184
基于商品的协同过滤推荐 185
机器学习的数学原理是什么 186
样本 187
模型 187
算法 188
为什么学机器学习要学数学 189
从感知机到神经网络 190
感知机 191
神经网络 192
|
內容試閱:
|
为什么说每个软件工程师都应该懂大数据
2012年的时候,我从阿里巴巴跳槽到Intel做大数据开发。当时很多人不理解,我为什么会从如日中天的互联网公司跳槽到“传统”的IT公司。
我是这样考虑的:软件编程技术出现已经半个多世纪了,其核心价值就是把现实世界的业务操作搬到计算机上,通过计算机软件和网络进行业务和数据处理。我们常见的软件系统,不管是电子商务还是库存管理,不管是搜索引擎还是收银终端,都是如此。这一点价值巨大,可以成百上千倍地提高我们的生活和工作效率。
时至今日,能用计算机软件提高效率的地方几乎已经被全部发掘过了,计算机软件成为人们日常生活的品,人们已经习惯了计算机软件的存在。在这种情况下,如果想让软件再成百上千倍地提高我们的生活和工作效率,使用以前的那套“分析用户需求和业务场景,进行软件设计和开发”的做法显然是不可能的了。
那如何走出这个困局呢?我觉得,要想让计算机软件(包括互联网应用)继续提高我们的生活工作效率,就必须发掘出用户自己都没有发现的需求,必须洞悉用户自己都不了解的自己。
计算机软件不应该再像以前那样,等用户输入操作,然后根据编写好的逻辑执行用户的操作,而是应该能够预测用户的期望,在用户还没想好要做什么的情况下,主动提供操作建议和选项,提醒用户应该做什么。
这听起来很科幻,但实际上已经出现了,那就是大数据技术和机器学习技术,也就是我们都耳熟能详的人工智能技术。
现在回过头来看,我当时的判断是正确的。就在我加入Intel从事Hadoop开源软件开发的第二年,也就是2013年,大数据技术开始火热起来,从BAT到传统的商业公司,纷纷在自己的软件系统中大规模使用大数据技术,有的公司甚至称自己为大数据公司,而2013年后来也被称为“大数据元年”。
又过了3年,也就是2016年,Google的AlphaGo横空出世,让我们见识到了“大数据 机器学习”的巨大威力。
所以,我同意这样一种说法:在未来,软件开发将是“面向AI编程”,软件的核心业务逻辑和价值将围绕机器学习的结果(也就是AI)展开,软件工程师的工作就是考虑如何将机器学习的结果更好地呈现出来,如何更好地实现人和AI的交互。
我曾经跟一个同学讨论这个观点,他认同面向AI编程,但是他认为:这并不意味着我一定要懂AI,也不一定要懂大数据和机器学习,我只要懂业务,理解机器学习算出的结果就可以了。
真的是这样吗?只需要懂业务就能在“面向AI编程”的时代胜任软件开发的工作吗?
在阿西莫夫的科幻经典巨作《银河帝国:基地》中,描述了一个场景。
在银河系,随着战争的蔓延,很多星球的科技逐渐退步,到后来,他们虽然还有核电站等高科技产品,但是已经不知道它们是如何运作的了。而在银河系的边缘,有一颗小星球,在大战爆发前从银河系各处转移了大量的科技文献,这颗小星球没有加入战争,并将科学技术一直传承了下去。
后来,当其他星球的科技产品出现问题的时候,就会向这颗小星球求援,小星球会派工程师前去维修。但是,他们并不管工程师叫“工程师”,而是叫“僧侣”;也不管核电站叫“核电站”,而是叫“圣殿”;维修也不叫“维修”,而是叫“祈祷”。他们的说法是:因为这颗星球上的人做了不该做的事,比如发动战争、破坏环境等,触怒了神,所以神归罪下来,让他们失去能源,如果想恢复能源,就必须纠正自己的错误行为并向神祈祷赎罪。所以,当工程师进入核电站维修的时候,整个星球的人都跪下祈祷,当电力恢复的时候,大家纷纷称颂神的伟大。
你看,科学和宗教并不是互斥的,科学也可以成为宗教,当人们面对自己不懂的东西的时候,会倾向于用宗教的原理去解释。
如果未来是面向AI编程的,希望软件工程师不要把AI当作什么的东西。当机器学习结果出现问题的时候,我们既不要陷入某种不可知的“玄学”之中,也不要无谓地抱怨什么“人工智障”,而是应该积极参与到问题的讨论、分析和解决中去。这也是我的观点,即使自己不做与大数据和机器学习相关的开发,每个程序员也应该懂大数据和机器学习。
将来,数据会逐渐成为公司的核心资产和主要竞争力,公司的业务展开和产品进化也会朝着如何利用好数据价值的方向发展。如果你不懂大数据和机器学习,可能连基本的产品逻辑和商业意图都搞不清楚。如果只懂编程,那么你的生存空间会越来越窄,发展也会处处受限。
如果说大数据技术和应用是一个技术的“殿堂”,那么希望本书不仅可以带你找到进入大数据“殿堂”的钥匙,也能透视“殿堂”里的结构、装饰、家具,告诉你为什么用这些元素可以构建恢弘的“殿堂”,以及如何更好地利用这个“殿堂”的空间与设施,而不是让你进入“殿堂”看到一张床就舒服地躺下,错失了更美的风景。
学习大数据好的时间是十年前,其次就是现在!
|
|