Spark入门简介

 更新时间:2017年09月29日 10:33:13   投稿:mengwei  
这篇文章主要介绍了Spark的相关内容,算是对spark的初步涉猎,希望大家通过这篇文章能对spark有一定的了解,需要的朋友可以参考下。

SPARK

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。

Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎 。现在形成一个高速发展应用广泛的生态系统。

学习大数据的起点

Spark 主要有三个特点 :

首先,高级 API 剥离了对集群本身的关注,Spark 应用开发者可以专注于应用所要做的计算本身。

其次,Spark 很快,支持交互式计算和复杂算法。

最后,Spark 是一个通用引擎,可用它来完成各种各样的运算,包括 SQL 查询、文本处理、机器学习等,而在 Spark 出现之前,我们一般需要学习各种各样的引擎来分别处理这些需求。

性能特点

更快的速度

内存计算下,Spark 比 Hadoop 快100倍。

易用性

Spark 提供了80多个高级运算符。

通用性

Spark 提供了大量的库,包括SQL、DataFrames、MLlib、GraphX、Spark Streaming。 开发者可以在同一个应用程序中无缝组合使用这些库。

支持多种资源管理器

Spark 支持 Hadoop YARN,Apache Mesos,及其自带的独立集群管理器

Spark生态系统

Shark:Shark基本上就是在Spark的框架基础上提供和Hive一样的HiveQL命令接口,为了最大程度的保持和Hive的兼容性,Shark使用了Hive的API来实现query Parsing和 Logic Plan generation,最后的PhysicalPlan execution阶段用Spark代替HadoopMapReduce。通过配置Shark参数,Shark可以自动在内存中缓存特定的RDD,实现数据重用,进而加快特定数据集的检索。同时,Shark通过UDF用户自定义函数实现特定的数据分析学习算法,使得SQL数据查询和运算分析能结合在一起,最大化RDD的重复使用。

SparkR:SparkR是一个为R提供了轻量级的Spark前端的R包。 SparkR提供了一个分布式的data frame数据结构,解决了 R中的data frame只能在单机中使用的瓶颈,它和R中的data frame 一样支持许多操作,比如select,filter,aggregate等等。(类似dplyr包中的功能)这很好的解决了R的大数据级瓶颈问题。 SparkR也支持分布式的机器学习算法,比如使用MLib机器学习库。 SparkR为Spark引入了R语言社区的活力,吸引了大量的数据科学家开始在Spark平台上直接开始数据分析之旅。

基本原理

Spark Streaming:构建在Spark上处理Stream数据的框架,基本的原理是将Stream数据分成小的时间片断(几秒),以类似batch批量处理的方式来处理这小部分数据。Spark Streaming构建在Spark上,一方面是因为Spark的低延迟执行引擎(100ms+),虽然比不上专门的流式数据处理软件,也可以用于实时计算,另一方面相比基于Record的其它处理框架(如Storm),一部分窄依赖的RDD数据集可以从源数据重新计算达到容错处理目的。此外小批量处理的方式使得它可以同时兼容批量和实时数据处理的逻辑和算法。方便了一些需要历史数据和实时数据联合分析的特定应用场合。

计算方法

Bagel: Pregel on Spark,可以用Spark进行图计算,这是个非常有用的小项目。Bagel自带了一个例子,实现了Google的PageRank算法。

当下Spark已不止步于实时计算,目标直指通用大数据处理平台,而终止Shark,开启SparkSQL或许已经初见端倪。

近几年来,大数据机器学习和数据挖掘的并行化算法研究成为大数据领域一个较为重要的研究热点。早几年国内外研究者和业界比较关注的是在 Hadoop 平台上的并行化算法设计。然而, HadoopMapReduce 平台由于网络和磁盘读写开销大,难以高效地实现需要大量迭代计算的机器学习并行化算法。随着 UC Berkeley AMPLab 推出的新一代大数据平台 Spark 系统的出现和逐步发展成熟,近年来国内外开始关注在 Spark 平台上如何实现各种机器学习和数据挖掘并行化算法设计。为了方便一般应用领域的数据分析人员使用所熟悉的 R 语言在 Spark 平台上完成数据分析,Spark 提供了一个称为 SparkR 的编程接口,使得一般应用领域的数据分析人员可以在 R 语言的环境里方便地使用 Spark 的并行化编程接口和强大计算能力。

总结

以上就是本文关于Spark入门简介的全部内容,希望对大家有所帮助。欢迎各位参阅本站其他专题,感谢朋友们对脚本之家的支持!

相关文章

  • 基于Xen的VPS 配置squid服务器

    基于Xen的VPS 配置squid服务器

    前面总结了 基于Xen的VPS的web服务器的配置:ubuntu+nginx+php,下面记录下squid服务器的配置。
    2010-07-07
  • 一文让你知道服务器是什么

    一文让你知道服务器是什么

    服务器指的是网络环境下能为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供某种服务的专用计算机,它比普通计算机运行更快、负载更高、价格更贵,服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性
    2023-08-08
  • Win2008 蓝屏漏洞揭秘

    Win2008 蓝屏漏洞揭秘

    蓝屏漏洞威胁的是服务器操作系统Windows Server 2008,这意味着如果Windows Server 2008蓝屏,将导致服务器停止服务……
    2009-10-10
  • htaccess 防盗链,防止目录浏览等10大技巧

    htaccess 防盗链,防止目录浏览等10大技巧

    htaccess 防盗链,防止目录浏览等10大技巧,使用apache服务器的朋友可以参考下
    2012-02-02
  • TortoiseSvn小乌龟安装最新图文详细教程

    TortoiseSvn小乌龟安装最新图文详细教程

    在使用TortoiseSvn安装过程中经常出现各种奇葩问题,干脆换成svn吧,在这里小编把我的安装过程记录下来,有需要的朋友直接拿去用吧
    2021-05-05
  • wamp5是什么 wamp有什么用途?

    wamp5是什么 wamp有什么用途?

    wamp就是Windows系统加上Apache,MySQL及PHP搭建的web环境,配置简单方便,简称wamp,了解amp之后,我们就简单介绍下什么的wamp5以及主要用途
    2015-10-10
  • TCP服务器实现数据通信

    TCP服务器实现数据通信

    今天我们要介绍的是使用TCP协议实现数据通信,相比于之前写的UDP服务器实现数据信,在主体逻辑上并没有差别,下面,我们具体来看看UDP和TCP在编码的实现上有什么不同,感兴趣的朋友一起看看吧
    2023-08-08
  • ibmx335/ibmx336服务器做RAID阵列的图文方法(包括删除RAID阵列)

    ibmx335/ibmx336服务器做RAID阵列的图文方法(包括删除RAID阵列)

    X服务器中有一些集成LSI SCSI控制器的机型,在开机自检时按CTRL C可以配置两个硬盘的镜像。但是当升级BIOS之后,CTRL C中的一些设置发生了变化,配置方法也较以前的版本有些差异
    2012-06-06
  • 如何搭建http的webserver服务器

    如何搭建http的webserver服务器

    最近在使用ESP32搭建web服务器测试,发现esp32搭建这类开发环境还是比较方便的,下面介绍如何使用ESP32提供的API来搭建我们的http web,感兴趣的朋友一起看看吧
    2024-08-08
  • Http状态码及含义详解

    Http状态码及含义详解

    这篇文章主要为大家介绍了Http状态码及含义详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11

最新评论