描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121342592
第1章 大数据平台整体建设思想 1
1.1 什么是大数据平台 1
1.2 大数据平台的建设目标 3
1.2.1 别人的大数据平台是怎样的 3
1.2.2 和业内领先的大数据平台的差距 4
1.2.3 大数据平台建设目标小结 6
1.3 大数据平台的建设指导方针 6
1.3.1 组件工具化 7
1.3.2 工具平台化 8
1.3.3 平台服务化 9
1.3.4 平台产品化 10
1.3.5 对中小公司大数据平台的适用性 11
1.4 大数据平台的两种建设路径 12
1.4.1 垂直业务领域一站到底的建设方式 13
1.4.2 通用组件建设,组合支持业务的方式 13
1.4.3 从蘑菇街平台的实践经验对比两种建设路径 14
1.4.4 两种建设路径的对比小结 16
第2章 服务意识和产品思想的培养 17
2.1 明确大数据平台服务能力的评估标准 17
2.1.1 大数据平台团队的职能定位 18
2.1.2 打通上下游系统和业务流程的能力 18
2.2 满足用户真正的需求 19
2.3 认清服务的代价,做好心理建设 20
2.4 寻找解决服务代价问题的方案 23
2.4.1 路线选择带来的代价问题 23
2.4.2 如何降低服务自身的代价 25
2.5 大数据平台的产品化思想 29
2.5.1 从用户体验的角度谈产品设计 31
2.5.2 从价值和利益的角度谈产品思维 36
2.6 小结 38
第3章 工作流(作业)调度系统 39
3.1 作业调度系统基础理论 40
3.1.1 调度系统分类 40
3.1.2 工作流调度系统的两种心法流派 45
3.1.3 工作流调度系统功能特性详解 49
3.2 Jarvis调度系统产品开发实践 55
3.2.1 需求定位分析 55
3.2.2 具体功能目标的详细分析和实践 57
3.2.3 第二代Jarvis现状和将来 75
3.3 小结 79
第4章 集成开发环境门户建设 81
4.1 集成开发环境的功能定位 82
4.1.1 集成开发环境的整体服务思路 83
4.1.2 集成开发环境的具体产品建设目标 86
4.1.3 小结 93
4.2 开发平台测试环境建设 94
4.2.1 问题背景 94
4.2.2 系统功能性测试环境 95
4.2.3 数据业务类测试环境 96
4.2.4 小结 100
第5章 数据采集、传输、交换、同步服务 101
5.1 数据交换服务场景和常见开源方案 102
5.1.1 大数据平台数据交换服务业务场景 102
5.1.2 常见数据交换服务解决方案介绍 103
5.2 数据交换服务具体产品实践 110
5.2.1 数据交换服务底层组件 110
5.2.2 数据交换服务管控平台 113
5.2.3 蘑菇街数据交换服务的实践现状和未来改进计划 118
5.3 用户行为链路分析之日志埋点采集跟踪方案实践 120
5.3.1 记日志有什么难的 120
5.3.2 蘑菇街的用户行为日志采集方案实践 122
5.3.3 小结 129
第6章 数据可视化平台 130
6.1 什么是数据可视化平台 130
6.1.1 数据可视化平台名词定义 131
6.1.2 已经有了那么多商业BI系统,为什么还要造轮子 132
6.2 数据可视化平台产品实践 134
6.2.1 可视化平台产品定位和需求分析 135
6.2.2 具体产品功能需求实践详解 136
6.2.3 将来的改进目标 146
6.2.4 产品实践小结 148
第7章 安全与权限管控 149
7.1 权限管理的目标是什么 149
7.1.1 适度安全,降低人为风险 150
7.1.2 隔离环境,提高工作效率 151
7.1.3 权责明晰,规范业务流程 152
7.1.4 权限管理目标小结 153
7.2 如何解决安全和便利的矛盾 153
7.2.1 安全和便利天生矛盾 153
7.2.2 改变角度,转移目标 154
7.2.3 把握尺度 155
7.2.4 可能的变通措施 157
7.2.5 思想小结 163
7.3 权限管控系统产品方案和技术分析 163
7.3.1 常见开源方案 164
7.3.2 Kerberos 165
7.3.3 Sentry和Ranger 168
7.3.4 Knox 169
7.3.5 开源项目中常见的权限模型概念 169
7.4 基于开发平台服务入口的权限管控方案 171
7.4.1 权限管控方案实践 171
7.4.2 底层统一权限管控和平台边界权限管控方案对比 173
第8章 数据质量管理 175
8.1 元数据管理平台 176
8.1.1 元数据管理平台管理什么 176
8.1.2 元数据管理相关系统方案介绍 180
8.1.3 元数据管理系统工程实践 183
8.2 DQC数据质量中心 185
8.2.1 DQC数据质量中心业界方案 186
8.2.2 DQC数据质量系统建设实践 188
8.3 数据质量管理小结 193
第9章 大数据集群迁移经验谈 195
9.1 集群迁移都要面对哪些麻烦事 196
9.1.1 集群和机房外部环境问题 196
9.1.2 平台自身组件和服务依赖问题 196
9.1.3 业务模式和沟通配合问题 197
9.1.4 业务逻辑和数据正确性问题 198
9.2 集群搬迁方案的总体目标、原则、流程 199
9.3 一些具体问题的分析和实践 201
9.3.1 如何保证正确性 201
9.3.2 集群数据同步拷贝方案 205
9.3.3 各种无法双跑的业务场景梳理 207
9.4 小结 208
第10章 谈谈大数据码农的职业发展问题 210
10.1 如何成为一名糟糕的大数据平台工程师 211
10.1.1 我是小白我怕谁 211
10.1.2 敏而好学,不耻下问 212
10.1.3 效率优先,中文至上 213
10.1.4 流行的就是好的 213
10.1.5 我们的征途,是星辰大海 215
10.1.6 书中自有颜如玉,热衷阅读代码 216
10.1.7 谜之问题的谜之解决方式 218
10.1.8 勤奋好学,但是回头即忘 220
10.1.9 小结 221
10.2 职业选择和我们早晚要面对的中年危机问题 222
10.2.1 中年危机,要从娃娃抓起 222
10.2.2 中年危机之抗焦虑指南 223
10.2.3 如何才能获得自由 225
10.2.4 案例 230
10.2.5 小结 233
推荐序一
认识作者是在我加入蘑菇街以后,我更习惯叫他“天火(作者在蘑菇街的花名)老师”。天火老师当时就在做蘑菇街大数据平台的建设工作。知道天火老师之前在Intel是大数据开源社区的积极贡献者,也参与过不少大数据平台开源系统的开发,经验非常丰富。而一线实践者对自己经验的总结,则是非常宝贵的,因为在计算机的技术领域,只有自己经历过,才能积累经验和能力,所以这样的作品,非常值得读者一看。
大数据这个词,看起来这两年没有早几年的时候时髦和流行。但是现在非常流行的人工智能技术首先就离不开大数据的支撑,而之所以现在大家不再像早几年那样张口闭口大数据,也是因为大数据已经逐渐变成普遍存在且对我们很有帮助的一个事物了。所以系统化地去介绍大数据平台的基础架构,可以帮助更多的人来了解大数据平台。
作者在我们公司内网也会经常发表一些逻辑清晰、内容丰满的文章,所以当看到这本书稿的时候,我一点也不惊讶。本书的构成,作者在前言中已经介绍得很清晰了,内容可以说非常全面。而看到这些章节,都能让我想到在和天火老师工作中聊到和学习到的点点滴滴。而且我深深地觉得,天火老师确实是把自己工作中及业余时间在大数据平台领域的经验都毫无保留地贡献给了读者。而令我没有想到的是,本以为只是一本纯粹谈大数据平台技术的专业书,结果在后一章作者谈到了大数据工程师的成长和发展的问题,这让我觉得作者真的很有心。当年我在写自己的书的时候,完全不会想到可以谈一下相关从业人员的成长和发展,而实际上,这也确实是很多从业人员关心的内容。作为经验丰富的过来人,我相信他的建议可以给广大读者以帮助。
–曾宪杰 美丽联合集团CTO 《大型网站系统与Java中间件实践》作者
推荐序二
“知道一个概念和真正懂得这个概念有很大的区别。”经历过复杂系统搭建的人往往有切肤之痛——系统建设的难点不在于组装多少时髦组件,而在于对技术和产品本质的理解,以及对公司文化、业务特点、团队组成等一系列真实世界问题的认知、思考和权衡,而建设大数据平台的挑战和迷人之处往往也就在于此。
本书是中文技术世界里少有的对大数据平台建设思想进行如此系统阐述的书籍,读起来让人酣畅淋漓。这样带有思考结晶的书,真心值得推荐给每一位参与大数据平台建设的同学。
–郭威 51信用卡CTO
前 言
Do the right thing first, then do the thing right ——先做正确的事,再把事情做对。
本书的目标定位
市面上介绍大数据具体技术组件的书很多,既有像《Hadoop权威指南》这种介绍Hadoop生态系中主要的几种存储计算组件的原理和使用的经典入门书籍,也有各种针对单一组件,譬如HBase/Hive/Spark/Storm,介绍其架构和代码实现的书籍。
但这些书籍多半是从各个组件自身内部技术实现的微观角度来展开内容,告诉读者的更多是怎么实现和怎么使用。很少有书籍从需求规划的角度来探讨该做什么和为什么要做的话题,而从大数据整体平台建设,以及产品和服务的宏观角度入手的书籍,就更加少了。
笔者从事大数据相关领域的工作,是从加入Intel开源技术中心为Hadoop社区贡献代码开始的,其间参与过Hadoop、HBase、Phoenix、Tachyon、Spark等相关项目的改进工作。大约三四年前,为了更贴近大数据的实际工作应用场景,笔者来到了蘑菇街,开始带领蘑菇街的大数据基础架构团队,构建体系化、服务化的大数据开发平台。
在几年的大数据开发平台建设过程中,笔者深切地体会到它与之前自己所从事的单个具体大数据开源项目组件的开发工作有着很大的不同。不同之处不在于具体的技术细节实现方面,而在于更加软性的目标、方向、思路、功能规划和产品实现方面。
在单个具体组件的开发工作中,特别是在笔者早年所处的开源项目开发环境中,开发人员大多时候是在一个问题非常明确、环境相对简单的场景下工作。比如,修复一个Bug、提升某个环节的性能、拓展一个具体的功能,开发人员权衡更多的是在单一系统内部,各种实现方案对性能和稳定性的影响等。
而对于大数据开发平台的建设工作来说,具体组件的相关实现工作固然也很需要,但整体解决方案的权衡把握才是更加关键也更加困难的地方。对于组件的实现,社区往往有比较成熟的基础可供借鉴,即使暂时没有,它所需要解决的问题和目标通常也比较客观和标准。而平台构建和整体服务解决方案相对来说就没有太多的现成经验可供借鉴,答案本身往往也没有的好坏对错的衡量标准。有时候,甚至连需要解决的问题是什么,该往哪个方向走,都未必有明确的答案。更多的时候,平台建设者需要结合实际的业务场景和用户需求,不仅从技术架构,更要从代价、收益、业务价值、易用性和可维护性等众多角度进行综合评估和取舍,不仅需要纵向地在一个系统内部思考问题,还要横向地在多个系统之间权衡比较。
所以,平台建设工作往往更需要开发人员的实践经验积累,需要培养跳出现象看需求本质的习惯和思维能力。这些习惯和能力显然不是一两天就能够快速培养起来的,也不是简单通过看代码就能够领会的。但如果能有更多的他人经验总结和实践案例供学习参考,相信上手的速度可以加快很多。
笔者在开始构建大数据开发平台的工作之初,也面临着同样的问题。希望能找到这样的指导性资料和文档来加速学习,提高工作效率。但现实中能找到的书籍更多的是偏“务实”的技术细节介绍和分析的书籍,几乎没有书籍集中讨论笔者想寻找的内容,而且内容多半零散分布在各类博文、项目Wiki、会议分享之类的材料中,需要自行在实践中不断总结和归纳。
正因为对这类文档的缺乏深有体会,笔者从2017年开始在自己的公众号上,结合自己几年来平台建设的实践经验总结,开始撰写一些“务虚”的文章,希望能够给一些入行不久,同样面临上述问题困扰的同行一些经验参考,本书是对这些文章进行整理和总结的成果。希望能够系统化地介绍一下大数据开发平台服务构建的整体思路、目标、方针和可能的解决方案,终目的不是告诉读者具体应该怎么做,而是期望起到引导方向、启发思路的作用,毕竟问题的解决方案不止一种,选择正确的问题去解决才是重要的。欢迎读者能就本书的内容和笔者进行更多的交流探讨。
本书内容简介
本书的内容大致可以分为三部分。
工欲善其事,必先利其器。要想建设好大数据开发平台,首先要做好架构者和开发者自身的思想建设工作。部分由前两章组成,探讨大数据平台的整体建设思路和目标,以及开发者如何培养正确的产品和服务意识。
第二部分具体介绍大数据开发平台的各种核心组件。在这一部分,笔者不会详细介绍Hadoop、Hive、Spark等相对成熟、标准的基本存储计算组件,深入了解这些组件更好的方式,是去阅读的官方文档。
笔者会重点介绍各种并没有标准或尚未足够成熟的解决方案,从开发平台建设的角度来说,它们都是每个成熟的开发平台必不可少的核心组件,如工作流调度系统、集成开发环境、元数据管理系统、数据交换服务、数据可视化服务、数据质量管理服务、测试环境的建设等。
介绍这些系统和服务的重点,也不在于对某个具体实现方案的详细代码进行解析,大多首先介绍它们背后的基础原理和背景知识,然后从需求和功能定位的角度,分析各种实现方案的目标出发点,以及各种方案的优缺点,后再结合蘑菇街自身的实践经验,介绍一下蘑菇街在这些组件上具体的功能需求分析、产品目标定位,以及一些经验教训和将来的改进方向。目的还是让读者有一个完整的感性体验,进而找到适合自己的解决方案,而非对我们的方案照搬照做,那样就违背笔者撰写本书的初衷了。
第三部分由后两章组成,其中第9章是蘑菇街大数据平台的跨机房迁移实践经验分享总结,对于业务正常发展的公司团队来说,这可能是迟早要遇上的问题,只是具体形式和规模不同而已。
第10章则是从大数据平台开发人员自身的能力建设、职业规划等角度入手,宽泛地谈谈工作乃至生活中会面对的价值取舍、方向选择,以及做事的行为准则、方式方法等问题。不敢上升到人生观、价值观的高度,更多的是就笔者十多年工作经历的一点个人感悟,以及对一些刚踏入工作不久的同学身上常见问题和困扰的一些观察体会,与大家一起交流探讨一下。
It's never wrong to do the right thing ——做正确的事永远不会有错。希望本书能够给各位读者带来一些有益的启发,以在大数据平台开发领域,去自主思考和选择正确的道路,去探寻自己的答案,哪怕后全盘推翻了笔者在本书中的相关经验总结,只要触发了这些动作,那笔者的目标也就算达到了。
评论
还没有评论。