Есть ли способ добавить банки, которые находятся в ведре на S3, как зависимость Zeppelin? попробовал z.load(s3n://...)
и z.addRepo(some_name).url(s3n://...)
, но они, похоже, не выполняют эту работу.Как использовать зависимости от S3 в Zeppelin?
1
A
ответ
2
Вы можете загрузить баночки из S3 и поместить их на локальную FS. Это может быть сделано в % отд переводчика, как это:
%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)
Примечание: Вы должны генерировать жира банку, т.е. включать в себя все пользовательские зависимости не предусмотренные по умолчанию (например, если у вас есть несколько модулей в вашем проекте). В 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>
Спасибо большое! Есть ли способ ответить на этот вопрос? благодаря! http://stackoverflow.com/questions/37251236/apache-zeppelin-running-code-automatically-on-startup – shakedzy
Я не думаю, что это работает больше. «DepInterpreter (% dep) устарел. Загружайте зависимость через меню интерпретатора GUI». – Jeremy
Я получил это для работы, следуя инструкциям по загрузке банки в локальную файловую систему .. а затем перейдя в меню интерпретатора и добавив зависимость с тем же путем «/tmp/dependency.jar» – Jeremy