Під час роботи з великими масивами інформації дуже часто доводиться використовувати мову програмування, у моєму випадку — це мова R, для збору, підготовки та подальшої обробки даних. Спочатку мені цілком вистачало десктопної версії RStudio і пакета taskscheduleR для автоматичного запуску скриптів на моєму комп’ютері. Але з часом кількість таких скриптів значно зросла, і всі оновлення залежали від того, чи увімкнений мій комп’ютер. У цей момент я й замислився про встановлення R на сервер. Для своїх потреб я вирішив використовувати сервер у Google Cloud Platform.
Справедливо буде зазначити, що під час встановлення R на сервер Google Cloud Platform і пошуку інформації про те, як це зробити, я натрапив на статтю в блозі Netpeak, у якій було описано, як реалізувати це завдання. Однак у процесі роботи з тією статтею я все одно зіткнувся з труднощами, про які в ній не згадувалося.
Про що ми поговоримо:
Якщо ви вирішили створити сервер у Google Cloud Platform, то перше, що потрібно зробити — підібрати і налаштувати для цього віртуальну машину. Google надає величезний вибір конфігурацій, а також безкоштовний тестовий період тривалістю один рік.
Якщо ви вперше використовуєте GCP, то перед тим як створювати екземпляр віртуальної машини, потрібно створити проєкт і увімкнути білінг. Навіть якщо ви використовуєте тестовий період, все одно доведеться прив’язати свою банківську картку. Google обіцяє не списувати з неї кошти :) Картка потрібна лише для підтвердження, що ви — реальна людина.
Тепер, коли з формальностями покінчено, розпочнемо.
Переходимо в консоль GCP на сторінку віртуальних машин і обираємо пункт Create instance.
У вікні, що з’явиться, задаємо потрібні параметри:
Праворуч буде відображена приблизна вартість користування віртуальною машиною.
Не забудьте натиснути Create. Через деякий час машина буде створена.
Щоб почати роботу зі щойно створеною віртуальною машиною, потрібно підключитися до неї через SSH (мережевий протокол, назва якого походить від слів Secure Shell). Він шифрує весь трафік, включно з переданими паролями. Для цього достатньо клікнути на відповідний пункт у меню:
У новому вікні браузера відкриється… Матриця ))
Перше, що я подумав, побачивши це вікно: “ось вона — матриця”. Але поспілкувавшись із програмістами та дізнавшись у них деякі деталі, я зрозумів, що все не так страшно — і зараз ви в цьому переконаєтесь.
Цікаво: у більшості команд, які ми будемо використовувати далі, на початку буде команда sudo
, що дозволяє запускати команди від імені суперкористувача root.
Потрібно розуміти, що, окрім головного репозиторію, який містить усі пакети від розробників дистрибутива Ubuntu, існує безліч інших джерел пакетів. Одним з таких є пакет R. Додавання такого стороннього пакета відбувається у 4 етапи:
А теперь детальніше про кожен із цих пунктів:
Іншими словами, ми додаємо у файл /etc/apt/sources.list
інформацію про те, звідки потрібно брати файли для встановлення R. Для цього, за допомогою наступної команди ми відкриємо потрібний файл через текстовий редактор nano. Ви можете використовувати інший текстовий редактор, наприклад vim.
sudo nano /etc/apt/sources.list
У вікні, що відкрилося, опускаємося в кінець документа і додаємо рядок:
deb https://cran.rstudio.com/bin/linux/ubuntu xenial/
Після цього натискаємо комбінацію Ctrl+X для виходу з редактора. У вікні, що відкриється, вводимо Y для збереження змін.
У останньому вікні натискаємо Enter, щоб записати дані у той самий файл, який ми редагували.
Ключ використовується для підтвердження автентичності та надійності репозиторію. Його додають за допомогою наступної команди:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
Ця команда запитує ключ безпосередньо у сервера сертифікації Ubuntu — keyserver.ubuntu.com
Виконується за допомогою команди:
sudo apt update
Тепер можемо встановити необхідний нам пакет R за допомогою команди:
sudo apt-get install r-base
Під час виконання команди потрібно буде підтвердити, що ви готові встановити програмне забезпечення, ввівши Y. Або ж одразу скористатись командою:
sudo apt-get install r-base -y
Окрім встановлення R, для зручності роботи, нам потрібно встановити R Studio. І перше, що треба зробити — завантажити інсталяційний файл. Робимо це за допомогою команди wget:
wget https://download2.rstudio.org/rstudio-server-1.0.136-amd64.deb
Тепер, щоб виконати встановлення R Studio, потрібно встановити ще один пакет — gdebi
. Gdebi — програма для встановлення .deb
пакетів.
sudo apt-get install gdebi-core -y
І останньою командою встановлюємо R Studio із завантаженого файлу:
sudo gdebi rstudio-server-1.0.136-amd64.deb
Тепер потрібно вказати порт, через який ви отримуватимете доступ до R Studio. Для цього потрібно внести інформацію у файл /etc/rstudio/rserver.conf
. Робимо це за допомогою команди:
sudo nano /etc/rstudio/rserver.conf
І додаємо у файл наступний рядок:
www-port=80
Тепер задаємо пароль для доступу до R Studio
sudo passwd user_name
де замість user_name
вводимо ім’я користувача
Під час введення пароля вам здаватиметься, що нічого не відбувається, але насправді введені символи запам’ятовуються. Після другого успішного введення ви побачите приблизно таке:
Залишилося перезапустити R Studio Server і можна починати роботу.
sudo service rstudio-server restart
Щоб потрапити в звичний інтерфейс R Studio, потрібно перейти за зовнішньою адресою:
Найімовірніше при вході ви побачите таку помилку:
Вона пов’язана з тим, що ви намагаєтесь підключитися через протокол HTTPS, а для роботи з R Studio ми відкривали порт 80 для протоколу HTTP. Прибравши зайву букву у адресному рядку — можна заходити:
https://22.222.222.22/
-> http://22.222.222.22/
У вікні, що відкриється, вводимо логін і пароль і насолоджуємось звичним виглядом R Studio — тільки тепер на сервері.
Імовірно, базових пакетів R для роботи вам буде недостатньо, і доведеться встановлювати додаткові. Розглянемо встановлення на прикладі пакету googleAnalyticsR
.
Якщо просто ввести в консолі R команду:
install.packages("googleAnalyticsR")
швидше за все ви отримаєте помилку.
Щоб цього уникнути, потрібно додатково встановити деякі пакети Ubuntu. Зробити це можна за допомогою команди:
sudo apt-get install build-essential libcurl4-gnutls-dev libxml2-dev libssl-dev
Після цієї нехитрої маніпуляції ви можете встановлювати пакети в R Studio звичним способом або ж у консолі Ubuntu. Щоб запустити оболонку R як користувач root:
sudo -i R
І тепер можна використовувати install.packages()
прямо з консолі Ubuntu.
Тепер розглянемо те, заради чого я власне і встановлював R на сервер — автоматичний запуск скриптів за розкладом. Для цього використовуємо пакет cronR. Спочатку встановлюємо його і підключаємо бібліотеку:
install.packages("cronR")
library(cronR)
Тепер у вкладці аддонів з’явиться новий аддон “Schedule R scripts on...”
При першому запуску з’явиться вікно:
в якому сміливо можна тиснути кнопку Yes.
Після встановлення всіх потрібних пакетів побачимо наступне вікно:
У ньому потрібно вказати скрипт і параметри запуску:
Щоб побачити всі заплановані завдання — відкрийте вкладку Manage existing jobs
і натисніть кнопку Show current crontab schedule.
У консолі R Studio ви побачите заплановані скрипти та час запуску.
От тепер все ;)
Замість заключення: R — це надзвичайно потужна мова програмування, яка ідеально підходить для вирішення завдань, пов’язаних зі збиранням, підготовкою та подальшою обробкою даних. Завдяки встановленню R на сервер ці можливості стають по-справжньому безмежними. А як ви використовуєте R?
Якщо вам сподобався матеріал — підписуйтесь на мій канал в Telegram та Facebook.
Вебаналітик, Маркетолог