一、执行Spark任务: 客户端
1、Spark Submit工具:提交Spark的任务(jar文件)
(*)spark提供的用于提交Spark任务工具
(*)example:/root/training/spark-2.1.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.1.0.jar
(*)SparkPi.scala 例子:蒙特卡罗求PI

bin/spark-submit --master spark://bigdata11:7077 --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.1.0.jar 100
Pi is roughly 3.1419547141954713
bin/spark-submit --master spark://bigdata11:7077 --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.1.0.jar 300
Pi is roughly 3.141877971395932

2、Spark Shell 工具:交互式命令行工具、作为一个Application运行
两种模式:(1)本地模式
在spark解压目录/bin下执行:./spark-shell
日志:

创建一个文件hellospark.txt

读文件:

 

(2)集群模式
bin/spark-shell --master spark://bigdata11:7077
日志:

Spark context available as 'sc' (master = spark://bigdata11:7077, app id = app-20180209210815-0002).

对象:Spark context available as 'sc'
Spark session available as 'spark' ---> 在Spark 2.0后,新提供
是一个统一的访问接口:Spark Core、Spark SQL、Spark Streaming

sc.textFile("hdfs://bigdata11:9000/input/data.txt") 通过sc对象读取HDFS的文件
.flatMap(_.split(" ")) 分词操作、压平
.map((_,1)) 每个单词记一次数
.reduceByKey(_+_) 按照key进行reduce,再将value进行累加
.saveAsTextFile("hdfs://bigdata11:9000/output/spark/day0209/wc")

多说一句:
.reduceByKey(_+_)
完整
.reduceByKey((a,b) => a+b)

3、开发WordCount程序
http://spark.apache.org/docs/2.1.0/api/scala/index.html#org.apache.spark.package
(1)Scala版本: 在IDEA中

package mydemo

/*
提交
bin/spark-submit --master spark://bigdata11:7077 --class mydemo.MyWordCount /root/temp/MyWordCount.jar hdfs://bigdata11:9000/input/data.txt hdfs://bigdata11:9000/output/spark/day0209/wc1
*/ import org.apache.spark.{SparkConf, SparkContext} //开发一个Scala版本的WordCount
object MyWordCount {
def main(args: Array[String]): Unit = {
//创建一个Config
val conf = new SparkConf().setAppName("MyScalaWordCount") //核心创建SparkContext对象
val sc = new SparkContext(conf) //使用sc对象执行相应的算子(函数)
sc.textFile(args(0))
.flatMap(_.split(" "))
.map((_,1))
.reduceByKey(_+_)
.saveAsTextFile(args(1)) //停止SparkContext对象
sc.stop() }
}

分析WordCount程序执行的过程

Spark 提交任务的流程

最新文章

  1. jdk源码分析红黑树——插入篇
  2. 线条围绕 div 中心转圈 效果
  3. 【转载】PMC/PEC Boundary Conditions and Plane Wave Simulation
  4. python+selenium自动化软件测试(第15章):基础实战(2)
  5. 201521123095 《Java程序设计》第3周学习总结
  6. 微信公众号接口配置验证URL
  7. 15-TypeScript策略模式
  8. 「SQL归纳」树形结构表的存储与查询功能的实现——通过路径方法(非递归)
  9. Linux平台运行jmeter
  10. C#File类常用文件操作以及一个模拟的控制台文件管理系统
  11. SpringCloud系列八:Zuul 路由访问(Zuul 的基本使用、Zuul 路由功能、zuul 过滤访问、Zuul 服务降级)
  12. RDLC报表刷新问题
  13. php \r\n
  14. [LeetCode&Python] Problem 350. Intersection of Two Arrays II
  15. 设置获取cookie,setCookie,getCookie
  16. 让eclipse调试和豌豆荚并存
  17. ipV4&V6的区别
  18. cocos2d-x(十一)Lua开发飞机大战-6-加入子弹
  19. 02.Java入门
  20. 删除lv

热门文章

  1. Comet OJ - Contest #14
  2. vue中出现 There are multiple modules with names that only differ in casing的问题
  3. 苹果浏览器和ios中,时间字符串转换问题
  4. php强大的filter过滤用户输入
  5. php打开csv
  6. 【leetcode 476】. Number Complement
  7. Maven项目构建利器04——Maven的一些核心概念
  8. SpringBoot页面展示Thymeleaf
  9. PAT Basic 1066 图像过滤 (15 分)
  10. java医院交费机