当前位置: 首页 > 知识库问答 >
问题:

如何告诉spark和zeppelin在AWS EMR中使用本地maven.m2目录?

巢宏富
2023-03-14

我创建了一个aws AMI,其中包含一个本地maven存储库,它位于/usr/local/

当我使用pyspark--packages导入jar包时,EMR实例在/home/hadoop中创建一个.ivy目录。Zeppellin将在/var/lib/zeppelin/local-repo中创建一个ID作为名称的目录

我如何指向pyspark、spark和zeppelin来使用我的本地maven存储库(/usr/local/.m2/repository),而不是创建.ivy目录并从mave Central下载JAR?

我知道我可以使用pyspark--jars/local/path/to/jar.jar将jar从本地路径导入并复制到.ivy目录,但我更愿意使用spark和zeppelin来使用我的本地maven存储库。

另外,如果我在spark-default.conf中设置spark.driver.extraclasspathspark.executor.extraclasspath/usr/local/.m2/repository/*,那么spark将能够在这些目录中查找JAR(因为inisde目录不包含.jar striaght,例如/usr/local/.m2/repository/groupid/artifactid/version/name.jar)

共有1个答案

麹凯捷
2023-03-14

您应该能够动态加载依赖项,如:

%spark.dep

// add maven repository
z.addRepo("RepoName").url("RepoURL")

// add maven snapshot repository
z.addRepo("RepoName").url("RepoURL").snapshot()

// add credentials for private maven repository
z.addRepo("RepoName").url("RepoURL").username("username").password("password")

// add artifact from filesystem
z.load("/path/to.jar")

// add artifact from maven repository 
z.load("groupId:artifactId:version") 

有关更多详细信息,请查看文档:https://zeppelin.apache.org/docs/latest/interpreter/spark.html#3-dynamic-dependency-loading-via-sparkdep-interpreter

 类似资料:
  • 问题内容: 我想用Cython包装一个包含C ++和OpenMP代码的测试项目,并通过文件与distutils一起构建它。我文件的内容如下所示: 该标志与gcc一起用于针对OpenMP进行编译和链接。但是,如果我只是调用 由于编译器是clang,因此无法识别此标志: 我尝试指定gcc失败: 如何告诉distutils使用gcc? 问题答案: 尝试使用os.environ从setup.py内部设置“

  • 我想用Cython包装一个包含C和OpenMP代码的测试项目,并通过一个文件用distutils构建它。我的文件内容是这样的: 标志与gcc一起用于编译和链接OpenMP。然而,如果我只是调用 无法识别此标志,因为编译器为clang: 我尝试指定gcc失败: 如何告诉distutils使用gcc?

  • 我的项目使用Android Volley网络框架已经很久了,但是最近我发现了一个发布在互联网上的SSL 3.0协议bug。 我想知道如何找出我的项目使用的TLS版本,以及如何确认库是否更新。 这是我的源代码片段: 我认为重点是HurlStack类,它取决于包,但是我不知道TLS/SSL配置在哪里。

  • 我有以下类和映射器来映射它们。如何将地图结构配置为“不”使用龙目岛构建器?(不删除@Builder注释)?使用最新版本的龙目岛和地图结构时,地图结构将在使用@Builder注记时自动使用构建器。我找不到禁用它的方法,因为我需要在@AfterMapping方法中使用实例,因为构建器不会公开所有必需的方法(@SuperBuilder在此用例中是不允许的)

  • 我一直试图用Spark2.0配置Apache Zeppeling。我设法将它们都安装在linux操作系统上,并将spark设置在8080端口上,而zeppelin服务器设置在8082端口号上。 在zeppelin的zeppelin-env.sh文件中,我将SPARK_HOME变量设置为Spark文件夹的位置。 然而,当我试图创建一个新节点时,没有正确的编译。我似乎没有配置解释器,因为开始选项卡中缺

  • 我一直在尝试使用Spark中的加载本地文件。 我已经读过[问题]:如何在sc.textfile中加载本地文件,而不是HDFS Centos 7.0上中有本地文件 使用时,出现如下错误。 16/12/27 12:15:56警告TaskSetManager:stage 5.0中丢失任务0.0(TID 36,):java.io.FileNotFoundException:File File:/home/