当前位置: 首页 > news >正文

厦门建网站公司天津搜索引擎优化公司

厦门建网站公司,天津搜索引擎优化公司,深圳专业做网站哪家专业,刚刚地震最新消息今天2022打包代码与依赖说明 在开发中,我们写的应用程序通常需要依赖第三方的库(即程序中引入了既不在 org.apache.spark包,也不再语言运行时的库的依赖),我们就需要确保所有的依赖在Spark应用运行时都能被找到 对于Python而…

打包代码与依赖说明

在开发中,我们写的应用程序通常需要依赖第三方的库(即程序中引入了既不在 org.apache.spark包,也不再语言运行时的库的依赖),我们就需要确保所有的依赖在Spark应用运行时都能被找到

  • 对于Python而言,安装第三方库的方法有很多种
    • 可以通过包管理器(如pip)在集群中所有机器上安装所依赖的库,或者手动将依赖安装到python安装目录下的site-packages/目录在
    • 我们也可以通过spark-submit 的 --py-Files 参数提交独立的库
    • 如果我们没有在集群上安装包的权限,可以手动添加依赖库,但是要防范与已经安装在集群上的那些包发生冲突

注意:

​ 提交应用时,绝不要把spark本身放在提交的依赖中。spark-submit会自动确保spark在你的程序的运行路径中

  • 对于Java 和 Scala,可以通过spark-submit 的 --jars 标记提交独立的jar包依赖
    • 当只有一两个库的简单依赖,并且这些库不依赖与其他库时,这种方式比较合适
    • 当需要依赖很多库的使用,这种方式很笨拙,不太适用。
      • 此时的常规做法时使用构建工具(如maven、sbt)生成一个比较大的jar包,这个jar包中包含应用的所有的传递依赖。

使用Maven构建Java编写的Spark Application

参考POM

<repositories><!-- 指定仓库的位置,依次为aliyun、cloudera、jboss --><repository><id>aliyun</id><url>http://maven.aliyun.com/nexus/content/groups/public/</url></repository><repository><id>cloudera</id><url>https://repository.cloudera.com/artifactory/cloudera-repos/</url></repository><repository><id>jboss</id><url>https://repository.jboss.com/nexus/content/groups/public/</url></repository>
</repositories><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><scala.version>2.12.15</scala.version><scala.binary.version>2.12</scala.binary.version><hadoop.version>3.1.3</hadoop.version><spark.version>3.2.0</spark.version><spark.scope>compile</spark.scope>  
</properties><dependencies><!-- 依赖Scala语言--><dependency><groupId>org.scala-lang</groupId><artifactId>scala-library</artifactId><version>${scala.version}</version></dependency><!-- Spark Core 依赖 --><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_${scala.binary.version}</artifactId><version>${spark.version}</version></dependency><!-- Hadoop Client 依赖 --><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>${hadoop.version}</version></dependency>
</dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.10.1</version><configuration><source>${maven.compiler.source}</source><!-- 源代码使用的JDK版本 --><target>${maven.compiler.target}</target><!-- 需要生成的目标class文件的编译版本 --><encoding>${project.build.sourceEncoding}</encoding><!-- 字符集编码 --></configuration></plugin></plugins>
</build>

使用Maven构建Scala编写的Spark Application

参考POM

<repositories><!-- 指定仓库的位置,依次为aliyun、cloudera、jboss --><repository><id>aliyun</id><url>http://maven.aliyun.com/nexus/content/groups/public/</url></repository><repository><id>cloudera</id><url>https://repository.cloudera.com/artifactory/cloudera-repos/</url></repository><repository><id>jboss</id><url>https://repository.jboss.com/nexus/content/groups/public/</url></repository>
</repositories><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><scala.version>2.13.5</scala.version><scala.binary.version>2.13</scala.binary.version><spark.version>3.2.0</spark.version><hadoop.version>3.1.3</hadoop.version>
</properties><dependencies><!-- 依赖Scala语言--><dependency><groupId>org.scala-lang</groupId><artifactId>scala-library</artifactId><version>${scala.version}</version></dependency><!-- Spark Core 依赖 --><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_${scala.binary.version}</artifactId><version>${spark.version}</version></dependency><!-- Hadoop Client 依赖 --><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>${hadoop.version}</version></dependency>
</dependencies><build><plugins><!--maven的打包插件--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.0.0</version><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin><!--该插件用于将scala代码编译成class文件--><plugin><groupId>net.alchim31.maven</groupId><artifactId>scala-maven-plugin</artifactId><version>3.2.2</version><executions><!--绑定到maven的编译阶段--><execution><goals><goal>compile</goal><goal>testCompile</goal></goals></execution></executions></plugin></plugins>
</build>

使用sbt构建Scala编写的Spark Application

目前未使用,暂时未记录

依赖冲突

当我们的Spark Application与Spark本身依赖于同一个库时可能会发生依赖冲突,导致程序崩溃。

依赖冲突通常表现为:

  • NoSuchMethodError
  • ClassNotFoundException
  • 或其他与类加载相关的JVM异常

对于这类问题,主要的两种解决方式:

1)修改Spark Application,使其使用的依赖库版本与Spark所使用的相同

2)通常使用”shading“的方式打包我们的Spark Application

http://www.yayakq.cn/news/925460/

相关文章:

  • 律师事务所东莞网站建设哪些属于功能型网站
  • 中秋网页设计素材网站网站联系qq代码
  • 一个互联网公司可以做几个网站网站怎么建设可以发图评论
  • 旅游网站信息门户建设方案竞价广告点击软件
  • 广州自助网站设计平台网站开发与设计实训报告摘要
  • 中国建设银行龙卡信用卡网站东莞网络技术有限公司
  • 国际网站群建设方案企业网站的信息内容包括什么
  • 建设监理网站成都网页设计培训中心
  • 靓号网站开发平面设计培训机构价位
  • 北京市网站备案查询广西建设领域证书查询官方网站
  • 聊城专业建网站价格上海百度推广优化公司
  • 合肥网站seo服务长尾关键词挖掘精灵
  • 网站解析 cname2345官网
  • 深圳宝安网站推广百度文库个人登录入口
  • 什么是网站易用性做钓鱼网站获利3万
  • 专业做网站设计的公司企业名录app哪个好
  • 二次元动漫网站设计方案工装设计效果图网站
  • 企业网站定制多少钱建程网手机版建设建筑工程网
  • 定兴做网站的在wordpress教程
  • 设计师可以赚钱的网站注册了微信小程序怎么登录
  • 苍南县网站集约化建设丹东网页制作
  • 我司网站改版上线网站建设网站开发周期和进度管理
  • wordpress 开启缩略图seo网站建站
  • 建什么网站收益比较号版面设计图大全 模板
  • 什么是网络营销环境?快速seo优化
  • 岳阳建设网站制作一个彩票网站建设
  • 网站没收录要怎么做成都著名网站
  • 设计网站多少费用多少php电影播放网站开发
  • iis上做的网站外网怎么访问不了鹤壁做网站优化
  • 上海免费建站模板网站标题的重要性