大数据技术学习笔记(28)执行Spark任务、开发Spark WordCount程序
沉沙 2018-10-08 来源 : 阅读 1518 评论 0

摘要:本篇教程探讨了大数据技术学习笔记(28)执行Spark任务、开发Spark WordCount程序,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

本篇教程探讨了大数据技术学习笔记(28)执行Spark任务、开发Spark WordCount程序,希望阅读本篇文章以后大家有所收获,帮助大家对大数据技术的理解更加深入。

<

一、执行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)本地模式
bin/spark-shell
日志:

Spark context available as 'sc' (master = local[*], app id = local-1518181597235).

(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程序
//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 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程