Spark:如何从其他用户以“yarn_client”模式远程启动 Jupyter

Posted

技术标签:

【中文标题】Spark:如何从其他用户以“yarn_client”模式远程启动 Jupyter【英文标题】:Spark: How to start remotely Jupyter in 'yarn_client' mode from a different user 【发布时间】:2015-10-22 22:50:59 【问题描述】:

假设我有一个 4 节点 Hadoop 集群(在我的例子中是 Cloudera 发行版),每个节点上都有一个名为“hadoop”的用户(“/home/hadoop”)。此外,我还安装了第五台服务器,Jupyter 和 Anaconda,用户名为“ipython”,但没有安装 hadoop。

假设我想通过保留“ipython”用户从第五台服务器以“yarn_client”模式远程启动 Jupyter,我的问题是我的日志中有一个问题,即用户“ipython”不是t 允许(或类似的东西)。

对于信息,我将一个虚拟目录(用于设置 HADOOP_CONF_DIR 环境变量)从 Hadoop 集群复制粘贴到第五台服务器。一切都适用于我的“kernel.json”文件中的“local[*]”设置(幸运的是),但是当我将主值更改为“yarn_client”时问题又出现了(不幸的是)...

有解决这个问题的技巧吗?或者可能有几种不同的技巧?

【问题讨论】:

【参考方案1】:

我有一个使用 pyspark 和 scala native spark 的 CDH5.5 + jupyter 的工作部署。在我的情况下,我使用专用用户来启动 jupyter 服务器,然后从客户端浏览器连接到它。

在分享有关您的问题的一些想法之前,我想指出,如果您的第五台服务器没有紧密连接到您的集群,您应该避免在 yarn-client 模式下启动 pyspark,因为通信延迟肯定会减慢你的工作。据我所知 yarn-cluster 模式不能在没有pyspark-submit 的情况下远程调用

如果您仍然希望您的驱动程序节点在第 5 个服务器中执行,请确保您的用户“ipython”具有访问 hdfs 和其他 hadoop conf 目录的正确权限,您可能需要在其他 hadoop 中创建该用户节点。

还要确保您的 yarn-conf.xml 已正确配置以反映您的 yarn ResourceManager 的地址。

【讨论】:

以上是关于Spark:如何从其他用户以“yarn_client”模式远程启动 Jupyter的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 Spark 以使用由 anaconda 管理的 pandas?

如何使用 JDBC 在 Spark 中的其他数据库中获取表的创建语句

如何从用户定义的输入中上传图像以做出反应?

如何将一行与 spark 数据集中的所有其他行进行比较?

如何以编程方式获取 Spark UI 信息

如何从 spark-shell/spark-submit 运行交互式 Spark 应用程序