大数据之谜Spark基础篇,Spark基本工作原理讲解

Spark基本工作原理,这里我们从宏观讲解Spark的基本工作原理,帮助你全面了解布局,站在一个高度去理解每个算子任务的操作原理,才能有效的把握变化中的状态,通过实际原理图来说明,来理解程序入口的客户端、集群处理流程、读取数据的来源、最终计算结果何去何从等问题。

分析:根据上原理图我们可以从四个部分来理解

1、客户端:

客户端也就是专业们常说的Client端,这里的是表示我们在本地编写Spark程序,然后必须找一个能够连接Spark集群,并提交程序进行运行的机器。

2、读取数据:

在准备运行Spark程序的同时,是不是也要有数据来源进行处理的呢,这里我们介绍几种常见的读取数据来源,是Hadoop集群中的HDFS、Hive也有可能是搭建在集群上的HBase;还有MySQL等DB数据库;或者是在程序中我们设置的集合数据。

3、Spark分布式集群:

Spark集群是一种分布式计算、是一种迭代式计算、是一种基于内存计算。

分布式计算,这是Spark最基本的特征,计算时候数据会分布存放到各个集群节点,来并行分布式计算。如图的第一个操作map,是对于节点1、2、3上面的数据进行map算子操作,处理后的数据可能会转移到其他节点的内存中,这里假设到了4、5、6节点,处理后的数据有可能多或是变少,这个需要看我们具体的处理方式。第二个操作reduce,是将map处理后的数据再次进行处理。

这也就得到Spark是一种迭代式计算模型,一次计算逻辑中可以分为N个阶段,上一个阶段结果数据成为了下一个阶段的输入数据,这样就不只是想mapreduce计算一样了,只有两个阶段map和reduce,就结束一个job的运行,必须得落地到HDFS。而Spark在各个阶段计算转换中一直保持基于内存迭代式计算,所以Spark相对于MapReduce来说计算模型可以提供更加强大的计算逻辑功能。

4、结果数据输出:

这里我们介绍几种输出方式,基于Hadoop的HDFS、Hive或是HBase;MySQL等DB数据;或是直接输出返回给客户端。

上述的运行情况、读取数据或是数据输出等各种方式后续都会进行详细的讲解,学习需要循序渐进,理解每一层次的技术点。如果我们一次就直接把Spark的运行原理底层拿出来讲解、对于有基础的朋友是很乐意也比较容易接受吸收。但是对于新人不然,希望理解,通过这Spark基础的数据流程运行原理就能很容易理解一个Spark的job任务大致的过程。

Spark是基于RDD计算的模型框架,下一节我们将对RDD进一步的讲解,了解Spark最为核心的模型。

希望对你我他有用

有不足之处请多多指教

欢迎留言评论!!!

欢迎关注大数据之谜

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180408A0I63500?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券