python-Jupyter Spark数据库访问; java.lang.ClassNotFoundExce
我正在使用Python 2.7& jupyter笔记本中的Spark 2.0.2试图访问另一个Docker容器中的mySql数据库.我已经实施了几乎所有可以解决的问题,但仍然无法解决. This是我的模型,因此至少之前已经做过类似的工作.我将笔记本和Dockerfile放在了“ mysql”分支here的公共存储库中以供参考. 失败的代码:
与(摘录,上面引用的笔记本中的完整列表):
在dockerfile内,我添加了所有可能的解决方案:
我确认容器中存在mysql jar文件,然后将其添加到SPARK_OPTS中,以便在笔记本中生成%env:
环境的其他可能相关部分:
我尝试访问的数据库确实存在数据.我使用的过程记录在笔记本的第一个单元格中.我让这个变得太复杂了吗?我缺少什么,还有什么可以尝试的?我感谢您提供解决方案的任何方向! 最佳答案
我通过退后一步来查看是否可以通过python访问数据库并使用ps -aux检查容器内部的spark进程来解决问题
1)所有容器必须在同一网络上进行通信;链接显然还不够.我用了一个新的: 2)我安装了python-mysqldb通过python访问数据库.我在笔记本中执行了此操作,而不是将其添加到dockerfile中.
3)Spark需要libmysql-java并将jar文件复制到/usr/local/spark / jars.据我所知,docker SPARK_OPTS设置无效.我添加到Dockerfile中:
现在一切都很好.如果其他人需要我的确切步骤,我将把示例笔记本留在spark 2 docker repository的mysql分支中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Jersey框架一:Jersey RESTful WebService框架简
- 在vim中,我如何突出显示TODO:和FIXME:?
- Immutable & Redux in Angular Way
- Bootstrap popover 实现鼠标移入移除显示隐藏功能
- shell – 如何检查进程是否在docker容器内运行
- 基于Xfire SOAP Header的WebService安全验证教程
- angular – ng2:如何在ngFor循环中创建变量
- crontab permission denied 解决办法,crontab 进
- Axis2 webservice 各种jar包使用(缺包的异常)
- redis启动报错Could not connect to Redis at 12