`

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

阅读更多
    在去年写完大数据学习笔记(七)-运行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工程,并添加依赖
   
       <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
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Spark-Core学习知识笔记整理

    第二章 Spark开发环境搭建 8 1 Spark运行模式 8 2 Spark环境搭建 8 2.1Scala的安装 8 2.2Spark的单节点配置 9 2.3Spark-Standalone集群配置 9 2.4Spark-on-Yarn模式配置 12 2.5Spark-on-Mesos模式配置 13 2.6Hive-on...

    Spark大数据处理学习笔记

    一、Spark 大数据处理学习笔记(2.2)搭建 Spark Standalone 集群 * Spark 集群的搭建是大数据处理的基础,本篇笔记详细讲解了在 master 节点和 slave 节点上安装和配置 Spark 的步骤,包括上传 Spark 安装包、解...

    大数据学习笔记

    #### 第一部分:Spark学习 ##### 第1章:Spark介绍 - **1.1 Spark简介与发展** - **背景**:随着大数据处理需求的增长,传统的Hadoop MapReduce框架虽然提供了强大的计算能力,但在处理速度、易用性和灵活性方面...

    Windows本地pyspark环境搭载_spark环境搭载.doc

    在Windows系统上搭建本地Pyspark开发环境是一个重要的步骤,特别是对于那些希望在数据分析和机器学习项目中使用Apache Spark的用户。以下是一个详细的步骤指南,包括配置Java、Scala、Spark、Hadoop以及整合Anaconda...

    Scala学习笔记(全)

    ### Scala学习笔记(全) #### 一、Scala概述与特点 Scala是一种多范式的编程语言,旨在集成面向对象编程和函数式编程的各种特性。它运行于Java平台(Java虚拟机JVM),并且能够完全兼容所有的Java程序。这使得Scala...

    spark-standalone-cluster-on-docker:通过在Docker上使用JupyterLab接口构建自己的集群,学习Scala,Python(PySpark)和R(SparkR)中的Apache Spark

    在本项目中,"spark-standalone-cluster-on-docker" 提供了一种高效且便捷的方式来在Docker环境中搭建Apache Spark的独立集群,并结合JupyterLab接口进行多语言编程,包括Scala、Python(PySpark)和R(SparkR)。...

    HADOOP学习笔记

    本学习笔记将深入探讨Hadoop的核心组件、架构以及如何搭建云计算平台。 一、Hadoop核心组件 1. HDFS(Hadoop Distributed File System):Hadoop的分布式文件系统,它设计为跨多台机器存储大量数据,并提供高容错...

    大数据相关搭建笔记.zip

    【大数据相关搭建笔记.zip】这个压缩包集合了多个关于大数据平台搭建的重要文档,涉及的关键技术包括Hadoop(含Hive、HBase以及HA)、Spark、Sqoop、Flume以及Ambari。这些组件是大数据处理生态系统中的核心部分,...

    大数据学习笔记文档.rar

    《大数据学习笔记文档》 大数据领域是信息技术的热门方向,涵盖了多个关键技术,如Linux、Kafka、Python、Hadoop和Scala等。以下是对这些技术的详细介绍: **Linux**:作为大数据处理的基础平台,Linux因其开源、...

    java8stream源码-Learning-Spark:学习Spark的代码,关于SparkCore、SparkSQL、SparkStrea

    开发环境 基于Deepin Linux 15.9版本 基于Hadoop2.6、Spark2.4、Scala2.11、java8等 系列环境搭建相关文章,见下方 更多内容见:【 】【 】 文件说明 存放平时练习代码 notes存放笔记 Scala 语法点 待续

    hadoop学习笔记.pdf

    Hadoop是Apache软件基金会开发的一个开源框架,专门用于处理和存储大数据。Hadoop的核心组件包括: 1. 分布式文件系统(HDFS):HDFS设计用于将文件分布式存储在多台服务器上,提供了类似于传统文件系统的目录结构...

    Hadoop学习笔记

    【Hadoop学习笔记】 Hadoop 是一个开源框架,主要用于处理和存储大数据。它源自于解决互联网公司面临的海量数据处理问题,特别是Google发布的三篇技术论文,即GFS(Google File System)、MapReduce以及BigTable。...

    java 学习笔记包括 JVM 集合 Spring ,Spring cloud, Mysql ,redis ,kaf.zip

    Java学习笔记涵盖了许多核心的IT知识点,以下是这些主题的详细说明: **JVM(Java虚拟机)** Java虚拟机是Java程序运行的基础,它负责解释和执行字节码。理解JVM的工作原理对于优化程序性能至关重要。这包括类加载...

    autoInstall.zip

    标题“autoInstall.zip”暗示了这是一个自动安装包,可能包含了用于在...这个压缩包对于想要在Ubuntu上快速搭建Spark环境的开发者或者学生来说非常有用,同时也适合初学者通过`attend-count.py`来学习Spark的基础编程。

    Hadoop大数据开发教程笔记软件.zip

    压缩包“Hadoop大数据开发教程笔记软件.zip”包含了一份详实的Hadoop学习资源,特别是针对基于Hadoop的大数据开发基础进行讲解。 Hadoop是一个开源框架,由Apache软件基金会维护,它设计用于处理和存储大量数据。其...

    达内培训笔记

    达内的笔记可能会讲解Android或iOS平台的开发环境搭建、UI设计、API调用以及发布流程。学员将学会创建跨平台应用,提升用户体验。 四、大数据与云计算 大数据处理和云计算是现代信息技术的热点。笔记可能涵盖Hadoop...

    机器学习:带有机器学习示例的笔记本

    标题中的“机器学习:带有机器学习示例的笔记本”表明这是一个关于机器学习的教程或实践项目,其中包含了一些具体的示例,这些示例可能在Jupyter Notebook这样的交互式环境中实现。Jupyter Notebook是一种广泛用于...

    一键安装jdk+mysql+hadoop+hive+zeppelin.rar

    标题中的"一键安装jdk+mysql+hadoop+hive+zeppelin.rar"表明这是一个包含Java开发环境(JDK)、MySQL数据库、Hadoop分布式计算框架、Hive数据仓库工具以及Zeppelin交互式数据分析平台的一键安装包。这个压缩包为用户...

    大数据处理与分析整本书课件完整版电子教案全套课件最全教学教程ppt.pptx

    课程首先从开发环境的搭建开始,包括Python解释器的安装、Anaconda的配置、Jupyter Notebook与PyCharm的使用。 1. Python解释器安装是学习Python的第一步。Python解释器是执行Python代码的必要组件。在MAC OS系统下...

Global site tag (gtag.js) - Google Analytics