page contents

spark系列(一):简介

spark是一种快速、通用、可扩展的大数据分析引擎。spark除了提供核心的api外,为了更方便使用,针对更具体的场景提供了解决方案。spark提供了用于交互查询的spark SQL、流处理spark Streaming、机器学习spark MLlib和图计算spark GraphX。

attachments-2023-03-jxjj7Pdq6406d960b69a6.jpeg

spark是一种快速、通用、可扩展的大数据分析引擎。spark除了提供核心的api外,为了更方便使用,针对更具体的场景提供了解决方案。spark提供了用于交互查询的spark SQL、流处理spark Streaming、机器学习spark MLlib和图计算spark GraphX。
9ddc29ef208e485da798c21d73c6df30~noop.image?_iz=58558&from=article.pc_detail&x-expires=1678774523&x-signature=2%2Bk%2BUi9Ox%2FcprnBI5dl7rnVVGjs%3D

更多相关spark具有如下优点:

与Hadoop提供的Map/Reduce相比,spark速度更快。这得益于其对缓存的充分利用。我们知道Map/Reduce模式下,在shuffle阶段,Map的结果会被写入本地文件中,Reduce时会通过网络去读取文件中的数据。在Reduce任务完成之后,结果又会被写到HDFS中。在一次Map/Reduce任务中,数据会被多次写入到磁盘中。而spark则会充分的利用内存。spark在计算时,会将job划分成几个stage,不存在依赖的stage是可以并行执行的。在stage内部,数据没有超出内存阈值的情况下,是不会写入磁盘的。在不同stage之间的shuffle阶段,spark也会尽量本地化的调度任务,避免数据的移动。


spark同时也具有很好的易用性。spark提供了java、scala和python编程接口,上面我们也看到针对不同的具体场景提供了不同的实现。RDD的设计,简化了学习成本。另外,spark提供了丰富的算子,便于程序的编写。


良好的扩展性。目前支持Standalone、Mesos、Yarn和k8s的调度模式。


spark的大体架构如下:

634c398630504a5c9cf7d2e53e823395~noop.image?_iz=58558&from=article.pc_detail&x-expires=1678774523&x-signature=7XdvxrMOfQ3ci9bHP8%2F45FIKKSY%3D

其中,Driver是用户编写的数据处理逻辑,这个逻辑中包含用户创建的SparkContext。SparkContext是用户逻辑与spark集群主要的交互接口,它会和Cluster Manager交互,包括申请计算资源等。Cluster Manager负责集群的资源管理和调度,现在支持Standalone、Mesos、Yarn和k8s。Work Node是集群中可以执行任务的节点。Excutor是一个Work Node上为某应用启动的一个进程,该进程负责运行任务,并且负责将数据存于内存或者磁盘上。Task是被调度到某个Executor上的计算单元。每个应用都有各自独立的Executor,计算最终在计算节点的Executor中执行。

技术内容咨询欢迎前往并持续关注六星社区了解详情。 

关注下方微信公众号:java圈子,获取价值999元全套java入门到进阶的学习资料以及教程,还有java技术交流群一起交流学习哦。

attachments-2023-03-yn270SGT6406d9b54fa2e.jpg

  • 发表于 2021-12-08 09:33
  • 阅读 ( 483 )
  • 分类:Java开发

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章