Spark工作原理,从最基础的开始了解

       大数据作为一门新兴的科技,其所包含的知识相对比较驳杂。所以学习起来并不像其他IT技术那么的统一,但是与其他IT技术一样的是学习过程都需要循序渐进、步步为营。大数据中的spark无疑是求学者学习的重点,所以,我们不妨从最基础的开始了解,充分了解spark的工作原理。


       首先,关于 Spark基本工作原理,我们可以通过下图来理解程序入口的客户端、集群处理流程、读取数据的来源、最终计算结果何去何从等问题。

       第一、客户端

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

       第二、读取数据

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

       第三、Spark分布式集群:

       Spark集群是一种分布式计算、是一种迭代式计算、是一种基于内存计算。分布式计算是Spark最基本的特征,计算时候数据会分布存放到各个集群节点,来并行分布式计算。如图的第一个操作map,是对于节点1、2、3上面的数据进行map算子操作,处理后的数据可能会转移到其他节点的内存中,这里假设到了4、5、6节点,处理后的数据有可能多或是变少,这个需要看我们具体的处理方式。第二个操作reduce,是将map处理后的数据再次进行处理。这也就得到Spark是一种迭代式计算模型,一次计算逻辑中可以分为N个阶段,上一个阶段结果数据成为了下一个阶段的输入数据,这样就不只是想mapreduce计算一样了,只有两个阶段map和reduce,就结束一个job的运行,必须得落地到HDFS。而Spark在各个阶段计算转换中一直保持基于内存迭代式计算,所以Spark相对于MapReduce来说计算模型可以提供更加强大的计算逻辑功能。

       第四、结果数据输出:

       这里我们只简单的罗列几个输出方式,基于Hadoop的HDFS、Hive或是HBase;MySQL等DB数据;或是直接输出返回给客户端。

       对于spark的简答讲解就分析到这里,下面我们不妨给众多求学者一个学习的建议,通过以下几个简单的步骤,或许能够让你更加快速的学懂spark。

       第一阶段:熟练的掌握Scala语言

       第二阶段:精通Spark平台本身提供给开发者API

       第三阶段:深入Spark内核。通过源码掌握Spark的任务提交过程;掌握Spark集群的任务调度

       第四阶级:掌握基于Spark上的核心框架的使用

       第五阶级:做商业级别的Spark项目

       大数据的快速发展正在影响着社会中的各个场景,而且,大数据在企业中所创造的价值越来越多,我们不难发现未来大数据领域的人才稀缺程度还将不断加剧,所以,如果你想要赶上这个DT时代,不妨从现在开始学习。

本文转自: 海牛学院

猜你喜欢

转载自blog.csdn.net/hainiubuluo/article/details/81064973