pyspark on yarn启动jupyter连接不上内核

情况说明

centos 7
hadoop 3.1.3
spark 3.1.3
python 3.6.8
我单独启动jupyter、单独启动pyspark以local模式启动jupyter,没有任何问题
但是使用pyspark on yarn启动jupyter连接不上内核

  • jupyter notebook
  • pyspark
  • PYSPARK_DRIVER_PYTHON=ipython PYSPARK_DRIVER_PYTHON_OPTS=“notebook” pyspark
  • HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop pyspark --master yarn --deploy-mode client

以上几种种情况都不会出现这个问题,只有下面这个情况会报错

  • PYSPARK_DRIVER_PYTHON=ipython PYSPARK_DRIVER_PYTHON_OPTS=“notebook” HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop/ MASTER=yarn pyspark

网上找了很多解决方法都对我这个无效
我开始以为是因为spark的问题,换了spark3.2.2 和spark3.1.3都不行

相关报错

  • 报错1
[W 21:51:11.646 NotebookApp] Nudge: attempt 10 on kernel 234207ae-161f-4a57-86e8-5b3e1ffa8aa0
[W 21:51:16.708 NotebookApp] Nudge: attempt 20 on kernel 234207ae-161f-4a57-86e8-5b3e1ffa8aa0
[W 21:51:21.776 NotebookApp] Nudge: attempt 30 on kernel 234207ae-161f-4a57-86e8-5b3e1ffa8aa0
[W 21:51:26.841 NotebookApp] Nudge: attempt 40 on kernel 234207ae-161f-4a57-86e8-5b3e1ffa8aa0
[W 21:51:31.895 NotebookApp] Nudge: attempt 50 on kernel 234207ae-161f-4a57-86e8-5b3e1ffa8aa0
[W 21:51:36.955 NotebookApp] Nudge: attempt 60 on kernel 234207ae-161f-4a57-86e8-5b3e1ffa8aa0
[W 21:51:42.028 NotebookApp] Nudge: attempt 70 on kernel 234207ae-161f-4a57-86e8-5b3e1ffa8aa0
[W 21:51:47.079 NotebookApp] Nudge: attempt 80 on kernel 234207ae-161f-4a57-86e8-5b3e1ffa8aa0
[W 21:51:52.140 NotebookApp] Nudge: attempt 90 on kernel 234207ae-161f-4a57-86e8-5b3e1ffa8aa0
[W 21:51:57.191 NotebookApp] Nudge: attempt 100 on kernel 234207ae-161f-4a57-86e8-5b3e1ffa8aa0
[W 21:52:02.256 NotebookApp] Nudge: attempt 110 on kernel 234207ae-161f-4a57-86e8-5b3e1ffa8aa0
  • 报错2
[E 21:52:07.093 NotebookApp] Uncaught exception GET /api/kernels/234207ae-161f-4a57-86e8-5b3e1ffa8aa0/channels?session_id=87a7386e44e84e2482d3724efdec54b9 (192.168.204.1)
    HTTPServerRequest(protocol='http', host='hadoop001:8888', method='GET', uri='/api/kernels/234207ae-161f-4a57-86e8-5b3e1ffa8aa0/channels?session_id=87a7386e44e84e2482d3724efdec54b9', version='HTTP/1.1', remote_ip='192.168.204.1')
    Traceback (most recent call last):
      File "/usr/local/lib64/python3.6/site-packages/tornado/websocket.py", line 956, in _accept_connection
        await open_result
      File "/usr/lib64/python3.6/asyncio/tasks.py", line 250, in _wakeup
        future.result()
    tornado.util.TimeoutError: Timeout
  • 报错3
[W 21:50:27.980 NotebookApp] Replacing stale connection: 234207ae-161f-4a57-86e8-5b3e1ffa8aa0:87a7386e44e84e2482d3724efdec54b9
[W 21:50:50.097 NotebookApp] Replacing stale connection: 234207ae-161f-4a57-86e8-5b3e1ffa8aa0:87a7386e44e84e2482d3724efdec54b9

解决办法

虽然不知道为什么,但有时候折磨你10几个小时的问题解决,就是这么简单

pip install --upgrade prompt-toolkit==2.0.4

转折

2022年10月19日14:35:34
就当我中午写完这篇博客,下午换了个jupyter-lab测试的时候,发生了转折
问题又出现了。。。

经过我前后两次控制变量发现,当我使用自己定义的
jupyter_lab_config.py文件,就会出现这个问题,让我重新生成,或者删去jupyter_lab_config.py这个文件,就没事了……
因此,问题一定出在我修改的部分选项

我改了以下内容

c.ServerApp.open_browser = False
c.ServerApp.root_dir = '/root/jupyter-workspace'
c.ServerApp.allow_root = True
c.ServerApp.allow_remote_access = True
c.ServerApp.ip = '0.0.0.0'
c.ServerApp.port = 8888

当我设置下面的选项后,即默认打开浏览器,问题解决了。。。

c.ServerApp.open_browser = True

改成True不一定是解决问题的根本原因,感觉设置成True后,因为xshell自身的问题,会一直弹这个窗,卡主我的终端,我点取消又会弹出来。
但是我发现我不点取消,后面终端内容一直不动,点一次取消就出现一点。
在这里插入图片描述当我发现终端提示这部分后
在这里插入图片描述我注意到这是pyspark运行的提示信息,我就让pyspark多跑一会,晚一点去运行ipynb文件
等了30秒左右再运行,就好了。。。

解决办法

不管有没有设置

c.ServerApp.open_browser = True

看见这条信息之后等个30秒到1分钟
在这里插入图片描述等出现这个提示后在这里插入图片描述再去jupyter上运行代码就ok了

个人猜测如果提前运行,可能是会导致jupyter内部连接内核timeout超时,如果等pyspark运行好了,再运行就没事

参考博客

jupyter“到后台服务的连接没能建立.”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值