amazon-s3 - 如何在 Zeppelin 中使用 S3 的依赖项?

标签 amazon-s3 apache-zeppelin

有没有办法将 S3 上的存储桶中的 jar 添加为 Zeppelin 的依赖项?尝试了 z.load(s3n://...)z.addRepo(some_name).url(s3n://...) 但他们没有似乎完成了这项工作..

最佳答案

您可以从 S3 下载 jar 并将其放在本地 FS 上。它可以在 %dep 解释器内完成,如下所示:

%dep
import com.amazonaws.services.s3.AmazonS3Client
import java.io.File
import java.nio.file.{Files, StandardCopyOption}

val dest = "/tmp/dependency.jar"
val s3 = new AmazonS3Client()
val stream = s3.getObject("buckename", "path.jar").getObjectContent

Files.copy(stream, new File(dest).toPath, StandardCopyOption.REPLACE_EXISTING)

z.load(dest)

注意:您必须生成 fat jar,即包含默认情况下未提供的所有自定义依赖项(例如,当您的项目中有多个模块时)。在maven中可以使用maven-shade-plugin来实现:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.4.2</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <artifactSet>
                    <includes>
                        <include>com.yourcompany:*</include>
                    </includes>
                </artifactSet>
            </configuration>
        </execution>
    </executions>
</plugin>

关于amazon-s3 - 如何在 Zeppelin 中使用 S3 的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36769539/

相关文章:

amazon-web-services - 为 AWS S3 存储桶中的所有文件设置 HTTP header

python - boto3 中 download_file 和 download_fileobj 有何不同?

apache-spark - 是否有更好的界面可以向Zeppelin添加Highcharts支持

maven - Zeppelin 不加载 Maven jar

docker - Apache Zeppelin 0.8.2 docker 容器登录?

apache-zeppelin - Zeppelin : Jobs are not loading, 显示为正在运行

apache-spark - 如何使用Spark,S3Distcp和AWS EMR将大型数据集从一个s3位置读取和重新分区到另一个

java - 在 Java SDK Amazon S3 中配置路径样式

ruby-on-rails - rails : Best way to allow users to upload images to either a Dropbox linked folder or "our" storage on Amazon S3

scala - Spark 抛出 java.util.NoSuchElementException : key not found: 67