从0开始 - 完整搭建Spark+IDEA+Maven开发环境(基于Linux)

20 篇文章 1 订阅
7 篇文章 0 订阅

前言

本章将完整记录博主从0开始搭建Spark+IDEA的开发环境。
首先你需要安装Ubuntu 系统,如果未安装可以网上搜索教程即可。
准备maven 和IDEA的安装包:
在这里插入图片描述
链接:https://pan.baidu.com/s/1bPqf24DfZe-YpSrBrfIOKQ
提取码:3110

注:需要联网

1. JDK的安装

解压安装包,添加环境变量:
vim ~/.bashrc

JAVA_HOME=/usr/local/java/jdk1.8.0_152
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH

source ~/.bashrc
在这里插入图片描述

2. Maven的安装

安装可参考:https://blog.csdn.net/hbtj_1216/article/details/78815106
另外附上博主的settings.xml,直接覆盖即可,配置了阿里源,下载比国外快。
注:默认Maven 的依赖文件仓库是在~/.m2下(所以要保证你的Linux用户目录的空间足够大,至少以G为单位),如:
在这里插入图片描述
如果你的用户目录空间不够,可以修改settings.xml其存放位置(目录需先创建):
在这里插入图片描述

3. IDEA的安装

解压后进入目录,执行:
在这里插入图片描述
IDEA简单配置可参考:https://blog.csdn.net/qq_38038143/article/details/89066180

4. Scala的安装

解压
解压路径自己随意:

tar -zxvf scala-2.12.8.tgz -C /home/hadoop/

配置环境变量:
vim ~/.bashrc

# Scala
export PATH=$PATH:/home/hadoop/scala-2.12.8/bin

执行 scala 可成功进入即成功安装。

5. Spark的安装

解压
下载完成后,上传到Linux,博主使用的是Ubuntu16.04,解压文件,并修改名称:

tar -xf spark-2.4.0-bin-hadoop2.7.tgz -C /home/hadoop
cd /home/hadoop
mv spark-2.0.2-bin-hadoop2.7.tgz spark-2.0.2

配置环境变量
vim ~/.bashrc
文件末尾加入如下信息:

# Spark
export SPARK_HOME=/home/hadoop/spark-2.0.2
export PATH=$PATH:$SPARK_HOME/bin/

执行 spark-shell 可成功进入即成功安装。

6. 构建第一个Spark Streaming程序

  1. 左上角File,新建一个Project,选择Maven:
    在这里插入图片描述

  2. 设置相应信息:
    在这里插入图片描述

  3. Maven仓库的选择:
    注:如果你需改更改,需要勾选后面的Override

  4. Finish:
    在这里插入图片描述

  5. 创建成功:
    在这里插入图片描述

  6. 依赖设置(pom.xml):
    修改Scala的版本:
    在这里插入图片描述
    修改为2.12.8。
    然后删除一些目前没有必要的依赖,这里给出配置如下(build及以下的没有更改):

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.gyt.firstspark</groupId>
  <artifactId>firstspark</artifactId>
  <version>1.0-SNAPSHOT</version>
  <inceptionYear>2008</inceptionYear>
  <properties>
    <scala.version>2.12.8</scala.version>
    <spark.version>2.4.0</spark.version>
  </properties>

  <dependencies>
      <!--Spark Streaming-->
      <dependency>
          <groupId>org.apache.spark</groupId>
          <artifactId>spark-streaming_2.12</artifactId>
          <version>${spark.version}</version>
      </dependency>

      <dependency>
          <groupId>com.fasterxml.jackson.module</groupId>
          <artifactId>jackson-module-scala_2.12</artifactId>
          <version>2.6.7.1</version>
      </dependency>

    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-library</artifactId>
      <version>${scala.version}</version>
    </dependency>

    <dependency>
      <groupId>org.specs</groupId>
      <artifactId>specs</artifactId>
      <version>1.2.5</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
  。。。。。。

注意看右下角有个弹窗,点击imoprt(或者手动选择IDEA上方选项栏下的Rebuild Project):
在这里插入图片描述

窗口显示依赖:
在这里插入图片描述
下载完成后,效果如下:
在这里插入图片描述

  1. 设置项目环境:
    点击左上角的选项:
    在这里插入图片描述
    点中main目录下的scala,然后点击上方的Sources。点中test目录,然后点击上面的Tests:
    在这里插入图片描述
    设置Scala资源:
    在这里插入图片描述
    选择下方的Browse 选项,选择安装的目录:
    在这里插入图片描述
    效果:
    在这里插入图片描述
    Apply and ok。

  2. 创建NetworkWordCount:
    在这里插入图片描述
    在这里插入图片描述

完整代码:
ssc.socketTextStream(“master”, 9999) 主机名根据自己设置。

package com.gyt.firstspark

import org.apache.spark.SparkConf
import org.apache.spark.streaming.{Seconds, StreamingContext}

object NetworkWordCount {
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf()
    sparkConf.setMaster("local[2]").setAppName("NetworkWordCount")
    val ssc = new StreamingContext(sparkConf, Seconds(4))
    val lines = ssc.socketTextStream("master", 9999)
    val results = lines.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_)
    results.print()
    ssc.start()
    ssc.awaitTermination()
  }
}
  1. 运行程序:
    删除com.gyt.firstspark 下的App:

在这里插入图片描述
在这里插入图片描述
先在终端启动nc -lk 9999:
在这里插入图片描述
然后右键Run 运行程序:
在这里插入图片描述
运行后,可能报如下错误:
在这里插入图片描述
解决办法:删除test 目录下的MySpec
在这里插入图片描述
再次运行:
在这里插入图片描述
在 nc 中输入单词:
在这里插入图片描述
在这里插入图片描述

另外你可以看到,控制台输出了很多INFO信息,如何去掉:
main 目录下创建resources 目录,并将saprk按照目录下conf/log4j xxx 复制过来(网盘链接中已有):
在这里插入图片描述
Project Structure中设置:
在这里插入图片描述
效果:
在这里插入图片描述
至此,一个可用的Spark Streaming开发环境已经搭建成功。

更多示例

https://blog.csdn.net/qq_38038143/article/details/89928768

GitHub 完整项目:
https://github.com/GYT0313/Spark-Learning/tree/master/sparkstream

完!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值