目录

  • Spark:一个独立应用

    • 关于构建

      • Java和Scala
      • Python
    • 初始化SparkContext
      • Python示例
      • Scala示例
      • Java示例
      • 说明
  • 独立应用示例
    • Scala代码
    • 构建文件
    • 说明
    • 构建
      • 新建文件夹下包含的文件
      • 执行构建
  • 运行构建的程序

Spark:一个独立应用

关于构建

Java和Scala

在Java和Scala中,只需要给你的应用添加一个对于spark-core的Maven依赖.

Python

在Python中,可以把应用写成脚本,然后使用Spark自带的bin/spark-submit脚本来运行.spark-submit会引入Python程序的Spark依赖.使用方式如下所示.
/PATH_TO_SPARK/bin/spark-submit my_python_script.py

初始化SparkContext

  • 先创建一个SparkConf对象来配置应用
  • 基于SparkConf创建一个SparkContext对象

Python示例

代码

from pyspark import SparkConf, SparkContextconf = SparkConf().setMaster("local").setAppName("My App")
sc = SparkContext(conf = conf)

运行

spark-submit spark-app.py

Scala示例

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._val conf = new SparkConf().setMaster("local").setAppName("My App")
val sc = new SparkContext(conf)

Java示例

import org.apache.spark.SparkConf
import org.apache.spark.api.java.JavaSparkContextSparkConf conf = new SparkConf().setMaster("local").setAppName("My App");
JavaSparkContext sc = new JavaSparkContext(conf);

说明

上述例子是创建SparkContext的最基本的方法,你只需传递两个参数:

  • 集群URL(上述是local),告诉Spark如何运行连接到集群上
  • 应用名可以用来在集群管理器的用户界面找到该应用

独立应用示例

创建空白目录,在新建目录下,新建文件simpleApp.Scala,添加如下代码.

Scala代码

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConfobject SimpleApp {def main(args: Array[String]) {val logFile = "README.md"val conf = new SparkConf().setAppName("Simple Application")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))}
}

构建文件

在新建目录下,新建文件simple.sbt,复制如下代码.

name := "Simple Application"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.0.0"
  • 使用scala -version命令查看scala版本,使用spark-shell可以查看spark版本及scala版本,使用:quit命令退出spark-shell

说明

  • 程序构建需要安装sbt
  • 程序用来统计README.md文件中包含ab的行数
  • 需要将README.md放到Spark使用的文件系统的相应位置.比如,如果使用的是HDFS,README.md应该放在/user/YOUR_USER_NAME/目录下, 或者将val logFile = "README.md"中的文件路径改为绝对路径,例如:val logFile = "/user/mint/README.md".

构建

新建文件夹下包含的文件

$ ls
simpleApp.scala  simple.sbt

执行构建

$ sbt package
[info] Set current project to Simple Project (in build file:/home/public/program/scala/self-cont-app/)
[info] Updating {file:/home/public/program/scala/self-cont-app/}self-cont-app...
[info] Resolving jline#jline;2.12.1 ...
[info] Done updating.
[info] Compiling 1 Scala source to /home/public/program/scala/self-cont-app/target/scala-2.11/classes...
[info] Packaging /home/public/program/scala/self-cont-app/target/scala-2.11/simple-project_2.11-1.0.jar ...
[info] Done packaging.
[success] Total time: 11 s, completed Sep 8, 2016 3:12:31 PM

运行构建的程序

$ spark-submit --class "SimpleApp" --master local[4] ./target/scala-2.11/simple-project_2.11-1.0.jar
SLF4J: Class path contains multiple SLF4J bindings.
...
Lines with a: 61, lines with b: 27

转载于:https://www.cnblogs.com/bovenson/p/5801538.html

Spark:一个独立应用相关推荐

  1. 重新封装了一下NODE-MONGO 使其成为一个独立的服务.可以直接通过get/post来操作

    # 重新封装了一下NODE-MONGO 使其成为一个独立的服务.可以直接通过get/post来操作 # consts.js 配置用的数据,用于全局参数配置 # log.js 自己写的一个简单的存储本地 ...

  2. 一个独立测试组织工作的五大方面

    一个独立的测试组织开展工作,工作内容是比较复杂的.为了方面区分工作,方便分配任务,可以进行划分.本文提出将其分为如下的五大部分. 测试 环境 交流 团队建设 过程 测试 测试部分主要包括针对项目进行测 ...

  3. 一个独立开发者,他是如何做到月入 20 万的?

    loonggg 读完需要 5分钟 速读仅需2分钟 今天继续分享关于独立开发者赚钱的案例.在分享之前,我想说:说实话,月入 20 万的这个独立开发者,真的是善于观察和发现痛点,能做到月入 20 万,靠的 ...

  4. 第十二节:按住一个独立按键不松手的连续步进触发

    第十二节:按住一个独立按键不松手的连续步进触发. 开场白: 上一节讲了同一个按键短按与长按的区别触发功能,这节要教会大家两个知识点: 第一个知识点:如何在上一节的基础上,略作修改,就可以实现按住一个独 ...

  5. 如何搭建一个独立博客——简明Github Pages与Hexo教程

    (?)[-] http://cnfeat.com/2014/05/10/2014-05-11-how-to-build-a-blog/ 摘要:这是一篇很详尽的独立博客搭建教程,里面介绍了域名注册.DN ...

  6. 一个独立开发者的逆袭成长之路

    什么是独立开发者 对于独立开发者并没有一个严格的定义,既没有人数的限制,也没有具体工作内容的说明,不过一般大家都认可的观点就是,独立开发者是指那些通过单独地开发应用而养活自己的程序员,他们没有正式工资 ...

  7. 创新工场CTO王咏刚:人类最后一个独立写作的纪元

    原载:半轻人  作者:王咏刚  量子位 报道 | 公众号 QbitAI 编者按:这是一篇AI科学家给科幻小说写的序,但也可看作一位AI研究者对于AI能做什么.不能做什么,与科幻想象之间还有多少差距的解 ...

  8. 电路-戴维南定理(一个独立电压源和一个线性电阻相串联等效),最大功率传输条件

    定理内容: 任何一个含有独立电源的线性二端口电阻电路,对外电路而言可以用 一个独立电压源和一个线性电阻相串联 的电路等效替代:其独立电压源的电压为该含源二端口电路在 端口处的开路电压Uoc :其串联线 ...

  9. 搭建一个独立网站用什么软件或系统?

    这个资讯爆炸的时代,网络的普及下,连日记也被搬到网络上,称为Blog(博客.网络日志).相信人人都有一个属于自己的Blog,但你了解Blog吗?我们在现实中,常常会听到这么一句话:「你有没有新浪?」新 ...

  10. 一个独立开发者的自白:我如何在一年赚得60万美元(IOS儿童教育软件)

    一个独立开发者的自白:我如何在一年赚得60万美元 发表于6小时前| 1787次阅读| 来源L'Escapadou博客| 7 条评论| 作者L'Escapadou 推广盈利移动开发移动应用开发经验iOS ...

最新文章

  1. C# CAD对象 构造时应把它的父对象也加进它的属性里
  2. dhcp snooping+IPSG的一些理解
  3. python爬虫经典段子_Python爬虫实战(1):爬取糗事百科段子
  4. zbox mysql_20190213云服务器部署禅道
  5. fusioncharts json java,FusionCharts使用教程:利用XML/JSON属性加载外部LOGO
  6. LeetCode Length of Longest Fibonacci Subsequence
  7. 数据分析告诉你,韦小宝跟他七个老婆哪个最亲?
  8. 字符串hash(类似于进制的hash)
  9. 职高计算机专业小白可以读吗,「高考从小白到精通」报考计算机类专业是否是一个正确的选择?...
  10. 设计模式之二 工厂模式
  11. c语言函数库入门,C语言库函数
  12. python制作通讯录
  13. adapterview android,[Android]ListView+AdapterView
  14. Unity实现2D小游戏
  15. 坦克大战Java项目四
  16. DAVINCI DM365-DM368开发攻略—U-boot-2010.12-rc2-psp03.01.01.39及UBL的移植
  17. contest1 CF70 BetaRound ooxxx ooxxx ooooo
  18. 钰泰半导体ETA4034爆款OVP+OCP+NTC+OTP+FAULT五合一方案, 兼容BQ24314
  19. 番外11:使用ADS对射频功率放大器进行非线性测试3(使用带宽5MHz的WCDMA信号进行ACLR测试)
  20. 心灵成长的六个定律 (2) - By 武志红

热门文章

  1. 非旋Treap——维护数列
  2. Linux编程中 #define _XOPEN_SOURCE的作用
  3. [Kali_Nethunter] Kali 推出Android端渗透测试系统Nethunter
  4. 条款十一: 为需要动态分配内存的类声明一个拷贝构造函数和一个拷贝赋值运算符...
  5. 首张牌照花落“东方购物” 或抬高电视购物门槛
  6. Python搭建简易HTTP服务(3.x版本和2.x版本的)
  7. 大数据时代的可扩展性数据库集群技术
  8. IIS------IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决办法
  9. Nagios监控数据脚本记录一下。
  10. QTP连接数据库,并将数据保存至Excel中