Spark
是一个分布式计算系统/组件/平台,这是都知道的,其用Scala
实现Spark
任务也是最原生的,但万万不能认为只要是在Spark环境下执行的Scala代码都是分布式执行的,这是大错特错的,一开始一直有错误的认识,但现在想想,如果拿Java
和Hadoop
的关系来作对比,其就很容易理解了。
Spark
是一个分布式计算系统/组件/平台,这是都知道的,其用Scala
实现Spark
任务也是最原生的,但万万不能认为只要是在Spark环境下执行的Scala代码都是分布式执行的,这是大错特错的,一开始一直有错误的认识,但现在想想,如果拿Java
和Hadoop
的关系来作对比,其就很容易理解了。
作为一名合格的计算机人士,百折不挠的瞎折腾精神是必备的。今天本想使用一下尘封已久的VMware虚拟机搭的集群,结果发现 Spark 有各种问题,应该是之前潦草搭集群时挖下的坑(前几天也用过,但并不是cluster mode
,我现在才知道..),面对这些坑,果断的选择重装啊,所以叒叒叒开始愉快的搭环境了,,
IndexedRDD
由AMPLab
的Ankur Dave
提出,它是Immutability
和Fine-Grained updates
的精妙结合。IndexedRDD
是一个基于RDD
的Key-Value Store
,扩展自RDD[(K, V)]
,可以在IndexRDD
上进行高效的查找、更新以及删除。由于其并没有合并到 Spark
的主项目分支,所以在使用时需要引入特别的对其的支持。
在使用Spark的过程中,一般都会经历调试,提交任务等等环节,如果每个环节都可以确认程序的输入结果,那么无疑对加快代码的调试起了很大的作用,现在,借助IDEA可以非常快捷方便的对Spark代码进行调试,在借助IDEA来完成Spark时,可以大致通过以下几个步骤来完成:
GraphX 是新的(alpha)的图形和图像并行计算的Spark API。从整理上看,GraphX 通过引入 弹性分布式属性图(Resilient Distributed Property Graph)继承了Spark RDD:一个将有效信息放在顶点和边的有向多重图。为了支持图形计算,GraphX 公开了一组基本的运算(例如,subgraph,joinVertices和mapReduceTriplets),以及在一个优化后的
PregelAPI的变形。此外,GraphX 包括越来越多的图算法和 builder 构造器,以简化图形分析任务。
背景是这样的:手上有一个学长之前实现的Spark项目,使用到了GraphX,并且用的Scala编写,现在需要再次运行这个项目,但如果直接在IDEA中打开项目,则由于各种错误会导致运行失败,这里就记录一下该如何使用IDEA来加载老旧的Spark项目。
注意:默认你的机器已有Scala环境,项目使用IDEA打开,对Sbt不做要求,因为这里采用的是NoSbt方式添加依赖的。
厦门大学数据库实验室教程
有几个坑
SparkSQL context 在执行sql语句时,现在使用spark.sql()替换sqlContext.sal()