Опишите кратко что такое jupyterhub и его базовый интерфейс блокнотов

Обновлено: 08.07.2024

Распределенная конструкция jupyterhub-jupyterhub на основе kubernetes

jupyterhub распределенная сборка

Примечание: следующие действия выполняются системным администратором root

1. Кубернетский кластер

  • Изменить имя хоста
  • Удалите старую версию
  • Установить ням репозиторий
  • Установите и запустите Docker (если загрузка идет медленно, загрузите более медленный файл и установите его вручную)
  • Проверьте версию докера
  • Установите nfs-utils
  • Настройте источник yum для k8s
  • Закрыть файервол, SeLinux, своп
  • Изменить /etc/sysctl.conf

Добавьте к этому

Выполните команду для добавления

  • Установить кубелет, кубеадм, кубектл
  • Изменить /usr/lib/systemd/system/docker.service

Добавьте к этому

Обратитесь к картинке ниже


  • Выполните следующую команду, чтобы использовать внутренний образ докера для повышения скорости загрузки и стабильности образа докера
  • Перезапустите докер и запустите kubectl
  • Настройте доменное имя мастера
  • Создать ./kubeadm-config.yaml

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

Подождите несколько минут в зависимости от ситуации на собственном сервере, результаты успешного выполнения показаны на рисунке:


  • Инициализировать конфигурацию kubectl пользователя root
  • Установить бязь
  • Выполните следующую команду и подождите 3-10 минут, пока все контейнеры не будут сохранены и запущены
  • Проверьте результат основной инициализации
  • Получить параметры соединения

Результат, полученный при вводе вышеуказанной команды, следующий:

Вам необходимо заменить x.x.x.x на IP-адрес главного узла. Следующая строка команд представляет собой вывод после параметра "join"


  • Настройте разрешение доменного имени (в настоящее время не требуется)

Из-за необходимости подать заявку на доменное имя, процесс будет громоздким, и есть две альтернативы:

  • Установите конфигурацию хостов на вашем клиентском компьютере (на котором находится браузер, который обращается к веб-приложению, развернутому на K8S);
  • Временно отмените настройку доменного имени и временно используйте NodePort или kubectl port-forward для доступа к веб-приложению, развернутому на K8S

Если вы планируете использовать установленные Kubernetes для производства, пожалуйста, обратитесь к этому документуInstalling Ingress ControllerДля улучшения конфигурации Ingress

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

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

2. Установка программного обеспечения мониторинга кластера k8s Kuboard

  • Установить кубоард
  • Посмотреть статус kuboard

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

  • Получить токен пользователя только для чтения

Права доступа, доступные только для чтения:

(1): представление может просматривать содержимое пространства имен

(2): система: узел может просматривать информацию об узле

(3): система: поставщик постоянных томов может просматривать информацию о классе хранилища и томе хранилища

Применимая сцена:

Пользователи только для чтения не могут изменять конфигурацию кластера, что очень удобно для распространения разрешений Kuboard только для чтения в среде разработки для разработчиков, чтобы разработчики могли легко диагностировать проблемы

3. Установка шлема

В противном случае может появиться следующая ошибка

  • Создайте учетную запись службы под названием Tiller
  • Чтобы предоставить роль администратора кластера учетной записи службы с именем tiller для cluster-admin, сначала создайте имя rbac-config.yaml
  • Привязка к администратору кластера
  • Установите сервер Tiller
  • Проверить установку

Если версии клиента Helm и сервера Tiller отображаются правильно, установка прошла успешно

Если вы не можете подключиться к Tiller или не можете найти готовый модуль Tiller, введите следующую команду:

4. Установка и настройка службы nfs

  • Установите NFS на всех узлах
  • Создать общий каталог
  • Авторизованный общий каталог
  • Отредактируйте файл конфигурации nfs: / etc / exports

/ nfsdata: каталог для обмена данными.

*: Это значит, что у всех есть разрешение на подключение.

rw: разрешения на чтение и запись

синхронизация: указывает, что файл записывается на жесткий диск и в память одновременно

no_root_squash: когда пользователь, который входит в систему на хосте NFS для использования общего каталога, является пользователем root, его разрешения преобразуются в анонимных пользователей, обычно его UID и GID становятся никем.

  • Запустите rpc и nfs (обратите внимание на порядок загрузки)
  • Подтвердите успешную установку NFS
  • Просмотр разрешений на монтирование каталога

Далее следует проверить, совместима ли служба nfs на рабочем узле, но не делать

  • Установить NFS
  • Запустите rpc и nfs (обратите внимание на порядок)
  • Проверьте, есть ли у nfs общий каталог
  • Создайте новый каталог в рабочем узле:
  • Смонтируйте общий каталог nfs в вышеуказанный каталог:
  • Создайте новый тестовый файл в каталоге над рабочим узлом
  • Посмотреть на сервере NFS:

Если файл test.txt появляется выше, это доказывает, что наш nfs успешно смонтирован

V. Создание класса хранения

Обратите внимание, чтобы заменить свой собственный IP

  • Настроить учетную запись службы и связать соответствующие разрешения (nfs-client-sa.yaml)
  • Создать StorageClass (nfs-client-class.yaml)
  • Создать каталог / persistentvolumes и предоставить соответствующие разрешения
  • Создайте объект ресурса только что написано
  • Просмотр статуса ресурса


  • Установить курс-NFS-хранилище в качестве хранилища по умолчанию

6. Установка Jupyterhub

  • Создать случайный токен безопасности
  • Отредактируйте файл config.yaml
  • обновление руля и установка репозитория jupyterhub

Обратите внимание, что он может быть выполнен напрямую без изменений

Обратите внимание, что следующие шаги очень важны

  • После выполнения вышеуказанной команды вы обнаружите, что интерфейс застрял, как показано ниже


  • Теперь откройте другое главное окно и просмотрите модуль

Обнаружен ошибочный ErrImagePull, как показано ниже:


  • В это время измените модуль с помощью следующей команды

Замените все gcr.io в файле на gcr.azk8s.cn, затем сохраните и выйдите

  • Через некоторое время вы увидите следующий интерфейс в исходном окне:


  • Теперь снова проверьте элементы пространства имен jhub.

Следующее, кажется, указывает на успех:


В это время обнаружено, что публичный прокси-сервер EXTERNAL-IP находится в состоянии ожидания


Измените тип: LoadBalancer на тип: NodePort


В настоящее время мы обращаемся к jupyterhub через подключенный порт 80 в браузере.

Меня зовут Андрей Петрин, я руководитель группы аналитики роста в Яндексе. В докладе на Moscow Python Meetup я напомнил о плюсах Jupyter и рассказал про архитектуру и принципы работы JupyterHub, а также про опыт применения этих систем в Яндексе. В конце вы узнаете, как поднять JupyterHub на любом компьютере.

— Начну с того, кто такие аналитики в Яндексе. Существует аналогия, что это такая многорукая Шива, которая умеет делать сразу много разных вещей и сочетает в себе много ролей.

Всем привет! Меня зовут Андрей Петрин, я руководитель группы аналитики роста в Яндексе. Я расскажу про библиотеку JupyterHub, которая в свое время сильно упростила нам жизнь в аналитике Яндекса, мы буквально почувствовали буст продуктивности большого количества команд.


Например, аналитики в Яндексе — это немножко менеджеры. Аналитики всегда знают сроки, таймлайн процесса, что в какой момент необходимо делать.

Это немножко разработчики, они знакомы с разными способами обработки данных. Например, на слайде в руках Шивы те библиотеки Python, которые приходят на ум мне, это не полный список, но то, что используется на ежедневной основе. Естественно, разработка у нас ведется не только на Python, но я буду рассказывать в первую очередь о Python.

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

Во всей этой задаче нам достаточно сильно помогает экосистема Jupyter.


Это такая платформа для интерактивного программирования и создания отчетов-ноутбуков. Ключевой сущностью Jupyter-ноутбуков является такой ноутбук, где есть большое количество разнообразных виджетов, интерактивных элементов, которые можно изменять. В качестве главной сущности — микроэлементы кода, которые ты программируешь. Их можно напечатать в ноутбуке в твоем браузере, который ты постоянно используешь. Это могут быть как картинки, так и интерактивные HTML-производные элементы. Можно просто печатать, делать принт, отображать элементы — разнообразные вещи.

Система Jupyter развивается давно, поддерживает различные языки программирования различных версий, Python 2 и 3, Go, разнообразные вещи. Позволяет круто решать наши повседневные задачи.

Чем мы в аналитике занимаемся и как нам Jupyter в этом сильно помогает?


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

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

Ручную разметку мы автоматизировали в Jupyter при помощи виджетов-инпутов. У нас для каждого хоста есть предполагаемая тематика, которая, скорее всего, правильная. Мы почти всегда угадываем тематику, но для ручной разметки человек все-таки нужен.

И получаются всякие интересные картинки.


Например, здесь изображены сайты тематики спорта и соответствующие поисковые запросы, которые в спортивной тематике присутствуют.


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


Тематика homework — готовые домашние задания. Достаточно интересная, потому что внутри нее есть два независимых кластера сайтов, похожих друг на друга, но не похожих на остальных. Это хороший пример тематики, которую хотелось бы разбить на две. Одна половина сайтов явно решает одну задачу внутри домашних заданий, другая — другую.


Было достаточно интересно делать оптимизатор ставок, совсем другую задачку. В Яндексе закупается некоторое количество мобильных приложений, в том числе за деньги, и мы уже умеем предсказывать lifetime пользователя, сколько мы можем получить от установки какого-то приложения для каждого пользователя, но выясняется, что к сожалению, это знание сложно передать маркетологу, тому исполнителю, кто будет заниматься закупкой трафика. Это происходит обычно из-за того, что всегда есть какой-то бюджет, есть немаленькое количество ограничений. Необходимо делать такую задачу многомерной оптимизацию, интересную с точки зрения аналитики, но нужно сделать прибор для менеджера.


Здесь сильно помогает Jupyter. Это интерфейс, который мы разработали в Jupyter, чтобы пользователь-менеджер, не обладающий знаниями Python, мог войти и получить результат нашего прогноза. Можно выбрать там, выбираем ли мы Android или iOS, на каких странах, какое приложение. Есть достаточно сложные управляторы и ручки, которые можно изменять, например, какие-то прогрессбары, размер бюджета, какая-то толерантность к риску. Эти задачи решены при помощи Jupyter, и мы очень довольны тем, что аналитик, являясь многорукой Шивой, может решать эти задачи один.

Лет пять назад мы пришли к тому, что есть некоторые ограничения и проблемы платформы, с которыми хочется бороться. Первая проблема в том, что у нас достаточно много разных аналитиков, каждый из которых все время на разных версиях, операционных системах и т. д. Часто код, который работает у одного человека, не запускается у другого.

Еще большая проблема — версии пакетов. Думаю, не надо рассказывать, как тяжело поддерживать какой-то консистентный environment, чтобы все могло запуститься из коробки.

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

Здесь к нам на помощь пришла библиотека JupyterHub.


Это очень простое приложение, оно состоит из четырех компонент, просто разделяющихся.

Первая часть приложения отвечает за авторизацию. Мы должны проверить пароль и логин, можем ли мы пустить этого человека.

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

Проксирование. Есть единая точка доступа ко всему серверу, и JupyterHub определяет, к какому пользователю на какой порт нужно идти, для пользователя все абсолютно прозрачно. Естественно, некоторое управление БД и всей системой.


Если поверхностно описать, как выглядит JupyterHub, пользовательский браузер приходит в систему JupyterHub, и если у этого пользователя сервер еще не запущен или он не авторизован. JupyterHub входит в игру и начинает задавать какие-то вопросы, создавать сервера и готовить среду.

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


Интерфейс достаточно простой и удобный. По умолчанию при развертывании используется username и пароль того компьютера, где это развернуто. Если у вас есть сервер, где есть несколько пользователей, то логином и паролем является логин и пароль к системе, и пользователь видит свою домашнюю директорию /home как свою домашнюю директорию. Очень удобно, не нужно думать ни о каких пользователях.



Остальные интерфейсы в целом достаточно привычны для вас. Это стандартные Jupyter-ноутбуки, которые вы все видели. Можно посмотреть активные ноутбуки.


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


Наконец, для администратора доступно управление каждым пользователем, запуск индивидуальных Jupyter серверов, остановка их, добавление, удаление пользователей, отключение всех серверов, выключение, включение хаба. Все это делается в браузере без каких-либо настроек и достаточно удобно.

В целом система очень сильно развивается.


На картинке курс в UC Berkley, который закончился в этом декабре, это был самый большой курс по data science в мире, по-моему, его прослушали 1200 студентов, которые не умели программировать, и пришли учиться программированию. Это было сделано на платформе JupyterHub, студентам не нужно было устанавливать никакой Python у себя на компьютере, они могли просто зайти в браузере на этот сервер.

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


Первое, что вы захотите сделать, это сгенерить конфиг. Все заработает само, даже без каких-либо настроек, по умолчанию будет поднят локальный сервер с каким-то портом 8000, с доступом к вашим пользователям по логину и паролю, работать будет только под судой, будет работать буквально из коробки, но generate-config создаст вам файлик JupyterHub config, где буквально в виде документации можно прочитать абсолютно все его настройки. Это очень удобно, можно даже не заходя в документацию, понять, в каких строчках что нужно включить, там все закомментировано, можно управлять, все настройки по умолчанию видны.


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

Классность JupyterHub в том, что это такой конструктор. Буквально в каждом элементе из диаграммы, что я показал, можно вставлять, встраивать собственные элементы, которые упрощают работу. Например, предположим, вам не хочется, чтобы ваши пользователи вбивали логин и пароль системный, это не очень безопасно или неудобно. Вам хочется сделать другую систему логина. Это можно сделать при помощи oauth и, например, github.


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


Поддерживаются из коробки другие способы авторизации пользователей. Если есть LDAP — можно его. Можно любой OAuth, есть REMOTE_USER Authenticator, позволяющий удаленным серверам проверять доступ к вашему локальному. Все что душе угодно.


Предположим, у вас есть несколько типов задач. Например, одна использует GPU, и для этого вам нужен один стек технологий, определенный набор пакетов, и хочется отделить его от CPU с другим сценарием использования. Для этого можно написать собственный спаунер. Это система, которая создает пользовательские Jupyter-ноутбуки. Здесь изображена настойка при помощи Docker, вы можете собрать Docker-файл, который будет разворачиваться под каждого пользователя, и пользователь будет не локальным, а в своем внутреннем контейнере.

Есть некоторое количество других удобных фишек JupyterHub, сервисы.


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

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


Я рассказал, что буквально на каждый кусочек этой схемы можно что-то свое включить. Можно сделать некоторый аддон к прокси, каким-то своим образом делать прокидывание пользователей. Можно написать собственный авторизатор, можно напрямую общаться с БД при помощи сервисов. Можно создавать собственные спаунеры.

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


Вам нужен JupyterHub в случае, если у вас несколько человек используют Jupyter. И необязательно, чтобы они использовали Jupyter для одного и того же. Это удобная система, которая позволит этих людей объединить и избежать дальнейших проблем. А если они, тем более, делают одну и ту же задачу — скорее всего, им будет нужен более-менее консистентный набор пакетов.

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

Очень классно использовать это для обучения Python. Есть сервис nbgrader, который поверх JupyterHub позволяет делать удобные батарейки с отправкой студентам домашнего задания. Они сами заполняют решения, отправляют обратно, есть автоматическое тестирование, которое проверяет ячейки Jupyter и позволяет сразу выставлять оценки. Очень удобная система, рекомендую.

Представьте, что вы пришли на какой-то семинар, где вы хотите что-то показать на Python. При этом вы не хотите потратить первые три часа на то, чтобы у всех все заработало из вашего how to. Вы хотите сразу начать делать что-то интересное.

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

Если вы хотите писать на Python или заниматься дата-сайенсом, вот классная штука для вас. Это уже, считай, стандарт для огромного числа питонистов, наслаждайтесь.

Что такое jupyter-ноутбук

В такой среде разработки можно, например, написать функцию и сразу проверить её работу, без запуска программы целиком. А ещё можно поменять порядок выполнения кода. Можно отдельно загрузить файл в память, отдельно проверить его содержимое, отдельно обработать содержимое.

А ещё в jupyter-ноутбуках есть вывод результата сразу после фрагмента кода. Например, можно прямо в середине кода увидеть построенный график, получить предварительные цифры или любую другую визуализацию.

Какие языки поддерживаются

Чаще всего, когда говорят о jupyter-ноутбуках, имеют в виду работу с Python. Но на самом деле можно работать и с другими:

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

Ноутбук в облаке

Jupyter-ноутбуки запускаются на компьютере или в облаке.

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

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

Минус — программа может работать не так быстро, как на локальной машине. Ещё если вам нужны какие-то экзотические библиотеки, в облаке их может не оказаться.

Что такое jupyter-ноутбук и зачем он нужен

Ресурсы, которые нам выделило облако для работы с кодом

Ноутбук на компьютере

Если вы сами хотите контролировать всё, что происходит с кодом и со средой разработки, тогда нужно установить jupyter-ноутбук себе на компьютер.

Так как основная среда в таком ноутбуке — это Python, то для работы у вас уже должен быть установлен Python, после сам ноутбук ставится так:

pip3 install jupyter

После установки ноутбук готов к запуску:

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

Как работать с ноутбуком

Самый простой способ — писать в нём код и сразу видеть, что получается после запуска. Например, возьмём код из статьи про рулетку и казино, вставим его в ноутбук и запустим. Ноутбук сразу же после кода покажет все данные и нарисует график:

Что такое jupyter-ноутбук и зачем он нужен

Что такое jupyter-ноутбук и зачем он нужен

Где применяются jupyter-ноутбуки

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

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

Также jupyter-ноутбуки используются при обучении программированию на Python, чтобы писать код и сразу видеть результат его работы.

Что дальше

В следующий раз освоим ноутбуки на практике — сделаем свой ноутбук с красивыми графиками и блоками кода.

начало работы с Jupyter Notebook

Программирование и разработка

Jupyter Notebook — это онлайновый вычислительный блокнот, который позволяет комбинировать код, комментарии, мультимедиа и визуализации в интерактивных документах. Он быстро стал одним из самых популярных сетевых вычислительных ноутбуков, используемых ведущими компаниями, такими как Google, Microsoft и NASA. Сегодня мы собираемся изучить Jupyter Notebooks и обсудить их преимущества и то, как начать работу.

Что такое Jupyter Notebook?

Jupyter Notebook — это веб-приложение с открытым исходным кодом, используемое для создания и обмена документами с живым кодом, уравнениями, визуализациями и текстом. Он поддерживается сообществом Project Jupyter. В 2014 году Project Jupyter и Jupyter Notebook стали побочными проектами IPython и IPython Notebook.

В дополнение к Jupyter Notebook существует также JupyterLab, которая представляет собой веб-среду IDE для Jupyter Notebooks. Он позволяет настроить пользовательский интерфейс для поддержки различных рабочих процессов в машинном обучении, науке о данных, научных вычислениях и многом другом. С JupyterLab вы можете запускать терминалы, текстовые редакторы и консоли кода в своем веб-браузере. Вы также можете создавать свои собственные плагины.

JupyterHub — еще одно предложение от Project Jupyter. JupyterHub — это многопользовательская версия Jupyter Notebook, предназначенная для команд, классов и лабораторий. Хаб позволяет развертывать записные книжки в организации, масштабировать развертывание с помощью Docker и Kubernetes, а также обеспечивать единообразное управление данными и доступ в рамках вашей компании.

Jupyter Notebook — популярный вычислительный блокнот, на GitHub доступно более 2,5 миллионов общедоступных блокнотов. Он используется для множества вещей, таких как :

  • Анализ данных
  • Очистка данных
  • Преобразование данных
  • Визуализация данных
  • Машинное обучение
  • Численное моделирование
  • Статистическое моделирование
  • И т.п.

Зачем использовать Jupyter Notebook?

Jupyter Notebook стал стандартным вычислительным блокнотом для управления данными. Он используется во многих ведущих компаниях, таких как Google, Microsoft, IBM, Bloomberg, NASA и других. Давайте посмотрим на некоторые из причин, по которым Jupyter Notebook так популярен:

  • Поддерживаемые языки : поддерживает более 40 языков программирования, включая Python, Scala, Julia и R
  • Возможности совместного использования : возможность делиться своими записными книжками с другими с помощью электронной почты, Dropbox, Github или Jupyter Notebook Viewer.
  • Интерактивный вывод : код может создавать богатый вывод, такой как HTML, LaTeX, изображения и видео.
  • Настройка : возможность создавать собственные компоненты и настраивать JupyterLab в соответствии с вашим рабочим процессом.
  • Удобство использования : JupyterHub позволяет обмениваться записными книжками с большими группами пользователей, а Binder позволяет использовать Jupyter на GitHub в браузере.
  • Документация : отличные параметры форматирования и встроенный вывод
  • Среда программирования в реальном времени: код можно изменять и запускать в режиме реального времени с обратной связью непосредственно в браузере.

Начать работу с Jupyter

Jupyter Notebook не входит в состав Python, поэтому сначала его нужно установить. В нашем руководстве мы будем использовать Python 3, а не Python 2.

Установите Jupyter Notebook

Есть несколько способов установить Jupyter Notebook:

1. pip

Мы можем использовать pip для установки Jupyter Notebook, используя следующую команду:

2. Anaconda

Мы также можем использовать Anaconda, платформу для обработки данных Python. У Anaconda есть собственный установщик с именем conda, который мы можем использовать для установки Jupyter Notebook. Anaconda поставляется с некоторыми предустановленными библиотеками, включая Jupyter Notebook, поэтому, если у нас уже установлена ​​Anaconda, мы готовы приступить к работе с ноутбуком.

Запустить сервер

Пришло время начать работу с Jupyter Notebook! Все, что нам нужно сделать, это создать новую папку, а затем перейти к ее расположению в нашем терминале. Затем мы можем запустить эту команду, чтобы запустить Jupyter:

Эта команда откроет наш браузер по умолчанию на сервере Juypter Notebook. Теперь мы готовы создать нашу первую записную книжку!

Create a new notebook

Пришло время создать один из наших первых записных документов

На изображении выше мы видим список меню на нашем экране. Давайте обсудим, что делает каждое из этих меню.

  • Файл : создание новых записных книжек или открытие существующих записных книжек.
  • Изменить : манипулировать нашими ячейками
  • Просмотр : переключение заголовков, панелей инструментов и номеров строк
  • Вставить : вставить ячейки выше или ниже выбранной ячейки.
  • Cell : запускайте наши клетки
  • Ядро : управление ядром
  • Виджеты : сохранить и очистить состояние виджета.
  • Справка : узнайте о Jupyter Notebook

Running cells

Когда мы впервые создаем новый блокнот Jupyter Notebook, первая ячейка по умолчанию использует код и ядро, которое мы выбрали в начале. Поскольку мы начали с Python 3, мы можем запускать код Python в наших ячейках. Давай проверим! Мы можем выполнить следующие шаги:

Вот как теперь должна выглядеть наша записная книжка:

Вот как теперь должна выглядеть наша записная книжка

Добавьте контент в свой notebook

Попрактикуемся в добавлении контента в наш блокнот Jupyter. В этом разделе мы обсудим типы ячеек Jupyter, включая код и Markdown.

Типы клеток Jupyter

Основные типы ячеек, которые мы используем, — это ячейки кода и ячейки Markdown. Мы практиковались в использовании ячеек кода, когда писали наш Hello World!, поэтому давайте посмотрим на тип ячеек Markdown.

Создание заголовков

Jupyter Notebook предварительно просматривает заголовки для нас:

Jupyter Notebook предварительно просматривает заголовки для нас

Составление списков

Мы можем создавать маркеры в Markdown

Поделитесь своим блокнотом

Теперь давайте узнаем больше о том, как делиться нашими записными книжками. Jupyter Notebook поставляется с nbconvertинструментом, который позволяет нам конвертировать наши.ipynbзаписные книжки во множество различных форматов, включая:

  • Markdown
  • PDF
  • LaTeX
  • HTML
  • ReStructured Text
  • Python script
  • И т.п.

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

Читайте также: