大数据学习笔记之三十 Spark介绍之一

Spark简介


  主要用来加快数据分析的运行和读写速度


  基于MapReduce算法实现的分布式计算,在拥有Hadoop MapReduce所有优点的基础上,其任务的中间结果还可以保存在内存中,查询速度快


  处理迭代算法(机器学习、图挖掘算法)和交互式数据挖掘算法方面具有较大优势


  核心概念是RDD,弹性分布式数据集


   弹性,在计算过程中,当遇到内存不足时,它可以与硬盘进行数据交换,虽然在某种程度上程序要降低性能,但可以保证计算的顺利进行


   分布式的,它可以分布在多台机器上进行并行计算


   表示已分区、不可改变的能够被并行操作的数据集合


   RDD数据集的操作结束都可以存储至内存,下一个操作内容从内存中读取


   不同的数据格式对应不同的RDD


 BDAS


  大数据时代数据处理目标


   通过对历史数据低延时交互式处理,从而更快地作出决策,例如一个站点缓慢的原因


   通过对流式数据的快速处理,从而可以作出实时决策,例如实时监测并阻止蠕虫


   通过对复杂数据的处理,从而作出更好、更准确的决策,例如异常检测、趋势分析等


  常见的开源分析栈


   主要关注保存在磁盘上的大型数据集,虽然在批处理上具有较多的优化,但处理速度相对较慢


  目标是将批处理、交互式处理和流处理在一个堆栈中实现,能够比较容易地开发复杂的算法,并且与目前开源的Hadoop/HDFS相兼容


  结构


   资源管理层


    实现基础设施框架的共享、数据中心的多级程序


   数据管理层


    基础框架间有效的数据共享


   数据处理层


    内存数据处理以及处理的时间、质量和成本


   应用层


    主要包括新的应用


 RDD


  在保留MapReduce等数据流模型框架的优点同时(自动容错、本地优化分配、可扩展性),使得用户可以明确地将一部分数据缓存在内存中,以加速这部分数据之后的查询和计算过程


  提供了一种高度限制的共享内存,但是这些限制可以使得自动容错的开支变得很低


  使用一种称为血统的容错机制,即每一个RDD都包含关于它是如何从其他RDD变换过来的以及如何重建某一块数据的信息


  通用的迭代并行计算的框架,使得用户能够显示地控制计算的中间结果,然后将其自由地运用于之后的计算


  基本概念


   只读、分区记录的集合。RDD只能基于在稳定物理存储中的数据集和其他已有的RDD上执行确定性操作来创建


   RDD不需要物化,RDD含有如何从其他RDD衍生出本RDD的相关信息,据此可以从物理存储的数据计算出相应的RDD分区


   依赖的分类


    narrow dependency


     如果RDD的每个分区最多只能被一个Child RDD的一个分区使用


     可以支持在同一个cluster node上以管道形式执行多个命令


     恢复更加有效,只需要重新计算丢失的父分区就行,而且可以并行地在多个节点进行重计算


    wide dependency


     如果多个Child RDD分区都可以依赖


     需要所有父分区都是可用的,可能还需要调用类似MapReduce的操作进行跨节点传递


   一个RDD可以包含多个分区,每个分区就是一个dataset片段,RDD可以相互依赖


  和分布式共享内存DSM的对比


   RDD限制应用执行批量写操作,这样有助于实现有效的容错


   落后的任务,RDD可以通过备份的任务进行处理


 SparkSQL


  SparkSQL对SQL的处理和关系型数据库对SQL语句的处理方法类似


  处理过程


   先讲SQL语句进行解析,形成一个Tree


   后面的绑定、优化等过程都是对语法树进行的操作,操作的方法是采用Rule


   通过模式匹配,对不同类型的节点采用不同的操作,在整个SQL语句处理过程中,语法树和Rule相互配合,完成了解析、绑定、优化、物理计划等过程,最终生成可以执行的物理计划


 MLlib


  是Spark对常用的机器学习算法的实现库,也包括相应的测试和数据生成器


  支持四种常见的机器学习问题


   二元分类


   回归


   协同过滤


   聚类


   一个底层下降优化基础算法


  支持的算法


   基本统计


    概要统计


    相关分析


    分层取样


    假设检验


    随机数据生成


   分类与回归


    线性模型


    决策树


    朴素贝叶斯


   协同过滤


    最小二乘法


   聚类


    K-means


   降维


    奇异值分析


    主成分分析


   特征提取及转换

你可能感兴趣的:(大数据学习笔记之三十 Spark介绍之一)