spark (java API) 在Intellij IDEA中开发并运行

简介: Spark 程序开发,调试和运行,intellij idea开发Spark java程序。 分两部分,第一部分基于intellij idea开发Spark实例程序并在intellij IDEA中运行Spark程序.第二部分,将开发程序提交到Spark local或者hadoop YARN集群运行。

Spark 程序开发,调试和运行,intellij idea开发Spark java程序。 
分两部分,第一部分基于intellij idea开发Spark实例程序并在intellij IDEA中运行Spark程序.第二部分,将开发程序提交到Spark local或者hadoop YARN集群运行。Github项目源码

图1,直接在intellij IDEA(社区版)中开发调试,直接run。

spark hadoop intellij idea java 程序开发

图2,直接在intellij IDEA(社区版)中用hadoop YARN模式。

这里写图片描述

Github项目源码

1.(第一部分)使用intellij IDEA创建一个Java的Maven项目。Github项目源码

初始化的MAVEN项目如下

这里写图片描述

2.根据Spark官网实例做二次开发Github项目源码

2.1.创建SimpleApp.java文件 SimpleApp.java

/**
 * MIT.
 * Author: wangxiaolei(王小雷).
 * Date:17-2-7.
 * Project:SparkJavaIdea.
 */
import org.apache.spark.api.java.*;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.function.Function;

public class SimpleApp {
    public static void main(String[] args) {
        String logFile = "file:///opt/spark-2.1.0-bin-hadoop2.7/README.md"; // Should be some file on your system
        SparkConf conf = new SparkConf().setAppName("Simple Application");
        JavaSparkContext sc = new JavaSparkContext(conf);
        JavaRDD<String> logData = sc.textFile(logFile).cache();

        long numAs = logData.filter(new Function<String, Boolean>() {
            public Boolean call(String s) { return s.contains("a"); }
        }).count();

        long numBs = logData.filter(new Function<String, Boolean>() {
            public Boolean call(String s) { return s.contains("b"); }
        }).count();

        System.out.println("Lines with a: " + numAs + ", lines with b: " + numBs);

        sc.stop();
    }
}


 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

2.2.修改pom.xml文件 pom.xml

<?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>wangxiaolei</groupId>
    <artifactId>SparkJavaIdea</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency> <!-- Spark dependency -->
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.1.0</version>
        </dependency>
    </dependencies>

</project>

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

3.在intellij IDEA中运行Spark程序

3.1 设置IDEA运行项的Configuration中的VM opthion 增加-Dspark.master=local

这里写图片描述

3.2.右键SimpleApp.java 点击运行,稍等片刻看到运行成功。

已经将Readme.md中的单词a和b统计出来了Lines with a: 62, lines with b: 30

这里写图片描述

至此,Spark在intellij IDEA中开发,并在IDEA中运行成功!

4.(第二部分)将intellij IDEA中的Spark java程序打包成jarGithub项目源码

这里写图片描述

5.spark local模式运行

5.1.使用intellij IDEA的Terminal或者是系统(博主是Ubuntu)的Terminal,在当前项目路径(/home/xiaolei/Data/GS/Spark/SparkJavaIdea)执行如下代码。

/opt/spark-2.1.0-bin-hadoop2.7/bin/spark-submit \
  --class "SimpleApp" \
  --master local[4] \
  target/SparkJavaIdea-1.0-SNAPSHOT.jar

 
 
  • 1
  • 2
  • 3
  • 4

这里写图片描述

这里写图片描述

至此,Spark local模式程序开发和运行成功!

6.YARN集群模式(或伪分布式)运行.——需要有集群环境或者提前配置好了伪分布式环境,伪分布式环境搭建参考另一篇博文Ubuntu16.04安装Hadoop2.6+Spark1.6+开发实例

6.1.开启hadoop集群,开启Spark。

# 初次搭建集群需要格式化namenode(已经初始化过可省略)
/opt/hadoop-2.7.3/bin/hdfs namenode -format
#开启hadoop集群(伪分布式)
/opt/hadoop-2.7.3/sbin/start-all.sh
#开启Spark
/opt/spark-2.1.0-bin-hadoop2.7/sbin/start-all.sh
#查看开启状态
jps

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这里写图片描述

6.2 使用intellij IDEA的Terminal或者是系统(博主是Ubuntu)的Terminal,在当前项目路径(/home/xiaolei/Data/GS/Spark/SparkJavaIdea)执行如下代码。

/opt/spark-2.1.0-bin-hadoop2.7/bin/spark-submit   --class SimpleApp   --master yarn --deploy-mode cluster   target/SparkJavaIdea-1.0-SNAPSHOT.jar

 
 
  • 1

这里写图片描述

至此,Spark在intellij IDEA中开发,并在hadoop YARN模式下运行成功!

6.3.在Web中查看Github项目源码

http://localhost:8088/cluster/apps

 
 
  • 1

这里写图片描述

至此,Spark在intellij IDEA中开发,并在hadoop YARN模式下运行成功!

相关文章
|
前端开发 Java 关系型数据库
基于Java+Springboot+Vue开发的鲜花商城管理系统源码+运行
基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。技术学习共同进步
894 7
|
10月前
|
人工智能 Java 测试技术
【556AI】(一)IntelliJ IDEA全流程AI设计开发平台
556AI支持IDEA、PHPSTORM、PYCHARM最新版 AI平台定位是开发大型软件项目,大型软件项目代码AI生成引擎,OA/ERP/MES 百万行代码一次性AI生成 支持axure原型导入预览,集成AI软件设计/AI软件开发/AI软件测试整个流程 支持 若依 JEECG SmartAdmin THINKPHP Django等多种JAVA/PHP/python框架 实现了java php python 的统一增强行调试方式 可以链接多个AI大模型,进行AI生成代码
1341 8
|
Java
轻松上手Java字节码编辑:IDEA插件VisualClassBytes全方位解析
本插件VisualClassBytes可修改class字节码,包括class信息、字段信息、内部类,常量池和方法等。
1224 6
|
IDE Java 开发工具
【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤
IntelliJ IDEA创建Java项目的图文详细步骤,手把手带你创建Java项目
2251 10
【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤
|
IDE Java 开发工具
JetBrains IntelliJ IDEA 2025.1 发布 - 领先的 Java 和 Kotlin IDE
JetBrains IntelliJ IDEA 2025.1 (macOS, Linux, Windows) - 领先的 Java 和 Kotlin IDE
981 2
|
IDE 开发工具
【开发IDE升级】如何对IDEA版本进行升级
本文介绍了如何将 IntelliJ IDEA Ultimate 从 2020.2.2 版本升级到 2022.3.2 版本。主要内容包括准备工作、卸载旧版本和安装新版本的步骤。首先,从官网下载所需版本并备份旧版配置;接着,通过 Uninstall.exe 卸载旧版,保留配置和插件;最后,安装新版并完成激活。详细的操作步骤和截图帮助用户顺利完成升级过程。
18849 1
【开发IDE升级】如何对IDEA版本进行升级
|
开发工具 开发者 git
IntelliJ IDEA 插件推荐:提升开发效率的神器
本文介绍了 IntelliJ IDEA 的多个实用插件,涵盖从提高开发效率到美化界面的各个方面。
1936 1
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
577 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
前端开发 Java 开发者
这款免费 IDEA 插件让你开发 Spring 程序更简单
Feign-Helper 是一款支持 Spring 框架的 IDEA 免费插件,提供 URL 快速搜索、Spring Web Controller 路径一键复制及 Feign 与 Controller 接口互相导航等功能,极大提升了开发效率。
3788 1