2016-03-08 61 views

回答

3

有没有官方的Presto解释为飞艇,并提出了吉拉票的结论是,这是没有必要的,因为你可以只使用JDBC解释

https://issues.apache.org/jira/browse/ZEPPELIN-27

我运行以后EMR与急&飞艇,和口译的默认设置不包括JDBC,但它可以使用SSH到主节点和运行

sudo /usr/lib/zeppelin/bin/install-interpreter.sh --name jdbc

安装

更好的是使用它作为引导脚本。

然后你可以在Zeppelin中添加一个新的解释器。

  1. 点击登录名下拉在齐柏林右上方
  2. 点击解释
  3. 点击+创建

给它一个名称,如急,这意味着你需要使用%急作为zeppelin中段落第一行的指示,或将其设置为默认解释器。

你需要在这里的设置是:

default.drivercom.facebook.presto.jdbc.PrestoDriver

default.urljdbc:presto://<YOUR EMR CLUSTER MASTER DNS>:8889

default.userhadoop

注意有没有提供,因为EMR环境应该使用IAM角色密码,PPK密钥等进行认证。

您还需要一个用于presto JDBC驱动程序jar的依赖项。有几种方法可以在Zeppelin中添加依赖项,但一种简单的方法是通过解码器设置中的参考文件Dependencies

artifact

com.facebook.presto:presto-jdbc:0.170

注意版本0.170对应的Presto的版本目前已经部署在EMR,这将改变未来。您可以在AWS EMR设置中看到正在将哪个版本部署到群集中。

您还可以得到飞艇直接连接到一个目录,或目录&架构通过将附加到default.url JDBC驱动程序 https://prestodb.io/docs/current/installation/jdbc.html

例如设置 按照通过Presto文档作为一个例子,使用的Presto与具有数据库的蜂房metastore称为datakeep

jdbc:presto://<YOUR EMR CLUSTER MASTER DNS>:8889/hive

OR

jdbc:presto://<YOUR EMR CLUSTER MASTER DNS>:8889/hive/datakeep

UPDATE 2018年2月

EMR 5.11.1是使用Presto 0.187,并且Zeppelin解释器向Presto Driver提供属性的方式存在问题,导致类似的错误

目前唯一的解决办法出现在神器被使用的旧版本,或者手动上传补丁似的司机 使用旧参照司机见https://github.com/prestodb/presto/issues/9254https://issues.apache.org/jira/browse/ZEPPELIN-2891

在我的例子(显然必须比0.180更早)例如com.facebook.presto:presto-jdbc:0.179没有工作,齐柏林给了我一个关于无法下载依赖关系的错误。有趣的错误,但可能与Zeppelin的本地Maven回购没有包含这一点,不知道我放弃了。

我可以确认补丁驱动程序工作。

  • (假设你已经安装了Java &行家)
  • 克隆的急板GitHub库
  • 结帐释放标签例如git checkout 0.187
  • 进行编辑按这个补丁https://groups.google.com/group/presto-users/attach/1231343dbdd09/presto-jdbc.diff
  • 构建使用mvn clean package
  • 复制的jar到飞艇机某处飞艇用户罐子都有阅读权限。
  • 在解释器中,在Dependencies-Artifacts部分下,而不是Maven引用使用该jar文件的绝对路径。
  • 将用户传递给presto驱动程序似乎存在问题,因此只需将其作为url参数添加到“default.url”jdbc连接字符串中即可。 jdbc:presto://<YOUR EMR CLUSTER MASTER DNS>:8889?user=hadoop

启动并运行。同时,可能值得考虑的是雅典娜作为Presto的替代品,因为它无服务器&实际上只是Presto的一个分支。它仅限于外部配置单元表,并且它们必须在Athena自己​​的目录中创建(或者现在在AWS Glue目录中,也限制为外部表)。

相关问题