Apache spark edgenode Jupyter笔记本中的spark jdbc连接

Apache spark edgenode Jupyter笔记本中的spark jdbc连接,apache-spark,hadoop,jupyter-notebook,Apache Spark,Hadoop,Jupyter Notebook,我需要使用jdbc连接到Oracle数据库来创建一个数据帧。我正在使用edgenode提供的Jupyter笔记本进行连接。Spark正在Jupyter笔记本电脑的客户端模式下运行。数据库主机和端口没有来自edgenode的连接,但它是从datanodes打开的。但当我尝试创建数据帧时,由于“连接超时”错误,它失败了。这正常吗?我认为它正在尝试从edgenode建立连接,而edgenode无法建立连接?如何确保执行者之间的连接(根据我的说法,理论上应该是这样的)。这是“正常的”。通常,驱动程序节点

我需要使用jdbc连接到Oracle数据库来创建一个数据帧。我正在使用edgenode提供的Jupyter笔记本进行连接。Spark正在Jupyter笔记本电脑的客户端模式下运行。数据库主机和端口没有来自edgenode的连接,但它是从datanodes打开的。但当我尝试创建数据帧时,由于“连接超时”错误,它失败了。这正常吗?我认为它正在尝试从edgenode建立连接,而edgenode无法建立连接?如何确保执行者之间的连接(根据我的说法,理论上应该是这样的)。

这是“正常的”。通常,驱动程序节点(在您的示例中是边缘节点)必须具有与任何工作节点相同的数据访问权限。当数据加载由执行器处理时,驱动程序处理元数据(在您的例子中是获取和转换模式)和计算拆分(此处不相关)。

好的。谢谢你知道有没有办法在集群模式下启动Jupyter笔记本?这样,我的驱动程序就可以在另一个节点上启动,这个节点可以连接到数据库?对此我没有答案。据我所知,没有-集群模式不是为交互过程而设计的-但理论上你可以尝试从脚本中生成一个笔记本服务器。然后,您当然会面临查找它实际运行在哪个节点上以及可能映射端口的问题。