gpt4 book ai didi

java - 如何在 Web 上运行 Apache Spark 作业后获取输出

转载 作者:可可西里 更新时间:2023-11-01 14:20:34 26 4
gpt4 key购买 nike

我是一名学习 Hadoop 和 Apache Spark 的学生。我想知道如何从 Web 上的 Apache Spark Job 获取输出。

以下是在网络上运行 Apache Spark Job 的非常简单的 php 代码,因为我只是想测试它。

<?php
echo shell_exec("spark-submit --class stu.ac.TestProject.App --master spark://localhost:7077 /TestProject-0.0.1-SNAPSHOT.jar");
?>

以下是 Apache Spark 作业的示例 Java 代码。

public class App 
{
public static void main( String[] args )
{
SparkConf sparkConf = new SparkConf().setAppName("JavaSparkPi");
sparkConf.setMaster("spark://localhost:7077");
JavaSparkContext jsc = new JavaSparkContext(sparkConf);

int slices = (args.length == 1) ? Integer.parseInt(args[0]) : 2;
int n = 100000 * slices;
List<Integer> l = new ArrayList<Integer>(n);
for (int i = 0; i < n; i++) {
l.add(i);
}
JavaRDD<Integer> dataSet = jsc.parallelize(l, slices);

JavaRDD<Integer> countRDD = dataSet.map(new Function<Integer, Integer>() {
public Integer call(Integer arg0) throws Exception {
double x = Math.random() * 2 - 1;
double y = Math.random() * 2 - 1;
return (x * x + y * y < 1) ? 1 : 0;
}
});

int count = countRDD.reduce(new Function2<Integer, Integer, Integer>() {
public Integer call(Integer arg0, Integer arg1) throws Exception {
return arg0 + arg1;
}
});

System.out.println("Pi is roughly " + 4.0 * count / n);
jsc.stop();
}
}

我只想获得标准输出,但在运行代码后我得到了空输出。我在 maven 项目上构建了这个 java 代码,所以也检查了它在 cmd 模式下的运行情况。

我该如何解决?

提前感谢您的回答,抱歉我的英语不好。如果您不明白我的问题,请发表评论。

最佳答案

可以说,作业的输出保留在作业中。即使 Spark 很快,也没有快到可以立即生成数据的程度。作业在分布式集群上运行,这需要一些时间。

您必须将输出写入某处,通常写入数据库,然后您可以从 Web 应用程序中查询该数据库。您的工作不是从 Web 应用程序开始的,而是应该根据应用程序的需要进行安排。

如果您从 Java、Scala 或 Python 作业中运行您的作业,您可以直接检索其结果。对于 PHP,我不太确定。

关于java - 如何在 Web 上运行 Apache Spark 作业后获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26315118/

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