一、Scala版本:

程序如下:

package scala
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
object Test {
    def main(args: Array[String]) {
      val logFile = "file:///spark-bin-0.9.1/README.md"
      val conf = new SparkConf().setAppName("Spark Application in Scala")
      val sc = new SparkContext(conf)
      val logData = sc.textFile(logFile, 2).cache()
      val numAs = logData.filter(line => line.contains("a")).count()
      val numBs = logData.filter(line => line.contains("b")).count()
      println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
    }
  }
}

为了编译这个文件,需要创建一个xxx.sbt文件,这个文件类似于pom.xml文件,这里我们创建一个scala.sbt文件,内容如下:

name := "Spark application in Scala"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.0.0"
resolvers += "Akka Repository" at "http://repo.akka.io/releases/"

编译:

# sbt/sbt package
[info] Done packaging.
[success] Total time: 270 s, completed Jun 11, 2014 1:05:54 AM

二、Java版本
/**
 * User: 过往记忆
 * Date: 14-6-10
 * Time: 下午11:37
 * bolg: https://www.iteblog.com
 * 本文地址:https://www.iteblog.com/archives/1041
 * 过往记忆博客,专注于hadoop、hive、spark、shark、flume的技术博客,大量的干货
 * 过往记忆博客微信公共帐号:iteblog_hadoop
 */
/* SimpleApp.java */
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:///spark-bin-0.9.1/README.md";
        SparkConf conf =new SparkConf().setAppName("Spark Application in Java");
        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);
    }
}

本程序分别统计README.md文件中包含a和b的行数。本项目的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>spark</groupId>
    <artifactId>spark</artifactId>
    <version>1.0</version>
 
    <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.10</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>
</project>

利用Maven来编译这个工程:

# mvn install
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.815s
[INFO] Finished at: Wed Jun 11 00:01:57 CST 2014
[INFO] Final Memory: 13M/32M
[INFO] ------------------------------------------------------------------------

三、Python版本
#
# User: 过往记忆
# Date: 14-6-10
# Time: 下午11:37
# bolg: https://www.iteblog.com
# 本文地址:https://www.iteblog.com/archives/1041
# 过往记忆博客,专注于hadoop、hive、spark、shark、flume的技术博客,大量的干货
# 过往记忆博客微信公共帐号:iteblog_hadoop
#
from pyspark import SparkContext
 
logFile = "file:///spark-bin-0.9.1/README.md"
sc = SparkContext("local", "Spark Application in Python")
logData = sc.textFile(logFile).cache()
 
numAs = logData.filter(lambda s: 'a' in s).count()
numBs = logData.filter(lambda s: 'b' in s).count()
 
print "Lines with a: %i, lines with b: %i" % (numAs, numBs)

四、测试运行

本程序的程序环境是Spark 1.0.0,单机模式,测试如下:
1、测试Scala版本的程序

# bin/spark-submit --class "scala.Test"  \
                   --master local[4]    \
              target/scala-2.10/simple-project_2.10-1.0.jar
 
14/06/11 01:07:53 INFO spark.SparkContext: Job finished:
count at Test.scala:18, took 0.019705 s
Lines with a: 62, Lines with b: 35

2、测试Java版本的程序

# bin/spark-submit --class "SimpleApp"  \
                   --master local[4]    \
              target/spark-1.0-SNAPSHOT.jar
 
14/06/11 00:49:14 INFO spark.SparkContext: Job finished:
count at SimpleApp.java:22, took 0.019374 s
Lines with a: 62, lines with b: 35

3、测试Python版本的程序

# bin/spark-submit --master local[4]    \
                simple.py
 
Lines with a: 62, lines with b: 35

Spark Standalone模式应用程序开发相关推荐

  1. 【原】Spark Standalone模式

    Spark Standalone模式 安装Spark Standalone集群 手动启动集群 集群创建脚本 提交应用到集群 创建Spark应用 资源调度及分配 监控与日志 与Hadoop共存 配置网络 ...

  2. Spark基础学习笔记05:搭建Spark Standalone模式的集群

    文章目录 零.本讲学习目标 一.Spark集群拓扑 (一)集群拓扑 (二)集群角色分配 二.搭建集群 (一)私有云上创建三台虚拟机 (二)利用SecureCRT登录三台虚拟机 1.登录master虚拟 ...

  3. spark StandAlone模式下的作业提交流程

    spark StandAlone也有两种作业提交模式,client 和 cluster模式,以下以cluster为例说明 提交代码 ./spark-submit \ --class org.apach ...

  4. Spark standalone 模式下的集群部署

    版本! 需要注意两点: (1)使用的Hadoop必须是 2.0 系列,比如 0.23.x,2.0.x,2.x.x或CDH4.CDH5 等,将 Spark 运行在 Hadoop 上,本质上是将 Spar ...

  5. 详解Spark运行模式(local+standalone+yarn)

    一.简述 Spark 有多种运行模式: 1.可以运行在一台机器上,称为 Local(本地)运行模式. 2.可以使用 Spark 自带的资源调度系统,称为 Standalone 模式. 3.可以使用 Y ...

  6. Spark环境搭建Standalone模式

    2.4  Standalone模式 在Standalon模式中,Spark集群由Master节点和Worker节点构成,使用内置的Standalon框架进行资源管理.Spark程序通过与Master节 ...

  7. Spark3.2教程(九)CentOS7下Spark Standalone分布式搭建

    Spark搭建方式有local.Standalone.on Yarn等. local模式适合程序的开发测试 Standalone模式适合小规模数据 on Yarn适合大数据量大,并且可能依赖于其他计算 ...

  8. spark HA 模式搭建《加入hbase依赖》 (2018【改进红色字体】详细配置)《转载》

    一.准备服务器环境 1.1.服务器规划 ZooKeeper Cluster Host IP zookeeper1 192.168.50.228 zookeeper2 192.168.50.229 zo ...

  9. Spark Standalone和yarn区别

    Spark Standalone模式提交任务 Cluster模式: ./spark-submit \--master spark://node01:7077 \--deploy-mode cluste ...

最新文章

  1. 07年了,新的一年又开始了
  2. 【VC++】Visual Studio编辑器“智能提示(IntelliSense)”异常的解决方案
  3. admob 服务器验证_AdMob服务器注册广告请求,但Ad对象包含“必须声明AdActivity”错误...
  4. HDU - Reversi(dfs+水题)
  5. PulseAudio 设计和实现浅析
  6. Flexbox 布局 – 表单
  7. sv队列和动态数组的区别_Go 刷 LeetCode 系列:经典(7) 设计双端队列
  8. POJ1958-Strange Towers of Hanoi【递推】
  9. java stringutils_Java 笔记----- StringUtils 拼接字符
  10. 苹果xr如何截屏_苹果手机自带的三种截屏技巧,你知道几个?现在知道还不迟...
  11. Ubuntu 16.04安装UML工具StarUML 2
  12. 2019手机浏览器排名_不开玩乐!2019最强手机浏览器
  13. 上位机与西门子PLC通信协议
  14. C++ 获取鼠标点击位置
  15. STM32学习——GPIO应用之按键实验
  16. 一些免费的代理服务器
  17. call方法 java_漫谈JS中的call和apply方法
  18. CH340g的使用说明
  19. BZOJ---4484:[Jsoi2015]最小表示【bitset】
  20. Golang创建DLL

热门文章

  1. mysql 5.6.23 源码包安装报错_CentOS6.5_64bit下编译安装MySQL-5.6.23
  2. BGP小实验——选路不困难,只要有方法
  3. Source Insight 使用教程(1)——新建项目
  4. 编译MiniGUI 程序
  5. 计算机 留学推荐信,计算机专业留学推荐信范文
  6. mysql select 使用_mysql select简单用法
  7. aem是什么意思_一台400匹的宽体RX7不装转子引擎,那装的是什么?
  8. resnet网络结构_深度学习之16——残差网络(ResNet)
  9. Crfe php,新版中国菜刀(20141213)一句话不支持php assert分析
  10. axure 调整中继器列宽_在Axure中用“中继器”实现对表格的增、删、改