上QQ阅读APP看书,第一时间看更新
第2章 设计理念与基本架构
“若夫乘天地之正,而御六气之辩,以游无穷者,彼且恶乎待哉?”
——《庄子·逍遥游》
本章导读
随着近十年互联网的迅猛发展,越来越多的人融入了互联网——利用搜索引擎查询词条或问题;社交圈子从现实搬到了Facebook、Twitter、微信等社交平台上;女孩子们现在少了逛街,多了在各大电商平台上的购买;喜欢棋牌的人能够在对战平台上找到世界各地的玩家对弈。在国内随着网民数量的持续增加,互联网公司的数据在体量、产生速度、多样性等方面呈现出巨大的变化。
互联网产生的数据相比传统软件产生的数据而言,有着数据挖掘的巨大潜力。通过对数据的挖掘,可以统计出PV、UV,计算出不同设备与注册率、促销与下单率之间的关系,甚至构建热点分析、人群画像等算法模型,产生一系列报表、图形、离线统计、实时计算的产品。互联网公司如果能有效利用这些数据,将对决策和战略发展起到至关重要的作用。
在大数据的大势之下,Hadoop、Spark、Flink、Storm、Dremel、Impala、Tez等一系列大数据技术如雨后春笋般不断涌现。工程师们正在使用这些工具摸索前行。
上一章介绍了Spark运行环境和源码阅读环境的搭建,为读者学习Spark做好准备。本章首先从Spark产生的背景开始,介绍Spark的主要特点、基本概念、版本变迁,然后简要说明Spark的主要模块和编程模型。最后从Spark的设计理念和基本架构入手,使读者能够对Spark有一个宏观的认识,为之后的内容打好基础。