spark java教程_(Spark)学习进度十四(Spark之Java独立应用编程)

本文档介绍了如何在Ubuntu环境下配置Hadoop和Spark,并通过Maven构建一个简单的Java Spark应用程序。首先,手动安装Maven并设置路径,然后编写Java代码实现Spark应用,接着创建pom.xml文件配置依赖,最后使用Maven打包应用并用spark-submit运行程序。
摘要由CSDN通过智能技术生成

环境如下:(更新了林子雨教程中不可使用的部分)

Hadoop 2.6.0以上

java JDK 1.7以上

Spark 3.0.0-preview2

二、java独立应用编程(在下载依赖jar包的过程中如遇到卡顿现象可以Ctrl+C停止下载,然后重新执行本条命令即可继续下载相应的依赖jar包)

1、安装maven

ubuntu中没有自带安装maven,需要手动安装maven。可以访问maven官方下载自己下载。这里直接给出apache-maven-3.6.3-bin.zip的下载地址,直接点击下载即可。

选择安装在/usr/local/maven中:

8ba67891059f8e5690bf3437ff1c7632.png

sudo unzip ~/下载/apache-maven-3.6.3-bin.zip -d /usr/local

28b4e6153a0352bd654da474c02e7139.png

cd /usr/local

sudo mv apache-maven-3.6.3/ ./maven

01138113f7b0e7a90a63759bc7ebdae3.png

sudo chown -R hadoop ./maven

2、Java应用程序代码

在终端执行如下命令创建一个文件夹sparkapp2作为应用程序根目录

111f44e032b2ddff92fb0a49a38693de.png

cd ~ #进入用户主文件夹

mkdir -p ./sparkapp2/src/main/java

在 ./sparkapp2/src/main/java 下建立一个名为 SimpleApp.java 的文件(vim ./sparkapp2/src/main/java/SimpleApp.java),添加代码如下:

df375f56f289fc192efa27662128afe7.png

/*** SimpleApp.java ***/

import org.apache.spark.api.java.*;

import org.apache.spark.api.java.function.Function;

public class SimpleApp {

public static void main(String[] args) {

String logFile = "file:///usr/local/spark/README.md"; // Should be some file on your system

JavaSparkContext sc = new JavaSparkContext("local", "Simple App",

"file:///usr/local/spark/", new String[]{"target/simple-project-1.0.jar"});

JavaRDD logData = sc.textFile(logFile).cache();

long numAs = logData.filter(new Function() {

public Boolean call(String s) { return s.contains("a"); }

}).count();

long numBs = logData.filter(new Function() {

public Boolean call(String s) { return s.contains("b"); }

}).count();

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

}

}

该程序依赖Spark Java API,因此我们需要通过Maven进行编译打包。在./sparkapp2中新建文件pom.xml(vim ./sparkapp2/pom.xml),添加内容如下,声明该独立应用程序的信息以及与Spark的依赖关系:

ca8751bbaa2f938bde9f07c86d0d6b63.png

edu.berkeley

simple-project

4.0.0

Simple Project

jar

1.0

Akka repository

http://repo.akka.io/releases

org.apache.spark

spark-core_2.12

3.0.0-preview2

maven-resources-plugin

2.7

关于Spark dependency的依赖关系,可以访问The Central Repository。搜索spark-core可以找到相关依赖关系信息。

6a608876ebec6a458a449fa787a59bf2.png

3、使用maven打包java程序

为了保证maven能够正常运行,先执行如下命令检查整个应用程序的文件结构:

ce8f5df2a0a3a991b12cf239095dc43f.png

cd ~/sparkapp2

find

文件结构如下图:

735da5395088f4926c0b45f3cdd0483b.png

接着,我们可以通过如下代码将这整个应用程序打包成Jar(注意:电脑需要保持连接网络的状态,而且首次运行同样下载依赖包,同样消耗几分钟的时间(笔者耗时2个小时左右,下载时的实时网速只有十几K,具体原因暂时不详)):

1593494dd94f683bb97b915a03b51671.png

/usr/local/maven/bin/mvn package

如出现下图,说明生成Jar包成功:

0e48132966da8cf2b834843d2ba7e49e.png

4、通过spark-submit 运行程序

最后,可以通过将生成的jar包通过spark-submit提交到Spark中运行,如下命令:

b6b36eed775c8907d55b7827c38c40ae.png

/usr/local/spark/bin/spark-submit --class "SimpleApp" ~/sparkapp2/target/simple-project-1.0.jar 2>&1 | grep "Lines with a"

最后得到的结果如下:

e0b75ebb2686afe5731952196ee4589d.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值