如何在 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
【讨论】:
不,它不起作用,因为我没有使用 hiveorg.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 中添加一个罐子?的主要内容,如果未能解决你的问题,请参考以下文章