如何告诉spark和zeppelin在AWS EMR中使用本地maven.m2目录?
我创建了一个aws AMI,其中包含一个本地maven存储库,它位于/usr/local中/ 然后,我使用该AMI创建带有spark和齐柏林飞艇的AWS EMR集群 当我使用pyspark--packages导入jar包时,EMR实例在/home/hadoop中创建一个.ivy目录。齐柏林将在/var/lib/zeppelin/local repo中创建一个ID为名称的目录 我如何让pyspark、spark和zeppelin使用我的本地maven存储库(/usr/local/.m2/repository),而不是创建一个.ivy目录并从mave central下载JAR 我知道我可以使用如何告诉spark和zeppelin在AWS EMR中使用本地maven.m2目录?,maven,apache-spark,amazon-emr,apache-zeppelin,Maven,Apache Spark,Amazon Emr,Apache Zeppelin,我创建了一个aws AMI,其中包含一个本地maven存储库,它位于/usr/local中/ 然后,我使用该AMI创建带有spark和齐柏林飞艇的AWS EMR集群 当我使用pyspark--packages导入jar包时,EMR实例在/home/hadoop中创建一个.ivy目录。齐柏林将在/var/lib/zeppelin/local repo中创建一个ID为名称的目录 我如何让pyspark、spark和zeppelin使用我的本地maven存储库(/usr/local/.m2/repos
pyspark--jars/local/path/to/jar.jar
从本地路径导入jar并复制到.ivy目录,但我宁愿使用spark和zeppelin来使用我的本地maven存储库
另外,如果我在spark-default.conf中设置
spark.driver.extraClassPath
和spark.executor.extraClassPath
/usr/local/.m2/repository/.m2/repository/*则spark将能够在这些目录中查找jar(因为inisde目录不包含.jar striaght,例如/usr/local/.m2/repository/groupId/artifactId/version/name.jar)您应该能够动态加载依赖项,如:
%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")
有关更多详细信息,请查看文档: