spark学习-54-Spark RDD的clean()方法

204 篇文章 480 订阅 ¥49.90 ¥99.00
Spark中的ClosureCleaner.clean()方法主要用于处理闭包中的引用问题。在分布式环境中,闭包可能包含不可序列化的外部引用,这会导致在worker节点上执行失败。此方法通过递归检查并移除不可序列化及未使用的引用,降低网络IO,提升executor内存效率。该方法广泛应用于SparkContext的RPC方法中。
摘要由CSDN通过智能技术生成

在这里插入图片描述

1.概述

spark里面,大量使用了一个方法, ClosureCleaner.clean()

// 这里调用了SparkContext的clean方法
    // clean方法实际上调用了ClosureCleaner的clean方法,这里一再清除闭包中的不能序列化的变量,防止RDD在网络传输过程中反序列化失败。
    val cleanF = sc.clean(f)
private[spark
好的,以下是基于Spark用Java写一个Word Count的程序,并打成Jar包的步骤: 1. 确保已经安装好了Java和Spark,并且环境变量已经配置好了。 2. 创建一个Java Maven项目,添加以下依赖到pom.xml文件中: ```xml <dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.2.0</version> </dependency> </dependencies> ``` 3. 创建一个WordCount类,实现Spark的Word Count算法: ```java import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import scala.Tuple2; import java.util.Arrays; import java.util.List; public class WordCount { public static void main(String[] args) { // 创建SparkConf对象 SparkConf conf = new SparkConf().setAppName("WordCount"); // 创建JavaSparkContext对象 JavaSparkContext sc = new JavaSparkContext(conf); // 读取文件 JavaRDD<String> lines = sc.textFile(args[0]); // 将每行数据切分成单词 JavaRDD<String> words = lines.flatMap(line -> Arrays.asList(line.split(" ")).iterator()); // 将单词转换为键值对 JavaRDD<Tuple2<String, Integer>> pairs = words.map(word -> new Tuple2<>(word, 1)); // 按键进行分组并统计数量 JavaRDD<Tuple2<String, Integer>> counts = pairs.reduceByKey((a, b) -> a + b); // 输出结果 List<Tuple2<String, Integer>> output = counts.collect(); for (Tuple2<String, Integer> tuple : output) { System.out.println(tuple._1() + ": " + tuple._2()); } // 关闭JavaSparkContext对象 sc.stop(); } } ``` 4. 在命令行中进入项目目录,执行以下命令打成Jar包: ```shell mvn clean package ``` 5. 将打包好的Jar包上传到HDFS上,例如: ```shell hadoop fs -mkdir /wordcount hadoop fs -put target/wordcount-1.0-SNAPSHOT.jar /wordcount/wordcount.jar ``` 6. 使用spark-submit命令以提交到yarn程序运行: ```shell spark-submit --class WordCount --master yarn --deploy-mode cluster /wordcount/wordcount.jar /input.txt ``` 其中,/input.txt为需要统计的文件路径。 注意:在执行以上步骤前,请确保已经正确配置好了Hadoop和Yarn的环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九师兄

你的鼓励是我做大写作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值