在本博客的《Spark 0.9.1 Standalone模式分布式部署》详细的介绍了如何部署Spark Standalone的分布式,在那篇文章中并没有介绍如何来如何来测试,今天我就来介绍如何用Java来编写简单的程序,并在Standalone模式下运行。
程序的名称为SimpleApp.java,通过调用Spark提供的API进行的,在程序编写前现在pom引入相应的jar依赖:
<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.10</artifactId> <version>0.9.1</version> </dependency>
如果你的测试文件是在HDFS上,还需要引入HDFS的相关依赖。具体的程序如下:
package com.wyp; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.Function; /** * User: wyp * Date: 14-4-24 * Time: 上午11:42 * Blog: / */ public class SimpleApp { public static void main(String[] args) { String logFile = "file:///home/wyp/README.md"; JavaSparkContext sc = new JavaSparkContext("local", "Simple App", "/export1/spark/spark-bin-0.9.1", new String[]{"target/spark-1.0.jar"}); 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); } }
利用Maven进行打包,并运行:
[wyp@master ~/spark]$ sudo mvn package [wyp@master ~/spark]$ sudo mvn exec:java -Dexec.mainClass="com.wyp.SimpleApp"
运行的结果如下:
Lines with a: 62, lines with b: 35
需要注意,(1)、在程序SimpleApp.java文件中运到的file:///home/wyp/README.md需要确保每个Worker节点都存放一份,或者你把这个文件上传到HDFS上面,确保所有的Worker节点都能正常访问;
(2)、/export1/spark/spark-bin-0.9.1这个是你Spark的安装目录
本博客文章除特别声明,全部都是原创!(2)、/export1/spark/spark-bin-0.9.1这个是你Spark的安装目录
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【Spark 0.9.1 Standalone模式简单例子测试】(https://www.iteblog.com/archives/1020.html)