gpt4 book ai didi

java - 如何在 Spark 中实现自定义作业监听器/跟踪器?

转载 作者:搜寻专家 更新时间:2023-10-30 21:00:16 30 4
gpt4 key购买 nike

我有一个如下所示的类,当我通过命令行运行它时,我想查看进度状态。类似的东西,

10% completed... 
30% completed...
100% completed...Job done!

我在 yarn 上使用 spark 1.0 并使用 Java API。

public class MyJavaWordCount {
public static void main(String[] args) throws Exception {
if (args.length < 2) {
System.err.println("Usage: MyJavaWordCount <master> <file>");
System.exit(1);
}
System.out.println("args[0]: <master>="+args[0]);
System.out.println("args[1]: <file>="+args[1]);

JavaSparkContext ctx = new JavaSparkContext(
args[0],
"MyJavaWordCount",
System.getenv("SPARK_HOME"),
System.getenv("SPARK_EXAMPLES_JAR"));
JavaRDD<String> lines = ctx.textFile(args[1], 1);

// output input output
JavaRDD<String> words = lines.flatMap(new FlatMapFunction<String, String>() {
// output input
public Iterable<String> call(String s) {
return Arrays.asList(s.split(" "));
}
});

// K V input K V
JavaPairRDD<String, Integer> ones = words.mapToPair(new PairFunction<String, String, Integer>() {
// K V input
public Tuple2<String, Integer> call(String s) {
// K V
return new Tuple2<String, Integer>(s, 1);
}
});

JavaPairRDD<String, Integer> counts = ones.reduceByKey(new Function2<Integer, Integer, Integer>() {
public Integer call(Integer i1, Integer i2) {
return i1 + i2;
}
});

List<Tuple2<String, Integer>> output = counts.collect();
for (Tuple2 tuple : output) {
System.out.println(tuple._1 + ": " + tuple._2);
}
System.exit(0);
}
}

最佳答案

如果您使用的是 scala-spark,此代码将帮助您添加 spark 监听器。

创建你的 SparkContext

val sc=new SparkContext(sparkConf) 

现在您可以在 spark 上下文中添加您的 spark 监听器

sc.addSparkListener(new SparkListener() {
override def onApplicationStart(applicationStart: SparkListenerApplicationStart) {
println("Spark ApplicationStart: " + applicationStart.appName);
}

override def onApplicationEnd(applicationEnd: SparkListenerApplicationEnd) {
println("Spark ApplicationEnd: " + applicationEnd.time);
}

});

Here is用于监听 Spark 计划事件的接口(interface)列表。

关于java - 如何在 Spark 中实现自定义作业监听器/跟踪器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24463055/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com