# Notebook 常见问题

如何还是无法解决,请企微联系海聪AI平台服务热线

# ssh连接不上

大概率是sshd server被意外停止了,请在notebook内执行下面命令启动

/usr/sbin/sshd -p 32389 -o "PermitRootLogin yes" -o "PubkeyAuthentication yes" -o "PasswordAuthentication yes" -o "ClientAliveInterval 30" -o "ClientAliveCountMax 2880"

# notebook保存失败

请确保每次notebook保存时,占用空间增量(即相比上一次保存时的增加量)小于4094MB,建议安装环境时少量多次保存。如果保存失败,请先卸载冗余的包或尝试通过以下命令查找冗余文件并清理。

du -h / --max-depth=1
du -h /root/.cache --max-depth=1

将无用临时数据删除掉,再尝试保存

# notebook页面无法访问

如果是因为不小心点击了大文件夹目录,导致notebook异常卡住,请按如下指示恢复:
1.通过ssh进入notebook,请阅读本地终端SSH登录章节 2.在终端执行

ps aux | grep "/usr/bin/python3 /usr/local/bin/jupyter-lab --allow-root --no-browser" | awk '{print $2}' | xargs kill -9

# tensorboard访问方法

1.在notebook内命令行执行(只替换logdir,其它不动)

tensorboard --host=${MY_POD_IP} --port=8887 --path_prefix=/ --logdir=/xxxxxx

example:
tensorboard --host=${MY_POD_IP} --port=8887 --path_prefix=/ --logdir=/workspace/cpfs-data/result/log

2.浏览器访问网址

http://{region}-{notebookId}-8887.notebook.huya.info/

其中,region值有两个:gz2-huyahy和sh-ali,分别对应广州汇云和上海阿里两个集群
notebookId值为当前开放tensorboard所对应的notebook ID值

广州汇云eg:
http://gz2-huyahy-10395-8887.notebook.huya.info/ 

上海阿里集群eg:
http://sh-ali-10395-8887.notebook.huya.info/

# 浏览器兼容问题

推荐使用 Chrome 浏览器

# 如何保存中间结果(持久化存储)

请阅读Notebook数据持久化储存章节,可将中间结果保存到持久化目录中,避免因 notebook 关闭而丢失。

# Notebook页面终端内如何使用复制粘贴?

Mac:

command + c     # 复制
command + v     # 粘贴

Windows:

ctrl + insert   # 复制
shift + insert  # 粘贴 

# 或者使用浏览器本身的复制粘贴
右键复制
右键粘贴

# 如何将自己Notebook里的数据拷贝到别人Notebook里

假如需要将自己Notebook的路径为 /workspace/nas-data/test 目录拷贝到小A的Notebook对应目录 /workspace/nas-data/hello/test 上,可按如下步骤操作:
这里使用rsync进行拷贝,rsync相较于scp好处是支持增量拷贝,支持断点续传。
首先查看小A的Notebook的内网IP地址是多少,在小A的notebook命令行里执行 ip address

root@notebook-kbhte-zmkct:~# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
3: eth0@if1433: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 7a:9d:75:f5:af:39 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.210.49.57/32 brd 10.210.49.57 scope global eth0
       valid_lft forever preferred_lft forever

如上所示, 10.210.49.57 这个即是小A的内网ip,然后需要让小A告诉一下他此notebook的密码是多少。
然后在自己的notebook命令行终端里,开始拷贝:

rsync -av -e 'ssh -p 32389'  /workspace/nas-data/test  root@10.210.49.57:/workspace/nas-data/hello/

注意替换上面命令中的源路径、目标路径和目标内网ip,然后就可以看到拷贝过程了,数据量大的话请耐心等待。

  • 切记:注意和对方沟通要目标路径要保存到哪里,避免意外覆盖对方已有数据!

# 如何在研测机器和Notebook之间互拷数据

  1. 先登录到研测机器,确保有带上私钥,可以执行ssh-add -L查看,有一大串秘钥输出则正常
  2. 编辑vim ~/.ssh/config,写入下面内容:
Host *
    ForwardAgent yes
  1. 执行拷贝,示例如下:
# 请替换下面的username为你oa名,替换notebook_ip为你的notebook ip,替换两个路径,即可
scp -r -P 32389 -o ProxyCommand='ssh -p 32200 -q username@fort.huya.com -W %h:%p' root@notebook_ip:/path/to  local_path

# Jupyter notebook点击运行没反应

一般是由于升级了ipykernel导致的,尝试降低版本修复。

pip3 install ipykernel==5.5.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

# 在Notebook上使用Spark

任意带一个python3.7的镜像即可,比如:registry-haiyan.local.huya.com/machine-learn/platform_python:py37_v3.0
使用如下命令装一下py4j:pip3 install py4j -i https://pypi.tuna.tsinghua.edu.cn/simple
然后参考这里,设置一下hadoop权限:点击这里跳转 (opens new window)
然后就能正常用了,下面是示例代码:

import sys
sys.path.append('/data/apps/spark/python')
import os
from pyspark import SparkConf, SparkContext
from pyspark.sql import SparkSession

os.environ["HADOOP_USER_NAME] = "dw_xxx@tokenxxxxxxxxxx"  # 请替换这个为前面获取到的hadoop权限token

conf = SparkConf()
conf.set("spark.sql.crossJoin.enabled", "true")
conf.set('spark.yarn.queue','dplat.cm')
conf.set("spark.hadoop.hive.exec.dynamic.partition.mode","nonstrict")
conf.set("spark.sql.sources.partitionOverwriteMode","dynamic")


sc = SparkContext(conf=conf)
spark = SparkSession.builder.appName('app').enableHiveSupport().getOrCreate()

#spark.sql("set hive.exec.dynamic.partition.mode=nonstrict")
df = spark.sql("select 1")

注意,请把代码中的spark.yarn.queue根据下表中的对应关系,替换为你们部门组的队列,避免把任务提交到其它部门去了(如果表中未找到,请联系zhangjiahuang咨询使用哪个)。

spark.yarn.queue 一级部门 二级部门
abtest_cm 业务研发线 数据决策技术部
adhoc2_ops_dis2_cm 基础保障部 基础运维组
bistat_ana_cm 数据技术部 经营分析中心
bistat_gov_cm 数据技术部 经营分析中心
bistat_midp_cm 数据技术部 经营分析中心
bml_cm 业务研发线 数据决策技术部
content_cm 内容线 内容线
dplat_cm 基础保障部 大数据平台组
dw_cm 数据技术部 数据治理中心
huyaee_cm 业务研发线 工程效能
li0svr_cm 业务研发线 虎牙直播研发部
liweb_cm 业务研发线 虎牙直播研发部
misc_cm 基础保障部 大数据平台组
mix0cube_cm 数据技术部 数据治理中心
next_cm 创新内容部 NEXT项目组
ops_cm 基础保障部 基础运维组
udb_cm 业务研发线 运营平台技术部
video0net_cm 音视频网络技术部 音视频数据组

# 安装pip包时空间不够

请修改临时缓存文件夹试试:TMPDIR=/workspace/nas-data/tmp
比如:

# 可选:建议先清理掉缓存,释放空间来安装
rm -rf /root/.cache/pip
# 替换torch为你待安装的包
mkdir /workspace/nas-data/tmp
TMPDIR=/workspace/nas-data/tmp pip3 install -U --no-cache torch -i https://pypi.huya.info/simple/

小提示

请不要将TMPDIR环境变量设置为全局生效,因为这个环境不单pip会用到,其它很多库也可能会用到,设为全局可能会潜在影响其它库正常运行

# vscode网页端使用copilot

  1. 点击左侧"Account" -> "Sign in with GitHub to use GitHub Copilot (1)"
  2. 弹窗点击"Copy & Continue to GitHub"
  3. 弹窗点击"open",跳转虎牙copilot授权页面,等待授权完成 具体可参考以下gif

目前已知问题:

  1. ubuntu18及以下版本 无法正常使用copilot插件,若需要使用,请将镜像升级到ubuntu20或以上版本