Spark单词 统计本地和yarn运行模式

本文详细介绍了如何使用Spark进行单词统计,包括在本地IDEA环境中运行和集群模式下通过YARN提交任务。主要内容涵盖初始化SparkConf,创建SparkContext,数据读取与处理,以及数据保存。此外,还讲解了集群代码的编写和执行命令,以及如何打包JAR文件上传至HDFS。
摘要由CSDN通过智能技术生成

单词统计的思路

1 初始化SparkConf
2 实例SparkContext 与 clustermanger 建立通讯并监控任务(Driver)
3 读取数据 处理数据
4处理完后的数据进行保存

本地运行(IDEA)

def main(args: Array[String]): Unit = {
    // 初始化 sparkConf
    val conf: SparkConf = new SparkConf().setAppName("wc").setMaster("local[*]")
    //实例一个sparkContext
//    没有把 conf 放到 sc 里面去报的异常
//    A master URL must be set in your configuration
    val sc: SparkContext = new SparkContext(conf)
    // 读取数据 处理数据
    val textFile: RDD[String] = sc.textFile("F:\\wordCount.txt")
    /*
    *  线切割
    *  给每个元素标记个1  key 1
    *  对可以 进行分组
    * key1   1,3,4,5,6
    * key2   1,3,4,5,6
    * 对value 进行计算
    * */
    val KV: RDD[(String, Int)] = textFile.flatMap(a=>a.split("  ")).map(b=>(b,1)).reduceByKey(_+_)
    // 保存数据
    KV.collect().foreach(println(_))
  }

集群运行(不要启动spark )Spark 任务提交到yarn 是去

打好jar包
在这里插入图片描述
把数据上传到hdfs 上

集群代码

def main(args: Array[String]): Unit = {


    val conf = new SparkConf().setAppName("sywc")

    val sc = new SparkContext(conf)

    val date: RDD[String] = sc.textFile(args(0))

    val KV: RDD[(String, Int)] = date.flatMap(x => x.split(" ")).map(z => (z, 1)).reduceByKey(_ + _)

    KV.saveAsTextFile(args(1))
  }

执行命令

/export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/bin/**spark-submi**t \
--class com.czxy.Spark02.Sy \
--master **yarn** \
--deploy-mode cluster \
--driver-memory 1g \
--executor-memory 1g \
--executor-cores 2 \
--queue default \
/opt/yarn.jar \
hdfs://node01:8020/words.txt \
hdfs://node01:8020/yarnWC

Spark 全部的pom文件

<?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">
    <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值