Spark初识及Spark maven项目搭建

一、Spark初始
1.什么是Spark?
Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。
Spark是UC Berkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行计算框架,
Spark拥有Hadoop Mapreduce所具有的优点,但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,
因此Spark能更好的适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
2.Spark总体技术栈

Spark总体技术栈

3.Spark与MapReduce的区别
都是分布式计算框架,Spark基于内存,MR基于HDFS。
Spark处理数据的能力一般是MR的十倍以上,Spark中除了基于内存计算外,还有DAG有向无环图来切分任务的执行先后顺序。
4.Spark的运行模式
1.Local:
	多用于本地测试,如在eclipse,idea中写程序测试等。
2.Standalone:
	Standalone是Spark自带的一个资源调度框架,它支持完全分布式。
3.Yarn:
	Hadoop生态圈里面的一个资源调度框架,Spark也可以基于Yarn来计算。
4.Mesos:
	资源调度框架
注意:要基于Yarn来进行资源调度,必须实现ApplicationMaster接口,Spark实现了这个接口,所以可以基于Yarn实现。
二、Spark基于Maven项目搭建
1.创建项目
2.创建选择maven-archetype-quickstart
3.配置名称,点击下一步配置Maven及本地Maven仓库地址
4.配置项目名称和位置,并创建
5.配置Maven pom.xml信息,需要注意的地方为,配置的spark版本与scala的版本需要对应匹配
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <!--注意:spark的版本需要跟scala的版本一致,否则在启动项目时,会报版本不一致,无法启动项目-->
    <spark.version>2.0.2</spark.version>
    <scala.version>2.11</scala.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_${scala.version}</artifactId>
        <version>${spark.version}</version>
    </dependency>
</dependencies>
<build>
    <plugins>
    <!--这个插件主要是用于maven管理scala代码,如果没有此插件,在idea中new file时将无法创建scala文件,如下图-->
        <plugin>
            <groupId>org.scala-tools</groupId>
            <artifactId>maven-scala-plugin</artifactId>
            <version>2.15.2</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>testCompile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19</version>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
    </plugins>
</build>

如下图
在这里插入图片描述

6.在main下创建java以及scala源目录,如下图,注意在项目中,scala文件名称可以与java文件名称相同,但是前提是文件前的包名称不能一致,否则会出现文件重复的错误。

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建 Maven + Spark + Scala 项目,可以按照以下步骤进行: 1. 安装 Maven 首先需要安装 Maven,可以从 Maven 官网下载对应的安装包进行安装。 2. 创建 Maven 项目 打开命令行或者终端,进入项目存储的目录,执行以下命令创建 Maven 项目: ``` mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false ``` 其中,`com.example` 是项目的包名,`my-app` 是项目名称,`maven-archetype-quickstart` 是 Maven 的一个基础模板。 创建完毕后,进入项目目录,可以看到项目结构如下: ``` my-app |-- pom.xml `-- src |-- main | `-- java | `-- com | `-- example | `-- App.java `-- test `-- java `-- com `-- example `-- AppTest.java ``` 3. 添加 Spark 和 Scala 依赖 在 `pom.xml` 文件中添加 Spark 和 Scala 的依赖: ```xml <dependencies> <!-- Spark --> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.4.5</version> </dependency> <!-- Scala --> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>2.11.12</version> </dependency> </dependencies> ``` 其中,`spark-core_2.11` 和 `scala-library` 的版本可以根据需求进行修改。 4. 编写 Scala 代码 在 `src/main/scala` 目录下创建 Scala 文件,编写 Spark 代码。 例如,创建一个 `WordCount.scala` 文件,编写如下代码: ```scala import org.apache.spark.{SparkConf, SparkContext} object WordCount { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("WordCount").setMaster("local") val sc = new SparkContext(conf) val textFile = sc.textFile("input.txt") val wordCount = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b) wordCount.saveAsTextFile("output") sc.stop() } } ``` 该代码可以实现读取文件 `input.txt`,统计每个单词出现的次数,并将结果输出到文件 `output` 中。 5. 打包和运行项目 在命令行或者终端中,进入项目目录,执行以下命令进行打包: ``` mvn package ``` 打包成功后,在项目目录下的 `target` 目录中会生成一个 `my-app-1.0-SNAPSHOT.jar` 文件。 然后就可以使用以下命令来运行项目: ``` spark-submit --class com.example.WordCount my-app-1.0-SNAPSHOT.jar ``` 其中,`com.example.WordCount` 是 `WordCount.scala` 文件中的类路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值