如何在 zeppelin 中添加一个罐子?

Posted

技术标签:

【中文标题】如何在 zeppelin 中添加一个罐子?【英文标题】:How to add a jar in zeppelin? 【发布时间】:2016-12-17 09:43:55 【问题描述】:

如何在 Zeppelin 中为 %hive 解释器添加一个 jar?

我试过了

%z.dep('');
add jar <jar path>

还有zeppelin hive interpreter throws ClassNotFoundException

添加到./interpreter/hive/ 通过节俭异常而add jar 说找不到文件。

怎么做?我正在尝试添加 Amazon 的 jsonserde.jar 来解析 DynamoDB 导入。

【问题讨论】:

【参考方案1】:

推荐的方式是使用Zeppelin的Dependency Management

它可以添加jar文件或maven工件。

依赖 jar 将被下载到 local-repo。

注意:如果jar文件是从源代码编译的,当你再次编译时,它不会自动同步(重新下载)。你需要去interpreter设置,点击编辑,确定会触发另一个下载到local-repo。


注意:如果您先使用一个 scala 版本,然后使用另一个版本再次编译。它将报告Exception in thread “main” java.lang.NoSuchMethodError: scala.reflect.api.JavaUniverse.runtimeMirror。用rm -rf local-repo/*删除已经下载的jar


注意:z.dep 已弃用。

【讨论】:

这太酷了! 1. 添加本地存储在主机上的 jar 的属性名称是什么 2. 从 root 或 Zeppelin 安装目录的相对路径是什么? 我只是简单地使用绝对路径。 您使用的属性名称是什么? 它不在Properties 部分。它在Dependencies 部分 我没有那个片段。可能是 zeppelin 版本太旧了。【参考方案2】:

我的 0.5.6 版本适用于以下工作:

%hive
add jar /home/hadoop/jsonserde.jar

【讨论】:

不,它不起作用,因为我没有使用 hive org.apache.zeppelin.interpreter.InterpreterException: paragraph_1510199763504_1388344895's Interpreter %hiv not found【参考方案3】:

在 Zeppelin 0.8.x 上更新

您现在可以使用 %dep%spark.dep(如果使用 Spark)加载外部依赖项或 jar。文档在 zeppline 网站上:Dynamic Dependency Loading

%dep z.load("/path/to/your/packages.jar")

%spark.dep
z.reset() // clean up previously added artifact and repository

// 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")

【讨论】:

【参考方案4】:

示例,在 Zeppelin 0.8.1 中测试:

%dep
z.addRepo("Spark Packages Repo").url("http://dl.bintray.com/spark-packages/maven")
z.addRepo("OSS SNAPSHOTS").url("https://oss.sonatype.org/content/repositories/snapshots")
z.load("org.zouzias:spark-lucenerdd_2.11:0.3.7")

【讨论】:

以上是关于如何在 zeppelin 中添加一个罐子?的主要内容,如果未能解决你的问题,请参考以下文章

如何:Zeppelin + boto3 + AWS 凭证

SBT:如何 Dockerize 一个胖罐子?

如何制作一个 Maven 项目的“胖罐子”? [复制]

如何在 Zeppelin 中使用来自 S3 的依赖项?

如何在 zeppelin 中将数组从 spark 绑定到 javascript?

如何通过编辑 conf/interpreter.json 文件向 Zeppelin 添加新的 jdbc 解释器?