分类: 大数据

Spark笔记(3):集群运行Spark程序实例讲解

之前都是在spark shell上执行,当数据量达到一定程度,我们可以利用Spark的集群模式来运行,增加算力,而且本地小数据量验证成功的代码可以直接放到集群上跑。 这一小节从提交一个集群环境下的Spark Job出发,讨论了在集群运行Spark Job时的配置项,再讲到Spark基础的架构,最后讲解了一下Spark Job性能调试的经验。 一、spark-submit应用部署Spark使用sp

Spark笔记(2):Pair RDD与数据分区

这一章节我们来看一下在Spark常用来进行聚合操作的Pair RDD,其实类似于字典,由key-value对构成,同样的,Pair RDD也有很多的操作接口,比如reduceByKey()、join(),下面会逐一对介绍,很多语言的语法都是相同的,这里的聚合操作就类似于SQL中的group by或者python中的groupby,所以领会起来也不难。 然后再看一下数据分区相关的内容,数据分区对分布

Spark笔记(1):RDD编程

Spark笔记系列我们准备以《Spark大数据分析》这本书的总体框架为主线,从RDD编程的核心概念说起,到基本的RDD操作、数据IO、Spark Job,以及Spark SQL、Spark Streaming、Spark MLlib这些Spark组件,结合实例系统的进行讲解,之后会将其延伸开来,争取照顾到Spark的方方面面。 “Apache Spark is a unified analytics engine for large-scale data processing.”这是来自官网的介绍,Spark是一个用于大数据处理的统一分析引擎,上亿的大数据集在单机上跑一个分析几乎不可能,而在Spark上可以以分钟级别的速度就可以完成,这要归功于其先进的调度程序DAG、查询优化器和物理执行引擎,这几个概念在后边会一一介绍,总而言之就是Spark出乎意料的快。除了性能好,Spark还异常亲民,你可以用Java写、用Scala写、用Python写,同时也支持R、SQL,上手非常简单,用惯了python DataFrame的可以在Spark找到对应的DataFrames库,用惯了SQL的分析员也可以在里头找到SQL,机器学习工程师也照样可以使用MLlib进行建模。 在Spark中,有一个核心概念叫RDD(Resilient Distributed Dataset),基本所有的操作都是围绕其展开的,所以第一节我们先讲解RDD编程的核心概念和基本操作,当然这之前要先按照官网提供的安装教程进行安装好Spark。如果没有集群,可以先在单机版上练习。