spark学习笔记【一】- 搭建spark开发环境【原创】
程序员文章站
2022-06-13 19:58:01
...
在去年写完大数据学习笔记(七)-运行spark脚本【原创】之后,由于工作比较忙,且大数据在负责的项目中一时用不上,所以没有继续学习。
这一篇是新的开始,主要学习使用spark的进行开发。
spark的源码是scala写的,scala是与Java很像的一种语言,也是基于jvm运行的。spark提供了scala和java的开发包,因此可以使用java和scala来开发spark应用。
以下介绍开发环境搭建与demo的编写:
一)开发环境搭建
1)安装jdk1.8
2)到ScalaIDE官网下载集成好的eclipse
http://scala-ide.org/download/sdk.html
3) 解压下载好的包即可使用
至此,我们可以使用下载的eclipse集成环境开发java和scala版本的spark程序
二)java demo
1) 使用maven创建java工程,并添加依赖
2)java代码
3)运行 run as -> Java Application
三)scala demo
1)新建一个maven工程,并添加依赖
2)将工程改为scala工程
3)编写scala程序
4)运行 Run As -> Scala Application
5)初学者常见问题:
a)为什么我没有run as->scala application
可能是没有定义为object,而是定义成class, class是无法运行的。 同时必须有main方法
b)运行时提示找不到主类 SparkLocalCollection
需要按F5 或者使用maven编译一下
这一篇是新的开始,主要学习使用spark的进行开发。
spark的源码是scala写的,scala是与Java很像的一种语言,也是基于jvm运行的。spark提供了scala和java的开发包,因此可以使用java和scala来开发spark应用。
以下介绍开发环境搭建与demo的编写:
一)开发环境搭建
1)安装jdk1.8
2)到ScalaIDE官网下载集成好的eclipse
http://scala-ide.org/download/sdk.html
3) 解压下载好的包即可使用
至此,我们可以使用下载的eclipse集成环境开发java和scala版本的spark程序
二)java demo
1) 使用maven创建java工程,并添加依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.gov.zjport.demo</groupId> <artifactId>demo-spark</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-launcher_2.11</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.2.0</version> </dependency> </dependencies> </project>
2)java代码
package cn.gov.zjport.demo.spark; import java.util.Arrays; import java.util.List; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.Function2; public class SparkLocalCollection { public static void main(String[] args) { //初始化 SparkConf conf=new SparkConf().setAppName("SparkLocalCollection").setMaster("local"); JavaSparkContext sparkContext=new JavaSparkContext(conf); try{ List<Integer> list=Arrays.asList(1,2,3,4,5,6,7,8,9,10); //创建RDD JavaRDD<Integer> rdd=sparkContext.parallelize(list); //执行reduce action操作 int sum=rdd.reduce(new Function2<Integer, Integer, Integer>(){ private static final long serialVersionUID = 1L; public Integer call(Integer arg0, Integer arg1) throws Exception { return arg0+arg1; } }); System.out.println("add result:"+sum); }finally{ sparkContext.close(); } } }
3)运行 run as -> Java Application
三)scala demo
1)新建一个maven工程,并添加依赖
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <encoding>UTF-8</encoding> <scala.version>2.11.11</scala.version> <scala.compat.version>2.11</scala.compat.version> <spec2.version>4.2.0</spec2.version> </properties> <dependencies> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>${scala.version}</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-launcher_2.11</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.3.0</version> </dependency> </dependencies>
2)将工程改为scala工程
3)编写scala程序
package cn.gov.zjport.demo.spark import org.apache.spark.SparkConf import org.apache.spark.SparkContext object SparkLocalCollection { def main(args:Array[String]){ //初始化 var array=Array(1,2,3,4,5,6,7,8,9,10); var conf=new SparkConf().setAppName("SparkLocalCollection").setMaster("local"); var sc=new SparkContext(conf); try{ //先并行化处理成RDD,然后执行reduce操作 var count=sc.parallelize(array, 1).reduce(_+_); println("count is:"+count); }finally{ sc.stop(); } } }
4)运行 Run As -> Scala Application
5)初学者常见问题:
a)为什么我没有run as->scala application
可能是没有定义为object,而是定义成class, class是无法运行的。 同时必须有main方法
b)运行时提示找不到主类 SparkLocalCollection
需要按F5 或者使用maven编译一下
下一篇: 华硕S550系列笔记本怎么拆机清灰?
推荐阅读
-
spark-windows(含eclipse配置)下本地开发环境搭建
-
Liferay学习笔记(一)Liferay Portal5.2.3环境的初步搭建
-
PHP学习笔记从搭建PHP开发环境开始
-
Laravel框架学习笔记(一)环境搭建_php实例
-
大数据学习系列之八----- Hadoop、Spark、HBase、Hive搭建环境遇到的错误以及解决方法
-
Laravel框架学习笔记(一)环境搭建_PHP
-
PyCharm搭建Spark开发环境实现第一个pyspark程序
-
Python学习笔记(一)(基础入门之环境搭建)
-
spark-windows(含eclipse配置)下本地开发环境搭建
-
PyCharm搭建Spark开发环境实现第一个pyspark程序