Рубрики
Без рубрики

Запуск ваших записных книжек JuPyTeR в облаке

Изучайте и исследуйте мир ноутбуков, то есть ноутбуков Jupyter, как его установить с помощью контейнера docker, а затем сделайте то же самое в облаке. Помечены записными книжками jupyter, java, graalvm, облаком.

В конце моей предыдущей статьи о том, как создать и запустить контейнер docker с помощью Jupiter , я расскажу о том, как мы можем запустить это на облачной платформе.

Мы попытаемся сделать это на Oracle Cloud Infrastructure (OCI) . Теоретически, мы должны иметь возможность делать все в блоге на любой виртуальной машине или экземпляре Baremetal. Если вы новичок в Oracle Cloud, я бы посоветовал ознакомиться с документами и Начало работы разделы документов . Вы также найдете несколько информационных ссылок в нижней части этого поста, в разделе Ресурсы .

Я нашел учебное пособие по настройке экземпляра виртуальной машины простым и полезным — я рекомендую взглянуть и выполнить следующие действия. Примите к сведению предварительные условия, прежде чем приступить к созданию экземпляра виртуальной машины и ssh -вход в него — это будет включать создание отсеков, подсетей, списков безопасности, среди прочего, прежде чем вы сможете создать виртуальную машину.

Вы заметили, что у вас должна быть учетная запись, чтобы иметь возможность получить доступ к облачной панели мониторинга и продолжить.

Вы можете зарегистрироваться, перейдя по ссылке oracle.com а также для cloud.oracle.com — рекомендуем зарегистрироваться через эти порталы. Возможно, вы даже получите право на БЕСПЛАТНЫЕ кредиты, как только сделаете это (достаточно, чтобы провести выходные, управляя вашими любимыми экземплярами).

Панель управления — вход в систему Как только вы зарегистрируетесь, вы войдете в систему через cloud.oracle.com/sign-in который приведет вас на страницу, подобную этой

Следуйте инструкциям, описанным в руководстве по настройке экземпляра виртуальной машины , и дайте вашей виртуальной машине и другим ресурсам имена (используйте инициалы в качестве префикса), которые вы можете легко идентифицировать. Это запустит запрос на создание виртуальной машины (если все ваши записи действительны) — и менее чем через 15 секунд у вас должна быть виртуальная машина, готовая к использованию.

Как только экземпляр виртуальной машины будет создан, запишите Общедоступный IP-адрес экземпляра. Все запущенные виртуальные машины можно найти, перейдя в Компьютер > Экземпляр в меню навигации слева:

Выберите запущенную виртуальную машину, щелкнув по ней:

который приведет вас на страницу сведений о виртуальной машине, где вы сможете найти Общедоступный IP-адрес :

Примечание: Общедоступный IP-адрес будет отличаться для каждой созданной виртуальной машины, указанный выше является временным.

зажим

Доступ к OCI можно получить с помощью инструмента командной строки под названием circle , который можно установить, следуя инструкциям , указанным в документах CLI . После установки команда для ее вызова называется oci и вы можете вызвать его, выполнив следующие действия:

    $ oci --help
    Usage: oci [OPTIONS] COMMAND [ARGS]...
    Oracle Cloud Infrastructure command line interface, with support for
    Audit, Block Volume, Compute, Database, IAM, Load Balancing, 
Networking, DNS, File Storage, Email Delivery and Object Storage 
Services.
    Most commands must specify a service, followed by a resource type 
and then an action. For example, to list users (where $T contains the 
OCID of the current tenant):

    oci iam user list --compartment-id $T

    Output is in JSON format.

    For information on configuration, see
    https://docs.cloud.oracle.com/Content/API/Concepts/sdkconfig.htm.

    Options:
    <-- snipped -->

    Commands:
    <-- snipped -->

Таким образом, здесь и далее нам по большей части не понадобится панель управления. Мы также НЕ будем освещать использование инструмента CLI в этом посте.

Вход в экземпляр виртуальной машины Затем вы можете ssh в поле (см. документы по подключению через ssh ) и выполнить остальные действия ниже.:

    ### Oracle Linux and CentOS images, user name: opc
    ### the Ubuntu image, user name: ubuntu
    $ ssh -i ~/.ssh/id_rsa ubuntu@132.145.78.136
    or
    $ ssh ubuntu@132.145.78.136

Установка git Для этого поста в блоге мы выбрали Канонический Ubuntu Linux ( Канонический-Ubuntu-16.04–2019.08.14–0 ) как образ нашей операционной системы, который поставляется с apt-get и git установлен, так что нам не нужно ничего там делать.

Клонирование нашего репозитория Мы можем клонировать ваше репозиторий и выполнить остальные шаги:

    $ git clone https://github.com/neomatrix369/awesome-ai-ml-dl
    $ cd awesome-ai-ml-dl/examples/JuPyteR

Установка докера Документы Docker для установки Docker в Ubuntu можно найти на сайте Docker . Также был предоставлен сценарий bash для ускорения процесса, хотя целевой операционной системой здесь является Ubuntu 16.04 или выше:

    $ cd build-docker-image
    $ ./installDocker.sh

Примечание: в случае, если вы выберете другой образ ОС во время создания виртуальной машины, вам придется установить Docker вручную с помощью документов из Docker или изменить приведенный выше сценарий, чтобы он работал для целевой ОС.

Создание образа Jupyter Docker

    $ cd build-docker-image
    $ sudo ./buildDockerImage.sh

В этой конкретной среде нам необходимо передать судо ключевое слово перед каждой командой docker. Возможно, вам не придется делать это в вашей местной среде или где-либо еще.

Запуск записной книжки Jupyter в качестве контейнера Docker

    $ cd [back into the project root folder]
    $ sudo ./runDockerContainer.sh

Это покажет вам консоль, подобную этой:

    <--- snipped --->
    OpenJDK Runtime Environment (build 9.0.4+11)
    OpenJDK 64-Bit Server VM (build 9.0.4+11, mixed mode)
    PATH=/home/jupyter/.local/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr
/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    ~~~ JDK9, Linux only: We are enabling JVMCI flags (enabling Graal as 
Tier-2 compiler) ~~~
    ~~~ Graal setting: please check docs for higher versions of Java and 
for other platforms ~~~
    JAVA_OPTS=-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI 
-XX:+UseJVMCICompiler
    JAVA_TOOL_OPTIONS=-XX:+UnlockExperimentalVMOptions 
-XX:+UseCGroupMemoryLimitForHeap -XX:+UnlockExperimentalVMOptions 
-XX:+EnableJVMCI -XX:+UseJVMCICompiler
    Available kernels:
      python2    /home/jupyter/.local/share/jupyter/kernels/python2
      java       /usr/share/jupyter/kernels/java
    [I 13:39:35.993 NotebookApp] Writing notebook server cookie secret 
to /home/jupyter/.local/share/jupyter/runtime/notebook_cookie_secret
    [I 13:39:36.293 NotebookApp] Serving notebooks from local directory: 
/home/jupyter
    [I 13:39:36.294 NotebookApp] The Jupyter Notebook is running at:
    [I 13:39:36.295 NotebookApp] http://(81dde8675279 or 
127.0.0.1):8888/?token=bb0c81ef7e9f3932355b953163702aa2d9f75e18005e6e48
    [I 13:39:36.297 NotebookApp] Use Control-C to stop this server and 
shut down all kernels (twice to skip confirmation).
    [C 13:39:36.310 NotebookApp]
    To access the notebook, open this file in a browser:
            file:///home/jupyter/.local/share/jupyter/runtime/nbserver-
28-open.html
        Or copy and paste one of these URLs:
            http://(81dde8675279 or 127.0.0.1):8888/?
token=bb0c81ef7e9f3932355b953163702aa2d9f75e18005e6e48

Запишите URL-адрес и замените 127.0.0.1 с вашим Общедоступным IP-адресом т.е. 132.145.78.136 . Вы также можете видеть из приведенных выше журналов, что мы используем Java 9 (построенную на ферме AdoptOpenJDK ) и включаем компилятор GraalVM в качестве компилятора Hotspot C2 (см. Переключатели для включения компилятора GraalVM в Java 9 для включения компилятора GraalVM

Открытие записной книжки Jupyter в вашем браузере Зайдите в браузер и попробуйте открыть это:

    http://132.145.78.136:8888/?token=bb0c81ef7e9f3932355b953163702aa2d9f75e18005e6e48

Ааа! Это НЕ работает! Это связано с тем, что мы не открыли порт 8888 из нашей облачной сети (через Правила входа, подробнее об этом читайте здесь ) внешнему миру (общественности):

Нам нужно будет добавить вышеуказанную запись в раздел Правила входа , вы можете перейти на страницу Правила входа через меню навигации: Сеть > Виртуальные облачные сети > Сведения о виртуальной облачной сети > Списки безопасности, которые приведут вас на страницу со списками безопасности по умолчанию . * * Щелкнув список безопасности, соответствующий вашей виртуальной облачной сети ** (VCN) , вы попадете на вышеуказанную страницу Правила входа .

В случае, если вы все еще не можете его найти, выполните поиск по термину безопасность используя функцию поиска на любой странице облачной консоли (см. Увеличительное стекло 🔍 вверху страницы). Это покажет вам все ** Списки безопасности по умолчанию , и нажатие на них приведет вас на страницу Правила входа выше (у вас может быть только одна запись в списке безопасности). Примечание: Вход означает трафик, поступающий в экземпляр сети/виртуальной машины.

Почему порт 8888, это потому, что мы настроили его таким образом в сценариях docker, взгляните на источники , чтобы узнать, почему и как.

Сделав все вышесказанное: вуаля! Мы видим стартовую страницу Jupiter в браузере:

И вы можете видеть, что ноутбук на базе Java доступен для игры! Попробуйте следующее, создав новый блокнот Java в браузере:

Попробуйте следующее, создав новый блокнот Java в браузере: Вы также можете создавать записные книжки на Python, а не только на Java — в этом прелесть записных книжек Jupyter.

Для краткости мы не рассматривали этот аспект, но если вы посмотрите на сценарии, связанные с созданием и запуском экземпляра Jupiter, вы увидите, что сценарии сборки docker создают и запускают экземпляр с помощью отдельных сценариев, которые могут выполняться самостоятельно в таком порядке:

$ сборка компакт-диска-докер-образ $ [установите Java 9 SDK и укажите ПУТЬ и JAVA_HOME] $ ./установка-jupyter-ноутбуки.ш $ ./install-java-kernel.sh $ ./runLocal.sh

Если вы хотите посмотреть, как это будет работать, запустите вышеуказанные сценарии в локальной среде экземпляра, остальные инструкции должны работать должным образом.

Поскольку нам удалось успешно запустить Jupyter Notebook из экземпляра виртуальной машины, мы можем сохранить этот образ для повторного использования в будущем или поделиться им с другими. Создание образа экземпляра виртуальной машины можно выполнить через Вычисление> Экземпляры > Сведения об экземпляре меню навигации и Создать пользовательский образ в раскрывающемся меню “Действия”.:

Примечание: в процессе создания пользовательского образа ваш исходный экземпляр виртуальной машины отключается. Это может занять менее пары минут, в зависимости от размера исходного экземпляра виртуальной машины. После успешного создания он становится доступным в списке пользовательских образов на выбор, когда мы в следующий раз перейдем к созданию нового экземпляра виртуальной машины:

Если все это было для вас проще простого или вы выжили без особых хлопот, то попробуйте все материалы для глубокого погружения, упомянутые на странице README здесь . Чтобы иметь возможность писать код на других языках в среде Jupiter, все, что вам нужно, — это расширение Jupyter – это всего лишь вопрос установки и настройки. Вы можете узнать все об этом здесь .

Если вы создали записную книжку, она будет сохранена в подкаталоге jupyter/записные книжки , вы можете получить это с помощью scp со своего локального компьютера (см. здесь о том, как это сделать). Убедитесь, что вы вышли из обоих oracle.com и cloud.oracle.com сеансы входа в систему, легко забыть один или другой. Но прежде чем сделать это, пожалуйста, также взгляните на Очистка ресурсов страница в документах — вы же не хотите, чтобы ваш экземпляр работал вечно, пока вы на него не смотрите!

Хороший набор скриптов (включая Docker) и простая в использовании облачная среда могут помочь во многих отношениях. В этом случае это позволит нам запустить экземпляр Jupyter notebook, которым можно поделиться публично или конфиденциально в зависимости от настроек вашей сетевой безопасности.

Среда Jupiter является гибкой и позволяет расширять функциональные возможности с помощью конфигураций и расширений.

Мы не рассматривали такие вещи, как облачная безопасность и разделение пользовательских экземпляров, что выходит за рамки этого поста. Пожалуйста, изучите это подробнее, если они важны для вас. Пожалуйста, убедитесь, что он соответствует необходимым уровням безопасности для вашего приложения или варианта использования. Ознакомьтесь с документами на Безопасность на странице документов OCI , чтобы узнать больше.

Общие

Докер

OCI/Облако

Безопасность

Обо мне

Мани Саркар – страстный разработчик, в основном в области Java/JVM, в настоящее время укрепляющий команды и помогающий им ускоряться при работе с небольшими командами и стартапами, в качестве внештатного инженера-программиста/инженера по обработке данных/ml, подробнее ….

Твиттер: @theNeomatrix369 | Гитхаб: |/@neomatrix369

Оригинал: “https://dev.to/neomatrix369/running-your-jupyter-notebooks-on-the-cloud-36pf”