Apache spark apachespark并发程序示例

Apache spark apachespark并发程序示例,apache-spark,concurrency,Apache Spark,Concurrency,我希望以下简单的helloworld程序在apachespark中并行执行100次 public class SimpleHelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } } 所以在并行执行之后,它应该打印100次“Hello World” 如何在独立的Apache Spark中实现这一点?这将在Scala中使用Spark

我希望以下简单的helloworld程序在apachespark中并行执行100次

  public class SimpleHelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
  }
所以在并行执行之后,它应该打印100次“Hello World”


如何在独立的Apache Spark中实现这一点?

这将在Scala中使用Spark 2.x实现您想要的功能:

sparkSession.range(100)
.foreach(_ => println("Hello World"))

但是您不会在驱动程序上看到打印的行,因为它们是在工作节点上执行的

这将在Scala中使用Spark 2.x实现您想要的功能:

sparkSession.range(100)
.foreach(_ => println("Hello World"))

但是您不会在驱动程序上看到打印的行,因为它们是在工作节点上执行的

您好,如果您想在这种情况下运行spark machine

对于Spark作业,您需要首先启动RDD。然后使用Spark action或转换函数进行数据计算。此外,火花自动并联运行

   public class hello world {

        public static void main(String[] args) throws Exception {

                try (JavaSparkContext sc = setupSparkContext()) {

            JavaRDD<String> helloworldRDD = sc.textFile("//your hellworld file");
                helloworldRDD.map(x->{
                    for (int i=0;i<100;i++){

                        System.out.println(x);

                    }
                    return x;

                }).collect();
        }
        }

        private static JavaSparkContext setupSparkContext() {

            SparkConf sc = new SparkConf();

            return App.getSparkContext("helloworld", sc);
        }
    }
公共类hello world{
公共静态void main(字符串[]args)引发异常{
try(JavaSparkContext sc=setupSparkContext()){
JavaRDD helloworldRDD=sc.textFile(//您的hellworld文件);
helloworldRDD.map(x->{

对于(int i=0;iHi),如果您希望在这种情况下运行火花机

对于Spark作业,您需要首先启动RDD。然后使用Spark操作或转换函数进行数据计算。此外,Spark将自动并行运行

   public class hello world {

        public static void main(String[] args) throws Exception {

                try (JavaSparkContext sc = setupSparkContext()) {

            JavaRDD<String> helloworldRDD = sc.textFile("//your hellworld file");
                helloworldRDD.map(x->{
                    for (int i=0;i<100;i++){

                        System.out.println(x);

                    }
                    return x;

                }).collect();
        }
        }

        private static JavaSparkContext setupSparkContext() {

            SparkConf sc = new SparkConf();

            return App.getSparkContext("helloworld", sc);
        }
    }
公共类hello world{
公共静态void main(字符串[]args)引发异常{
try(JavaSparkContext sc=setupSparkContext()){
JavaRDD helloworldRDD=sc.textFile(//您的hellworld文件);
helloworldRDD.map(x->{

for(int i=0;i取决于您真正想要什么:

  • Spark驱动程序中的多线程:例如
  • 导入scala.collection.parallel_ 导入scala.concurrent.forkjoin_ Var池=(0到100) //具有100个并发线程的线程池 pool.tasksupport=新ForkJoinTaskSupport(新ForkJoinPool(100)) pool.foreach(i=>{ println(“你好,世界”) })
  • 每个Spark Executor任务的“多线程”:例如
  • //创建100个分区 var df=sc.parallelize(1到100100).toDF() //每个分区打印“hello world” foreachPartition(=>println(“helloworld”))
    取决于您真正想要什么:

  • Spark驱动程序中的多线程:例如
  • 导入scala.collection.parallel_ 导入scala.concurrent.forkjoin_ Var池=(0到100) //具有100个并发线程的线程池 pool.tasksupport=新ForkJoinTaskSupport(新ForkJoinPool(100)) pool.foreach(i=>{ println(“你好,世界”) })
  • 每个Spark Executor任务的“多线程”:例如
  • //创建100个分区 var df=sc.parallelize(1到100100).toDF() //每个分区打印“hello world” foreachPartition(=>println(“helloworld”))
    您意识到您不会看到“Hello World”,因为这些语句是在工作节点上执行的?谢谢您的评论!我可以在哪里定义将运行此程序的线程/节点数?我的意思是如何在这里启动多线程?您意识到您不会看到“Hello World”因为这些语句是在工作节点上执行的?谢谢你的评论!在这里我可以定义运行这个程序的线程/节点的数量?我的意思是如何在这里启动多线程?谢谢Raphael!你能解释一下sparkSession.range将做什么吗?@pankaj它将生成一个
    Dataset[Long]
    值介于0到99之间。我的要求是,我希望独立运行此程序,它们之间不共享RDD。我的程序将从一些web服务中获取数据并进行计算,然后存储在数据库中。Spark是启动并行独立任务的好选择吗?谢谢Raphael!请解释一下sparkSession.range将做什么?@pankaj它将生成一个
    数据集[Long]
    值介于0到99之间。我的要求是独立运行此程序,不在它们之间共享RDD。我的程序将从某些web服务获取数据,进行计算,然后存储在数据库中。Spark是启动并行独立任务的好选择吗?