zoukankan      html  css  js  c++  java
  • Spark基本原理

    仅作《Spark快速大数据分析》学习笔记

    定义:Spark是一个用来实现 快速通用集群计算平台;(通用的大数据处理引擎;)

    改进了原Hadoop MapReduce处理模型,体现在三方面:

      a. 速度;(内存计算)

      b. 不仅支持批处理,还支持交互式查询(速度快的成果)、流式计算、机器学习、图计算等;(迭代算法)

      c. 丰富的API和易用性;

    Spark组件主要组成:

      

    Spark Core:实现了Spark的核心功能,包含任务调度、内存管理、与存储系统交互、错误恢复等;定义了RDD API;

      RDD:(resilient distributed dataset)弹性分布式数据集,表示分布在多个计算节点上可以平行操作的元素集合;

           通过创建RDD来操作完成 统计计算,这些计算会自动地 在集群上并行进行。 

           Spark主要的编程抽象;

             

        

    Spark SQL:Spark操作结构化数据的程序包;

    Spark Streaming: Spark 提供的对实时数据进行流式计算的组件 ;

    MLlib: 提供常见的机器学习(ML)功能的程序 ;

    GraphX: 是用来操作图(比如社交网络的朋友关系图)的程序库,可以进行并行的图计算; 

    Spark shell:和其他 shell 工具不一样的是,在其他 shell 工具中你只能使用单机的硬盘和内存来操作数据;

           可用来与分布式存储在许多机器的内存或者硬盘上的数据进行交互,并且处理过程的分发由 Spark 自动控制完成;

    动作原理:

      driver program

      executor

      每个 Spark 应用都由一个 驱动器程序(driver program) 来管理。

        a. 驱动器程序包含应用的 main函数;

        b. 并且定义了集群上的 分布式数据集;

        c. 还对这些 分布式数据集应用了相关操作

        Shell环境下 驱动器程序就是 Spark shell 本身,可利用它输入想要运行的操作。 

      驱动器程序通过一个 SparkContext对象 来访问Spark,这个对象代表对计算集群的一个连接;slell启动时会自动创建一个SparkContext对象,变量名为sc;   

    //查看变量 sc 
         >>> sc
         <pyspark.context.SparkContext object at 0x1025b8f90>    

      

      一旦有了SparkContext对象,就可以利用它创建RDD,如sc.textFile("/filename"),然后即可进行各种操作;

      通常操作RDD的相关操作,驱动器程序一般要管理多个执行器(executor)节点;如count()操作,多个节点会统计文件不同的部分;

      

      

  • 相关阅读:
    AJAX 应用 透过 JavaScript 调用 C# 函数
    快速搞懂 SQL Server 的锁定和阻塞
    国际财务报告准则 IFRS 与信息系统
    我的android阅读软件“微读”做最简单的手机阅读软件
    我的android阅读软件“微读”v2.0发布,加入新浪微博的支持
    iphone开发我的新浪微博客户端用户登录等待篇(1.4)
    iphone开发我的新浪微博客户端用户登录自定义弹出窗口篇(1.2)
    自定义实现类似android主界面的滑屏换屏控件
    我的android阅读软件“微读”v2.2又发布,加入微美图、微漫画、微美女阅读
    iphone开发我的新浪微博客户端用户登录OAuth授权认证篇(1.3)
  • 原文地址:https://www.cnblogs.com/mzzcy/p/7106080.html
Copyright © 2011-2022 走看看