概述:Spark 程序开发,调试和运行,intellij idea开发Spark java程序。

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

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

图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();
}
}

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>

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

至此,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

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

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

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

http://localhost:8088/cluster/apps

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

spark (java API) 在Intellij IDEA中开发并运行的更多相关文章

  1. 在 IntelliJ IDEA 中配置 Spark(Java API) 运行环境

    1. 新建Maven项目 初始Maven项目完成后,初始的配置(pom.xml)如下: 2. 配置Maven 向项目里新建Spark Core库 <?xml version="1.0& ...

  2. 在IntelliJ IDEA中创建和运行java/scala/spark程序

    本文将分两部分来介绍如何在IntelliJ IDEA中运行Java/Scala/Spark程序: 基本概念介绍 在IntelliJ IDEA中创建和运行java/scala/spark程序 基本概念介 ...

  3. Spark Java API 计算 Levenshtein 距离

    Spark Java API 计算 Levenshtein 距离 在上一篇文章中,完成了Spark开发环境的搭建,最终的目标是对用户昵称信息做聚类分析,找出违规的昵称.聚类分析需要一个距离,用来衡量两 ...

  4. Spark Java API 之 CountVectorizer

    Spark Java API 之 CountVectorizer 由于在Spark中文本处理与分析的一些机器学习算法的输入并不是文本数据,而是数值型向量.因此,需要进行转换.而将文本数据转换成数值型的 ...

  5. Apache Spark探秘:利用Intellij IDEA构建开发环境

    1)准备工作 1)  安装JDK 6或者JDK 7      或者JDK8  mac 的  参看http://docs.oracle.com/javase/8/docs/technotes/guide ...

  6. spark java API 实现二次排序

    package com.spark.sort; import java.io.Serializable; import scala.math.Ordered; public class SecondS ...

  7. spark java api数据分析实战

    1 spark关键包 <!--spark--> <dependency> <groupId>fakepath</groupId> <artifac ...

  8. 【Spark Java API】broadcast、accumulator

    转载自:http://www.jianshu.com/p/082ef79c63c1 broadcast 官方文档描述: Broadcast a read-only variable to the cl ...

  9. Java API使用(不断更新中)

    实例1 BigInteger的构造函数public BigInteger (String val, int radix)的使用 上面的构造函数,val是各种进制的字符串,比如二进制的110,八进制的7 ...

随机推荐

  1. Markdown新手教程

    目录 什么是Markdown? 用Markdown写作有什么优缺点? 有哪些比较好的Markdown写作工具? markdown语法 标题 水平分区线 引用 中划线 斜体 粗体 斜粗体 链接 图片 无 ...

  2. Swift5 语言指南(十一) 结构和类

    结构和类是通用的,灵活的结构,它们成为程序代码的构建块.您可以使用与定义常量,变量和函数相同的语法来定义属性和方法,以便为结构和类添加功能. 与其他编程语言不同,Swift不要求您为自定义结构和类创建 ...

  3. django权限管理(Permission)

    什么是权限管理 权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自 己被授权的资源 权限管理好比如钥匙,有了钥匙就能把门打开,但是权限设置是有级别之分的,假如这个 系统有多 ...

  4. Python学习的路上,Anaconda送你一双遮天神翼

    一.背景 ​ 最近在学习python,发现在本地搭建python环境的时候,要是想要同时搭建不同python版本的环境,就比较麻烦,很容易就出现冲突了,很是头疼.然后光明就出现这山重水复疑无路的时候, ...

  5. Ubuntu 16 桌面版使用笔记

    版本:16.04.2-Ubuntu 软件安装 常用软件 sudo apt-get install curl wget htop git vim 搜狗输入法 wget http://cdn2.ime.s ...

  6. Java基础之Java 修饰符

    前言:Java内功心法之Java 修饰符,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) Java语言提供了很多修饰符,主要分为以下两类: 访 ...

  7. 记一次IDEA编译器调优

    前言: 我们知道,IDEA是用Java写的,那么他肯定也存在虚拟机的调优的问题,那么今天我们就对它进行开刀. 下面是默认参数 位置在:C:\Program Files\JetBrains\Intell ...

  8. About me & 一些置顶的博文

    About me 一只历史上最弱的 \(\text{hnoier}\) ... 身在 \(\text{hn}\) 弱校,除了在四大名校夹缝中生存,还要受到同校 \(\text{Julao}\) 的鄙视 ...

  9. SpringBoot之使用Lettuce集成Redis

    一.Lettuce Redis这里就不多说,服务端的启动之前的博客里面也有提到,这里略过.Lettuce和Jedis都是连接Redis Server的客户端程序,Jedis在实现上是直连redis s ...

  10. Django之模型层(多表操作)

    一.创建模型 1,一对多关系 一本书只有一个出版社,一个出版社可以出版多本书,从而书与出版社之间就构成一对多关系,书是‘多’的一方,出版社是‘一’的一方,我们在建立模型的时候,把外键写在‘多’的一方, ...