当前位置: 首页 > 新闻 > 信息荟萃
编号:5596
spark编程指南中文版.pdf
http://www.100md.com 2020年11月16日
第1页
第5页
第17页
第34页
第104页

    参见附件(3388KB,106页)。

     spark编程指南中文版

    Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,从高层次上来看,每一个Spark应用都包含一个驱动程序,用于执行用户的main函数以及在集群上运行各种并行操作

    相关内容部分预览

    书籍介绍

    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) 开发,可用来构建大型的、低延迟的数据分析应用程序。

    如何连接Spark

    Spark1.3.0只支持Python2.6或更高的版本(但不支持Python3)。它使用了标准的CPython解释器,所以诸如NumPy一类的C库也是可以使用的。

    通过Spark目录下的bin/spark-submit脚本你可以在Python中运行Spark应用。这个脚本会载入Spark的Java/Scala库然后让你将应用提交到集群中。你可以执行bin/pyspark来打开Python的交互命令行。

    如果你希望访问HDFS上的数据,你需要为你使用的HDFS版本建立一个PySpark连接。常见的HDFS版本标签都已经列在了这个第三方发行版页面。

    最后,你需要将一些Spark的类import到你的程序中。加入如下这行:

    from pyspark import SparkContext, SparkConf

    什么是spark

    总的来说,每个Spark的应用。都是由一个驱动程序(driver program)构成。它执行用户的main函数,在一个集群上执行各种各样的并行操作。

    Spark提出的最主要抽象概念是弹性分布式数据集 (resilientdistributed dataset,RDD)。它是一个元素集合,划分到集群的各个节点上,能够被并行操作。

    RDDs的创建能够从HDFS(或者随意其它支持Hadoop文件系统)上的一个文件開始,或者通过转换驱动程序(driver program)中已存在的Scala集合而来。

    用户也能够让Spark保留一个RDD在内存中,使其能在并行操作中被有效的反复使用。最后,RDD能自己主动从节点故障中恢复。Spark的第二个抽象概念是共享变量(shared variables),能够在并行操作中使用。在默认情况下,Spark通过不同节点上的一系列任务来执行一个函数,它将每个函数中用到的变量的拷贝传递到每个任务中。有时候,一个变量须要在任务之间,或任务与驱动程序之间被共享。Spark支持两种类型的共享变量:广播变量,能够在内存的全部的结点上缓存变量;累加器:仅仅能用于做加法的变量。比如计数或求和。

    本指南将用每一种Spark支持的语言来展示这些特性。这都是非常easy来跟着做的假设你启动了Spark的交互式Shell或者Scala的bin/spark-shell或者Python的bin/pyspark。

    如何初始化Spark

    ScalaSpark程序须要做的第一件事情,就是创建一个SparkContext对象。它将告诉Spark怎样訪问一个集群。要创建一个SparkContext你首先须要建立一个SparkConf对象,这个对象包括你的程序的信息。每一个JVM仅仅能有一个活动的SparkContext。在创建一个新的SparkContext之前你必须stop()活动的SparkContext。

    val conf = newSparkConf().setAppName(appName).setMaster(master)new SparkContext(conf)appName是你的应用的名称。将会在集群的Web监控UI中显示。

    master參数,是一个用于指定所连接的Spark,Mesos or Mesos 集群URL的字符串,也能够是一个如以下所描写叙述的用于在local模式执行的特殊字符串“local”。

    在实践中,当执行在一个集群上时,你不会想把master硬编码到程序中,而是启动spark-submit来接收它。然而。对于本地測试和单元測试。你能够通过“local”

    模式执行Spark。JavaSpark程序须要做的第一件事情,就是创建一个JavaSparkContext对象,它将告诉Spark怎样訪问一个集群。

    要创建一个SparkContext你首先须要建立一个SparkConf对象,这个对象包括你的程序的信息。SparkConf conf = new SparkConf().setAppName(appName).setMaster(master);

    JavaSparkContext sc = newJavaSparkContext(conf);appName是你的应用的名称。将会在集群的Web监控UI中显示。master參数,是一个用于指定所连接的Spark,Mesos or Mesos 集群URL的字符串,也能够是一个如以下所描写叙述的用于在local模式执行的特殊字符串“local”。在实践中,当执行在一个集群上时,你不会想把master硬编码到程序中,而是启动spark-submit来接收它。

    然而。对于本地測试和单元測试。你能够通过“local”模式执行Spark。PythonSpark程序须要做的第一件事情,就是创建一个JavaSparkContext对象。它将告诉Spark怎样訪问一个集群。

    要创建一个SparkContext你首先须要建立一个SparkConf对象,这个对象包括你的程序的信息。conf =SparkConf().setAppName(appName).setMaster(master)sc = SparkContext(conf=conf)appName是你的应用的名称,将会在集群的Web监控UI中显示。master參数,是一个用于指定所连接的Spark,Mesos or Mesos 集群URL的字符串,也能够是一个如以下所描写叙述的用于在local模式执行的特殊字符串“local”。

    在实践中。当执行在一个集群上时,你不会想把master硬编码到程序中,而是启动spark-submit来接收它。然而,对于本地測试和单元測试。你能够通过“local”模式执行Spark。

    spark编程指南中文版截图

您现在查看是摘要介绍页, 详见PDF附件(3388KB,106页)