Как запустить R и R Studio в Google Cloud Platform

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

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

Неоценимый вклад в написание этого поста внес Антон Белоус. Без него я бы потратил кучу времени на выбор операционной системы и установку программ в ней.

Как создать виртуальную машину (инстанс) в Google Cloud Platform

В первую очередь следует создать виртуальную машину в Google Cloud Platform. Довольно сложно выбрать из списка доступных машин, если вы не знаете необходимые для решения вашей задачи технические характеристики. Потому я начал с самого слабого варианта — f1-micro, который доступен бесплатно для региона US. Вы тоже можете начать с него.

Когда вы определились с типом инстанса, создайте проект и включите в нем биллинг. Чтобы создать инстанс, перейдите из вашего проекта в Google Developers Console и откройте Google Cloud Platform:

Когда вы определились с типом инстанса, создайте проект и включите в нем биллинг

Далее перейдите по пути «Compute Engine» — «VM instances» в раскрывающемся боковом меню:

Далее перейдите по пути «Compute Engine» — «VM instances» в раскрывающемся боковом меню

Нажмите Create Instance:

Нажмите Create Instance

На открывшейся странице задайте параметры машины, которую хотите получить. Я указал f1-micro в регионе us-central1-a с операционной системой Ubuntu 16.04 LTS. Также поставил две галочки Allow HTTP traffic и Allow HTTPS traffic для возможности взаимодействия с сервером по HTTP и HTTPS. Другие параметры я не трогал:

Другие параметры я не трогал

Через пару минут ваша машина готова к работе:

Через пару минут ваша машина готова к работе

Дополнительную информацию по запуску инстансов вы можете найти в справке.

Как установить R и R Studio на инстанс в Google Cloud

Чтобы начать установку нужных вам программ, подключитесь к созданной машине по SSH (сетевой протокол Secure Shell). Для этого нажмите соответствующую кнопку напротив названия вашего инстанса.

В браузере откроется новое окно:

В браузере откроется новое окно

Выполните команду:

sudo vim /etc/apt/sources.list

В открывшийся файл вставьте строку:

deb https://cran.rstudio.com/bin/linux/ubuntu xenial/

Далее нажмите Esc, двоеточие (обратите внимание, что нужно именно двоеточие, а не точка с запятой) и выполните команду wq. В результате в файле /etc/apt/sources.list вы укажете, откуда нужно брать файлы для установки R. Мы будем устанавливать RStudio Server, а не обычный десктопный вариант.

Далее по очереди выполните команды:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 
E084DAB9sudo apt updatesudo apt-get install r-basesudo apt-get 
install gdebi-corewget 
https://download2.rstudio.org/rstudio-server-1.0.136-amd64.debsudo 
gdebi rstudio-server-1.0.136-amd64.deb

В процессе выполнения нужно будет несколько раз подтвердить, что вы готовы установить программное обеспечение. После выполнения всех этих команд необходимо указать порт, при обращении к которому вы будете получать доступ к R Studio. Для этого выполните команду:

sudo vim /etc/rstudio/rserver.conf

В открывшийся файл вставьте строку:

www-port=80

Нажмите Esc, двоеточие и выполните команду wq. С помощью этой строки вы укажете, что при обращении к 80 порту, к которому происходит обращении по умолчанию, должна запускаться R Studio. После этого выполните команду:

sudo passwd user_name

Вместо user_name следует указать свое имя пользователя. Его можно найти здесь:

Вместо user_name следует указать свое имя пользователя

Так вы зададите пароль для вашего пользователя в Ubuntu, который станет паролем при входе в R Studio.

Далее выполните команду:

sudo service rstudio-server restart

Ура, у вас получилось установить R и R Studio в Google Cloud. Вернитесь в свой проект в Google Cloud Platform и перейдите по IP-адресу, который указан напротив названия вашего инстанса:

Вернитесь в свой проект в Google Cloud Platform и перейдите по IP-адресу, который указан напротив названия вашего инстанса

В новой вкладке откроется приветственное окно R Studio:

В новой вкладке откроется приветственное окно R Studio

Введите имя пользователя и пароль, которые вы задали на одном из предыдущих шагов. Нажмите кнопку входа — откроется привычный вам интерфейс R Studio:

Введите имя пользователя и пароль, которые вы задали на одном из предыдущих шагов

Как устанавливать пакеты R в облаке

Для решения части задач придется устанавливать дополнительные пакеты, которых нет в базовой сборке R. Здесь возникают две проблемы. Во-первых, нехватка оперативной памяти у инстанса f1-micro. При установке R рекомендуется машина с не менее чем 1 GB оперативной памяти, а у нашего инстанса 0,6 GB.

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

Для этого нажмите кнопку остановки и дождитесь, пока машина перестанет работать

Зайдите в свой инстанс и нажмите кнопку редактирования:

Зайдите в свой инстанс и нажмите кнопку редактирования

Выберите хотя бы g1-small и сохраните изменения:

Выберите хотя бы g1-small и сохраните изменения

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

Вторая проблема при установке пакетов — отсутствие в нашей машине необходимых для работы пакетов библиотек. Вы увидите сообщение об этом в консоли R Studio. Там будет указано название рекомендуемой библиотеки, которая решит проблему с установкой пакета.

Скопируйте из R Studio название пакета, подключитесь к инстансу по SSH и введите следующую команду:

sudo apt install library_name

Здесь library_name — название библиотеки, скопированное из R Studio.

Что получилось в результате

После установки R и R Studio я попробовал решить мою задачу на f1-micro. На выполнение всех преобразований понадобилось 2 часа. Это даже хуже, чем на моем компьютере :) Задача требовала большей мощности процессора, и я улучшил инстанс до n1-highcpu-2. После этого на выполнение всех преобразований ушло около 10 минут. Локальная машина все-таки сильно уступает серверу.

Цены на использование машин в Google Cloud очень демократичные. Несколько часов работы с разными инстансами обошлись мне аж в 4 цента. Более того, для новых пользователей Google дает $300 на 12 месяцев. Вы сможете, например, без остановки использовать тот же n1-highcpu-2 без остановки 8 месяцев или месяц пользоваться машиной с 8 vCPU и 52 GB оперативной памяти. Удачной работы в облаке.

Читайте также, как использовать язык R в интернет-маркетинге.

Узнайте больше
126
6
30
Обнаружили ошибку? Выделите ее и нажмите Ctrl + Enter.