关于IDEA创建spark maven项目并连接远程spark集群问题

 更新时间:2021年08月30日 16:56:50   作者:PolarisHuster  
这篇文章主要介绍了IDEA创建spark maven项目并连接远程spark集群,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

环境:

scala:2.12.10

spark:3.0.3

1、创建scala maven项目,如下图所示:

2、

不同版本scala编译参数可能略有不同,笔者使用的scala版本是2.12.10,scala-archetype-simple插件生成的pom文件

<plugin>
  <groupId>org.scala-tools</groupId>
  <artifactId>maven-scala-plugin</artifactId>
  <version>2.15.0</version>
  <executions>
    <execution>
      <goals>
        <goal>compile</goal>
        <goal>testCompile</goal>
      </goals>
      <configuration>
        <args>
          <arg>-make:transitive</arg>
          <arg>-dependencyfile</arg>
          <arg>${project.build.directory}/.scala_dependencies</arg>
        </args>
      </configuration>
    </execution>
  </executions>
</plugin>

要去除-make:transitive这个参数,否则会报错。

3、创建SparkPi Object类

object SparkPi {
 
  def main(args: Array[String]): Unit = {
    val spark = SparkSession
      .builder
      .appName("Spark Pi")
      .master("spark://172.21.212.114:7077")
      .config("spark.jars","E:\\work\\polaris\\polaris-spark\\spark-scala\\target\\spark-scala-1.0.0.jar")
      .config("spark.executor.memory","2g")
      .config("spark.cores.max","2")
      .config("spark.driver.host", "172.21.58.28")
      .config("spark.driver.port", "9089")
      .getOrCreate()
    //spark = new SparkContext(conf).
    val slices = if (args.length > 0) args(0).toInt else 2
    val n = math.min(100000L * slices, Int.MaxValue).toInt // avoid overflow
    val count = spark.sparkContext.parallelize(1 until n, slices).map { i =>
      val x = random * 2 - 1
      val y = random * 2 - 1
      if (x*x + y*y <= 1) 1 else 0
    }.reduce(_ + _)
    println(s"Pi is roughly ${4.0 * count / (n - 1)}")
    spark.stop()
  }
}

4、执行打包命令:

5、点击Idea Run执行即可:

6、结果如下所示:

PS:

 1、创建SparkSession时需要指定Idea所在机器ip地址,因为默认会把Spark Driver所在机器域名发送过去,导致无法解析(在spark 服务器上配置IDEA所在机器域名也可以,但是这样太不灵活)

2、spark-3.0.3默认使用的scala版本是2.12.10,所以要注意IDEA使用scala版本,否则会出现SerailizableId不一致的兼容问题

到此这篇关于IDEA创建spark maven项目并连接远程spark集群的文章就介绍到这了,更多相关IDEA spark集群内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java awt生成签名图片如何消除锯齿化

    java awt生成签名图片如何消除锯齿化

    这篇文章主要介绍了java awt生成签名图片如何消除锯齿化,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • java+selenium实现自动化打开页面的方法

    java+selenium实现自动化打开页面的方法

    今天小编就为大家分享一篇java+selenium实现自动化打开页面的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • spring-redis-session 自定义 key 和过期时间

    spring-redis-session 自定义 key 和过期时间

    这篇文章主要介绍了spring-redis-session 自定义 key 和过期时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • java 折半查找法(二分查找)实例

    java 折半查找法(二分查找)实例

    java 折半查找法(二分查找)实例,需要的朋友可以参考一下
    2013-03-03
  • Java IO流对象的序列化和反序列化实例详解

    Java IO流对象的序列化和反序列化实例详解

    这篇文章主要介绍了Java IO流对象的序列化和反序列化实例详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • 详解shiro缓存机制

    详解shiro缓存机制

    Shiro提供了类似于Spring的Cache抽象,即Shiro本身不实现Cache,但是对Cache进行了又抽象,方便更换不同的底层Cache实现。下面通过实例代码给大家分享shiro缓存机制,感兴趣的朋友一起看看吧
    2017-09-09
  • Java毕业设计实战之食品溯源系统的实现

    Java毕业设计实战之食品溯源系统的实现

    这是一个使用了java+Springboot+Maven+mybatis+Vue+mysql+wd开发的食品溯源系统,是一个毕业设计的实战练习,具有食品溯源该有的所有功能,感兴趣的朋友快来看看吧
    2022-01-01
  • 大话Java混合运算规则

    大话Java混合运算规则

    这篇文章主要介绍了大话Java混合运算规则,小编觉得挺不错的,在这里分享给大家,需要的朋友可以了解下。
    2017-10-10
  • Java中注解与原理分析详解

    Java中注解与原理分析详解

    注解即标注与解析,在Java的代码工程中,注解的使用几乎是无处不在,甚至多到被忽视。本文就来和大家详细说说Java中注解的原理与实现,需要的可以参考一下
    2022-11-11
  • springboot实现mock平台的示例代码

    springboot实现mock平台的示例代码

    本文主要介绍了springboot实现mock平台的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06

最新评论