Jupyter notebook SSH Tunneling error "Невозможно открыть базу данных сигнатур" - PullRequest
0 голосов
/ 19 марта 2019

В моем университете есть Linux-машина с мощным Jupyter, работающим в кампусе. Вот шаги, которые я использую для входа на удаленный сервер через мой ноутбук с Windows и запуска ноутбука Jupyter на сервере, который можно редактировать в моем локальном браузере через туннелирование ssh, но он всегда выдает мне ту же ошибку:

  1. Установка anaconda и Jupyter на удаленный сервер
  2. Создайте свое окружение и активируйте его
  3. Для туннелирования SSH, вот как я подключаюсь к удаленному серверу на CMD:

    Ssh –L 8000(on my laptop):localhost:8889(on remote server) <MyUserID>@<RemoteServerIP>
    
  4. После этого он запрашивает мой пароль, и я вхожу на удаленный сервер

  5. Чтобы активировать анаконду, я использую следующую команду:

    source $HOME/anaconda3/bin/activate 
    
  6. После входа в анаконду я активирую свою среду:

    conda activate <env_name>
    
  7. После входа в среду, чтобы запустить ноутбук Jupyter, я набираю:

    jupyter notebook
    

    или

    jupyter notebook --no-browser --port=8889 
    
  8. Затем отображается:

    [I 09:04:06.122 NotebookApp] Writing notebook server cookie secret to /run/user/148037468/jupyter/notebook_cookie_secret
    [I 09:04:06.881 NotebookApp] Serving notebooks from local directory: <directoryname>
    [I 09:04:06.881 NotebookApp] The Jupyter Notebook is running at:
    [I 09:04:06.881 NotebookApp] http://localhost:8889/
    [I 09:04:06.881 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
    [I 09:05:10.507 NotebookApp] 302 GET / (::1) 1.43ms
    
  9. Затем на своем ноутбуке я набираю:

    localhost:8000
    

    Он перенаправляет меня на страницу входа, где я успешно вижу свой каталог в блокноте jupyter и нажимаю на файл .ipynb

  10. После этого шага он никогда не загружает ноутбук и отображает следующую ошибку на ноутбуке:

    Не удалось установить соединение с сервером ноутбука. Ноутбук продолжит пытаться восстановить соединение. Проверьте сетевое подключение или конфигурацию сервера ноутбука.

На терминале выдается следующая ошибка:

The signatures database cannot be opened; maybe it is corrupted or encrypted. You may need to rerun your notebooks to ensure that they are trusted to run Javascript. The old signatures database has been renamed to <directory_name>.local/share/jupyter/nbsignatures.db.bak and a new one has been created.
[W 09:17:35.807 NotebookApp] Failed commiting signatures database to disk. 
You may need to move the database file to a non-networked file system, using config option `NotebookNotary.db_file`. Using in-memory signatures database for the remainder of this session.
[W 09:17:35.811 NotebookApp] Notebook plots1.ipynb is not trusted
[W 09:17:35.881 NotebookApp] 404 GET /nbextensions/widgets/notebook/js/extension.js?v=20190319090406 (::1) 17.39ms referer=http://localhost:8000/notebooks/plots1.ipynb
[I 09:17:36.430 NotebookApp] Kernel started: 242b529a-5acd-4b5f-8a6d-356947ab30d2
[W 09:18:36.467 NotebookApp] Timeout waiting for kernel_info reply from 242b529a-5acd-4b5f-8a6d-356947ab30d2
/<directory_name>/anaconda3/envs/braingrid/lib/python3.6/site-packages/notebook/base/zmqhandlers.py:284: RuntimeWarning: coroutine 'WebSocketHandler.get' was never awaited
super(AuthenticatedZMQStreamHandler, self).get(*args, **kwargs)
[W 09:18:38.276 NotebookApp] Replacing stale connection: 242b529a-5acd-4b5f-8a6d-356947ab30d2:dd09ca5465ba404a886c71b3ca787d6b
[W 09:21:36.370 NotebookApp] Notebook plots1.ipynb is not trusted

[IPKernelApp] ERROR | Failed to open SQLite history /<directory_name>/.ipython/profile_default/history.sqlite (database is locked).
[IPKernelApp] ERROR | History file was moved to /<directory_name>/.ipython/profile_default/history-corrupt.sqlite and a new file created.

И ноутбук Jupyter продолжает отображать:

"Connecting to terminal"

Я не знаю, как это исправить. Я новичок в Linux. Ни одна из команд sudo не работает, так как я не являюсь администратором / или не обладаю этими привилегиями

Эта настройка необходима для моей диссертации.

1 Ответ

0 голосов
/ 19 марта 2019

Это может быть проблемой: в вашей записной книжке хранятся подписи (https://jupyter -notebook.readthedocs.io / en / stable / security.html ), которые сообщают браузеру, доверять ли JavaScript или htmlоткрывая тетрадь.Он хранит их в базе данных SQLite.Похоже, что если этот файл базы данных находится в NFS, могут возникнуть проблемы с блокировкой:

Так что это может сработать, чтобы переместить файл в локальную папку на сервере, и указать NotebookNotary.db_file туда.

...