这里就不详细讲解Hadoop集群以及Spark集群怎么搭建。这里是搭建Windows 10系统本地开发环境,可以编写Spark测试案例。
Spark开发环境搭建
1. Spark开发环境搭建
1.1 安装jdk
我选择的版本是jdk1.8.0_111
双击安装,按提示安装完成后打开cmd
运行java -version
如图所示,安装成功。
1.2 安装IntelliJ IDEA
在官网下载安装包,点击下载
注册码进这里http://idea.lanyus.com/
使用前请将“0.0.0.0 account.jetbrains.com”添加到hosts文件中
以管理员身份运行cmd, 然后运行
echo 0.0.0.0 account.jetbrains.com >> C:\Windows\System32\drivers\etc\hosts
然后用获取到的注册码激活idea
安装成功安装Scala插件 Configure -> Plugins
搜索并安装Scala 插件, 如果搜索不出就点击这里下载手动安装
1.3 安装Scala
这里我们后面会安装Spark2.4.0, 所以这里选择安装Scala2.12。
去官网下载对应版本的Scala,点击这里下载
双击按照提示安装成功
注意安装目录不能有空格,例如C:\Program Files (x86)
1.4 安装Python
在官网下载最新版Python即可,或者点击这里下载
注意:要把python配置进path环境变量里面。
1.5 安装Spark
Spark 要在Windows本地运行,需要Hadoop目录和winutils.exe
链接:https://pan.baidu.com/s/1Ou_1YRVhqJCTiZ7CJXvR6g 密码:cags
解压之后新建HADOOP_HOME环境变量
把Hdoop和Spark增加到path环境变量里面
好了,一切准备就绪,打开cmd执行spark-shell
在spark-shell里面已经可以写spark程序了。
1.6 idea 新建Spark项目
新建maven项目
然后再新加两个maven的module,其中Scala-demo这个module要加上Scala Framework Support
三个项目的pom文件如下
spark-demo
<?xml version="1.0" encoding="UTF-8"?>
<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>com.nick</groupId>
<artifactId>spark-demo</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>java-demo</module>
<module>scala-demo</module>
</modules>
<properties>
<scala.version>2.11</scala.version>
<spark.version>2.4.0</spark.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
</dependencies>
</project>
scala-demo
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>spark-demo</artifactId>
<groupId>com.nick</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>scala-demo</artifactId>
</project>
java-demo
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>spark-demo</artifactId>
<groupId>com.nick</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>java-demo</artifactId>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
现在新建个Java的sparkdemo
SparkDemo4J.java
package com.nick;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import java.util.Arrays;
import java.util.List;
public class SparkDemo4J {
public static void main(String[] args) {
SparkConf conf = new SparkConf().setAppName("javaTest").setMaster("local[*]");
JavaSparkContext jsc = new JavaSparkContext(conf);
List<Integer> ints = Arrays.asList(1, 2, 3, 4, 5, 6);
JavaRDD<Integer> rdd = jsc.parallelize(ints);
JavaRDD<Integer> rdd1 = rdd.map(i -> i * 100); // 每个元素乘以一百倍
rdd1.foreach(i -> System.out.println("i = " + i));
}
}
运行结果
再新建个Scala版本的SparkDemo
SparkDemo4S.scala
package com.nick
import org.apache.spark.{SparkConf, SparkContext}
object SparkDemo4S {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("scalaTest").setMaster("local[*]")
val sc = SparkContext.getOrCreate(conf)
val rdd = sc.parallelize(1 to 6)
rdd.map(_*100).foreach(println)
}
}
运行结果
好了,一个Spark开发环境终于搭建好了,可以在这个项目中测试各个Spark算子的用发了。