是否可以在AWS EMR 4.3上将Presto解释器添加到Zeppelin,如果有,是否有人可以发布说明?我在EMR上运行Presto-Sandbox和Zeppelin-Sandbox。Presto在电子病历上的Zeppelin解释器
回答
Chris Kang在火花外壳上做了一个很好的贴子,http://theckang.com/2016/spark-with-presto/。我没有看到你在齐柏林飞艇上无法做到这一点。另一个有用的帖子是确保你在EMR中有正确的Java版本,http://queirozf.com/entries/update-java-to-jdk-8-on-amazon-elastic-mapreduce。目前的Presto版本只能在Java 8上运行,我希望它能让你朝着正确的方向发展。
有没有官方的Presto解释为飞艇,并提出了吉拉票的结论是,这是没有必要的,因为你可以只使用JDBC解释
https://issues.apache.org/jira/browse/ZEPPELIN-27
我运行以后EMR与急&飞艇,和口译的默认设置不包括JDBC,但它可以使用SSH到主节点和运行
sudo /usr/lib/zeppelin/bin/install-interpreter.sh --name jdbc
更好的是使用它作为引导脚本。
然后你可以在Zeppelin中添加一个新的解释器。
- 点击登录名下拉在齐柏林右上方
- 点击解释
- 点击+创建
给它一个名称,如急,这意味着你需要使用%急作为zeppelin中段落第一行的指示,或将其设置为默认解释器。
你需要在这里的设置是:
default.driver
com.facebook.presto.jdbc.PrestoDriver
default.url
jdbc:presto://<YOUR EMR CLUSTER MASTER DNS>:8889
default.user
hadoop
注意有没有提供,因为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/9254和https://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目录中,也限制为外部表)。
- 1. 电子病历Oozie示例
- 2. 我试图基于在电子病历
- 3. 无法导入电子病历mrjob
- 4. 电子病历互通/客户端
- 5. 重新使用Zeppelin解释器设置
- 6. Apache Zeppelin:在Windows上配置python解释器
- 7. 在启动集群时在EMR上配置Zeppelin的Spark解释器
- 8. %spark.r解释器在Zeppelin中不工作0.6.1
- 9. Zeppelin的Hive解释器抛出空指针异常
- 10. 无法访问Zeppelin中的解释器设置
- 11. q解释器不记得在Ubuntu上的历史记录16.04
- 12. AWS'电子病历与EC2定价混淆
- 13. zeppelin配置单元解释器抛出ClassNotFoundException
- 14. Zeppelin R解释器无法做任何事情
- 15. 在Linux上prolog解释器?
- 16. 如何在Zeppelin中更改Python解释器的python安装位置?
- 17. iPhone上的电子邮件不能解释HTML
- 18. 电子邮件被解释为两个电子邮件
- 19. Zeppelin在使用REST api进行身份验证后重新启动解释器
- 20. 请解释AngularJS $注入器的例子
- 21. GBM培训与电子病历上的苏打水失败与增加的数据大小
- 22. 以编程方式将罐子添加到通过API的Zeppelin火花解释器
- 23. 在GADT上使用翻译解释器
- 24. 重新启动Zeppelin解释器并保存其参数时出错
- 25. 在windows上安装zeppelin
- 26. 如何在Presto的bigint上运行md5()?
- 27. Presto/Python:如何使用python连接到AWS EMR上的Presto?
- 28. 解析器,解释器和编译器上的学习资源
- 29. 解释列表遍历的条件?
- 30. 请解释发电机和迭代器的概念,很好的例子