使用IntelliJ Idea开发Spark Streaming流应用程序

简介: 使用IntelliJ Idea开发Spark Streaming流应用程序

未经许可,禁止以任何形式转载,若要引用,请标注链接地址

全文共计2178字,阅读大概需要3分钟

一、实验目的

掌握IntelliJ Idea创建Spark Streaming流应用程序的过程。

 熟悉在spark上提交运行Spark Streaming作业的方式。


二、实验内容

1、使用IntelliJ Idea创建Spark Streaming流应用程序。

 2、打包Spark Streaming流应用程序并提交执行。


三、实验原理

Spark Streaming内部的基本工作原理如下:接收实时输入数据流,然后将数据拆分成多个batch,比如每收集1秒的数据封装为一个batch,然后将每个batch交给Spark的计算引擎进行处理,最后会生产出一个结果数据流,其中的数据,也是由一个一个的batch所组成的

bfd6a75a00ef4ef38094a70fcf1e72e3.png


四、实验环境

硬件:x86_64 ubuntu 16.04服务器

 软件:JDK1.8,Scala-2.11.8,Spark-2.3.2,Hadoop-2.7.3,IntelliJ Idea


五、实验步骤

5.1 启动IntelliJ Idea并创建spark项目

1、启动IntelliJ Idea。在终端窗口下,执行以下命令:

1.  $ cd /opt/idea-IC-191.7479.19/bin
2.  $ ./idea.sh

2、在idea中创建scala项目,并命名为”sparkstreaming”,其它都默认即可,然后点击”Finish”按钮。如下图所示:


b1272d4ce0844672a55144d9543adcd3.png

3、点击【File】菜单,选择【Project structure】选项,进入项目结构界面。如下图所示:

7e300a10338541b49ba0954e1e57366b.png


4、按图中所示依次选择,导入spark的jar包到项目中。如下图所示:


7dd698998ad742748b195fbe0c0371f6.png

5、jar包所在目录为”/opt/spark/jars/“,之后一直点击【OK】按钮即可导包成功。如下图所示:

0cebf7a59d3e4892a6bcf4e45a623b7b.png


6、查看成功导入的部分jar包。如下图所示:


5.2 编写spark代码

1、选中spark_project1项目的src目录右键依次选择【New】-【Scala Class】,创建WordCount类。如下图所示:

beb752d5b5cf430ba51771f7b34fa126.png


2、与上述方法一样,在弹出的对话框中命名为”WordCount”,并选择”Object”类型。如下图所示:

91e2e0e5048945a8b04a85589bdd29a6.png


图片10

 3、编写流程序代码,读取指定端口中的数据,对来自端口的数据进行单词统计。代码如下所示:


1.  import org.apache.spark.SparkConf
2.  import org.apache.spark.streaming.Seconds
3.  import org.apache.spark.streaming.StreamingContext
4.       
5.  object WordCount {
6.       
7.    def main(args: Array[String]): Unit = {
8.      val conf = new SparkConf()
9.          .setMaster("local[*]")
10.         .setAppName("WordCount")
11.      
12.     val ssc = new StreamingContext(conf, Seconds(20))
13.      
14.     val lines = ssc.socketTextStream("localhost", 9999)
15.     val words = lines.flatMap { _.split(" ") }   
16.     val pairs = words.map { word => (word, 1) }  
17.     val wordCounts = pairs.reduceByKey(_ + _)  
18.      
19.     wordCounts.print()  
20.      
21.     ssc.start()
22.     ssc.awaitTermination()
23.   }
24.      
25. }

5.3 打包程序

1、点击【File】菜单,选择【Project structure】选项,进入项目结构界面。如下图所示:

a26ed3bb16864bd7a7f080f2b6e6c4d4.png


2、按图中选择依次点击进行打包。如下图所示:

771fae7babc449209f87566e3763d803.png


3、弹出对话框,Main Class框中选择 WordCount,其它保持默认即可,点击【OK】。如下图所示:

20e77a0b69614763afab54868c0c473e.png


4、返回到项目结构界面,把项目依赖的所有jar包都删除,只导出类文件,点击【OK】按钮。如下图所示:

442953958d34440c8a9ae4d7a9b6fa02.png


5、点击【Build】菜单下的Build Artifacts选项进行编译。如下图所示:


bf43a8d6325d4fea95f7521ad184c031.png

6、按图中所示选择即开始编译。如下图所示:

65665aa7d3c5405d8401638995199422.png


5.4 集群运行jar包

1、启动Spark集群。在终端窗口下,执行以下命令:

1.  $ cd /opt/spark
2.  $ ./sbin/start-all.sh

2、启动nc服务器。在终端窗口下,执行以下命令:

1.  $ nc -lp 9999

3、另打开一个终端窗口,执行如下命令,提交jar包到spark中运行程序:

1.  $ spark-submit --class WordCount /root/IdeaProjects/sparkstreaming/out/artifacts/sparkstreaming_jar/sparkstreaming.jar

执行过程如下图所示:

b3e2ac37afba4882a2283ceef1d2b6d1.png


4、切换到nc服务器所在终端窗口,输入以下内容:

1.  hello sparkstreaming
2.  hello scala

5、切换到Spark流程序提交窗口。在终端中可以看出单词统计的输出结果。如下图所示:

c22a4bf4f4ad41fe8e68cf5c31f71a31.png


— END —


相关文章
|
4月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何开发ODPS Spark任务
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4天前
|
前端开发 Java 开发者
这款免费 IDEA 插件让你开发 Spring 程序更简单
Feign-Helper 是一款支持 Spring 框架的 IDEA 免费插件,提供 URL 快速搜索、Spring Web Controller 路径一键复制及 Feign 与 Controller 接口互相导航等功能,极大提升了开发效率。
|
2月前
|
人工智能 Java 数据库连接
IDEA开发 常用代码规范插件 常用辅助类插件
IDEA开发 常用代码规范插件 常用辅助类插件
73 0
|
5月前
|
Java Android开发 Spring
idea开发常用快捷键总结
idea开发常用快捷键总结
198 9
|
5月前
|
网络协议 安全 Linux
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
120 2
|
5月前
|
存储 Oracle Java
Java面试题:描述如何使用Eclipse或IntelliJ IDEA进行Java开发?
Java面试题:描述如何使用Eclipse或IntelliJ IDEA进行Java开发?
58 0
|
6月前
|
Java 编译器 Maven
使用intellij idea搭建SSM架构的maven项目 详细
使用intellij idea搭建SSM架构的maven项目 详细
102 4
|
5月前
|
IDE Oracle Java
day4:JDK、IntelliJ IDEA的安装和环境变量配置
【7月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
236 0
|
6月前
|
Linux 开发工具 Windows
在WSL2中安装IntelliJ IDEA开发工具
在WSL2中安装IntelliJ IDEA开发工具
636 2
|
6月前
|
IDE Java Scala
IntelliJ IDEA 2023.3 最新变化2
IntelliJ IDEA 2023.3 最新变化