搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 优云数智 > 全方位掌握Apache Spark 2.0七步走(一)

全方位掌握Apache Spark 2.0七步走(一)

优云数智 2017-11-30

在这个人人都谈Spark的年代,小数也觉得有必要来发Spark的技术文章,帮助大家从入门到精通地了解和掌握Spark,从概念到编程,深刻体会它的迷人之处:)

Spark七步走,here we go!


一、为何选择Spark


首先,Spark是为了快速处理、易于使用和高级分析而设计的最有效的开源数据处理引擎,拥有来自250多个机构的参与者,其社区也有越来越多的开发者和用户加入。


第二,作为一个为了大规模分布式数据处理设计的通用计算引擎,Spark通过一个统一包含Spark组件的引擎以及API访问库来支持多个工作负载,它支持流行的编程语言,包括Scala、Java、Python和R 。


最后,它可以部署在不同的环境中,从各种数据源读取数据,与无数应用程序交互。




同时,这个统一的计算引擎使得在一个理想的环境下不同负载——ETL,互动查询(Spark SQL),高级分析(Machine Learning),图像处理(GraphX/ GraphFrames)和流(Spark Streaming)——都运行在相同的引擎上。


全方位掌握Apache Spark 2.0七步走(一)


在随后的步骤中,您将得到其中一些组件的一个介绍,但是首先让我们介绍一下它关键概念和术语。


二、Apache Spark的概念、关键术语和关键词


今年6月,KDnuggete发表了《Apache Spark的关键术语解释》(http://www.kdnuggets.com/2016/06/spark-key-terms-explained.html),这是一个非常不错的介绍。下面补充一些Spark的术语词汇表,它们都将经常在本文中出现。


Spark Cluster

在云端或者安装Spark的数据中心预置的一组机器或者节点。那些机器就是Spark workers、Spark Master(在一个独立模式下的集群管理器)和至少一个Spark Driver。


Spark Master

顾名思义,Spark Master JVM在一个独立的部署模式下作为集群的管理器,Spark Works注册它们自己作为集群的一部分。根据部署模式,它作为一个资源管理器,决定在集群的哪台机器发布多少个执行器。


Spark Worker

Spark Worker JVM,在接到来自Spark Master的指令后,代表Spark driver发布执行器。Spark的应用程序,分解为任务单元,被每个Worker的执行器执行。简而言之,Worker的工作是代表Master发布一个执行器。


Spark Executor

它是一个分配好处理器和内存数量的JVM容器, Spark在其上运行它的任务。每个Worker节点通过一个可配置的核心(或线程) 发布自己的Spark执行器。除了执行Spark任务,每个执行器还在内存中存储和缓存数据分区。


Spark Driver

一旦它从Spark Master得到集群中所有的Worker的信息,驱动程序就为每个Worker的执行器分配Spark的任务。Drive也从每个执行器的任务中获得计算结果。


全方位掌握Apache Spark 2.0七步走(一)


SparkSession和SparkContext


如图表所示,SparkContext是访问所有Spark功能的渠道;在每个JVM只有一个SparkContext。Spark驱动程序使用它连接到集群管理器进行通信并提交Spark工作。它允许您配置Spark参数。通过SparkContext,驱动可以实例化其他contexts,例如SQLContext、HiveContext、StreamingContext。


使用Apache Spark 2.0,SparkSession可以通过一个统一的入口点访问所有提到的Spark的功能,同时可以更简单地访问Spark功能,以及贯穿底层context来操作数据。

全方位掌握Apache Spark 2.0七步走(一)

Spark部署模式


Spark支持四个集群部署模式,对应运行在Spark集群里的Spark的组件,每个都有自己的特点。所有模式中,本地模式是在一个单独的主机上运行,是目前为止最简单的。


作为初级或中级开发人员是不需要知道这个复杂表格的,在这里供您参考。此外,本文的第五步会深入介绍Spark体系结构的各个方面。


全方位掌握Apache Spark 2.0七步走(一)


Spark的Apps, Jobs, Stages and Tasks


一个Spark应用通常包括了数个Spark的操作,可以分解为数据集上的transformation或者action,来使用Spark的RDD、数据框或者数据集。举例来说,在Spark应用,如果你调用一个action,这个action会产生一个job。一个job会分解成单一或者多个stage;stage会进一步切分成单独的task;task是执行单元,Spark driver的调度会将其运送到Spark worker节点上的Spark执行器进行执行。通常多task会并行跑在同一个执行器上,在内存的分区数据集上分别进行单元进程。




文章来源:http://www.kdnuggets.com/2016/09/7-steps-mastering-apache-spark.html


来个招聘



版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《全方位掌握Apache Spark 2.0七步走(一)》的版权归原作者「数人云」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注数人云微信公众号

数人云微信公众号:dmesos

数人云

手机扫描上方二维码即可关注数人云微信公众号

数人云最新文章

精品公众号随机推荐

上一篇 >>

c#异步编程-线程