spark学习笔记【一】- 搭建spark开发环境【原创】_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > spark学习笔记【一】- 搭建spark开发环境【原创】

spark学习笔记【一】- 搭建spark开发环境【原创】

 2018/8/7 18:35:34  zhenggm  程序员俱乐部  我要评论(0)
  • 摘要:在去年写完大数据学习笔记(七)-运行spark脚本【原创】之后,由于工作比较忙,且大数据在负责的项目中一时用不上,所以没有继续学习。这一篇是新的开始,主要学习使用spark的进行开发。spark的源码是scala写的,scala是与Java很像的一种语言,也是基于jvm运行的。spark提供了scala和java的开发包,因此可以使用java和scala来开发spark应用。以下介绍开发环境搭建与demo的编写:一)开发环境搭建1)安装jdk1.82
  • 标签:笔记 原创 学习 开发环境 开发 学习笔记
    在去年写完大数据学习笔记(七)-运行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工程,并添加依赖
   
class="xml" name="code">
       <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编译一下
  • 大小: 16.9 KB
  • 大小: 16.8 KB
  • 大小: 34.5 KB
  • 查看图片附件
发表评论
用户名: 匿名