Завъртете без усилие лаптоп, подкрепен от клъстер с големи данни

2020 г. е чудесна година да се потопите в големите данни с клъстерите Jupyter и Spark. Всички топ 3 облачни доставчици (Amazon Web Services, Microsoft Azure и Google Cloud) имат конфигурирани, управлявани услуги за завъртане на клъстери, предварително заредени с Jupyter и Spark. С експлозията на големите данни и ниските бариери за навлизане (както по отношение на разходите, така и на усилията), знанието как да се решават проблеми с големите данни с помощта на клъстер от машини се превръща в необходим набор от умения на днешния пазар на труда в областта на науката за данни.

В тази статия ще ви покажа как да завъртите клъстери на Spark с Jupyter в Google Cloud Dataproc. Ще прегледаме:

  1. Конфигуриране на вашите настройки на Spark Cluster в Dataproc
  2. Конфигуриране на вашите клъстери за Jupyter и Anaconda
  3. Достъп до Jupyter Notebook

Конфигуриране на вашите настройки на Spark Cluster в Dataproc

Dataproc е управляваната услуга на Google Cloud за стартиране на клъстери Apache Spark и Apache Hadoop. Ще използваме Dataproc за създаване и управление на нашите клъстери Spark. Във вашата потребителска конзола на Google Cloud Platform отворете Dataproc и щракнете върху „CREATE CLUSTER“.

Ще бъдете отведени до страницата „Създаване на клъстер“ с настройки за вашия клъстер от машини. В този урок ще използваме машинния тип по подразбиране n1-standard-4 както за главния, така и за работния възел. Ако искате да спестите малко пари, препоръчвам да преминете към n1-standard-2, но не и n1-standard-1, тъй като машините с 1 vCPU отнемат значително повече време, за да се развъртят.

Конфигуриране на вашите клъстери за Jupyter и Anaconda

Ето къде става вълнуващо. Преди няколко години трябваше да напишете персонализиран скрипт, за да инсталирате Jupyter и Anaconda. Днес можете да получите същите резултати, като щракнете върху няколко бутона. Отметнете „Разрешаване на достъп до уеб интерфейсите“ под „Шлюз на компоненти“ и разгънете „Разширени опции“.

Въпреки че не е задължително, задайте етапна кофа за съхранение в облак. Наличието на кофа за съхранение в облак позволява вашите бележници да бъдат записани в облака и да бъдат достъпни следващия път, когато завъртите бележник.

Задайте изображението на машините на 1.5 (Debian 10, Hadoop 2.10, Spark 2.4). От моя опит изображението 1.3 е базирано на Python 2 и няма да има достъп до нови инструменти, разработени в Python 3.

Най-важната част тук е „Избор на компонент“ под Допълнителни компоненти. Следващото изображение показва какви опции са налични.

И накрая, поставете отметка в „Разрешаване на API достъп до всички облачни услуги на Google“ под Достъп до проекта. Това ще позволи на вашия клъстер достъп до други услуги на Google Cloud, като например BigQuery.

В Допълнителните компоненти виждаме разнообразие от налични компоненти. С инсталиран по подразбиране Spark (не е в списъка), ще проверим Anaconda и Jupyter Notebook и ще кликнем върху „Избор“, за да запазим избора си.

Връщайки се обратно към менюто с настройки на клъстера, имаме един последен елемент за настройка, преди да завъртим клъстера. Поставете отметка до „Изтриване по фиксиран график“ под Планирано изтриване. Тази опция гарантира, че вашият клъстер се самопрекратява след определен период от време. Dataproc се таксува според това колко дълго работят вашите клъстери. Предварителното задаване на време за изтриване гарантира, че няма да получим изненадващи сметки за събитието, когато забравим да прекратим ръчно нашите клъстери. За този урок нека зададем времето за изтриване на 2 часа.

Достъп до Jupyter Notebook

И това е! Създаването на вашия клъстер ще отнеме около 3 до 10 минути. След като въртящата се икона до името на вашия клъстер се превърне в отметка със зелена точка, щракнете върху раздела „уеб интерфейси“ и „Jupyter“ под Component gateway. Ако Jupyter не е наличен, уверете се, че сте следвали инструкциите в предишния раздел за „разрешаване на достъп до уеб интерфейси“ и сте избрали незадължителните компоненти. Както виждаме, всички незадължителни компоненти, които сме избрали по време на процеса на създаване на клъстер, ще бъдат налични в раздела за уеб интерфейси.

Посреща ни познатият потребителски интерфейс на преносим компютър Jupyter. Кликнете върху папката „GCS“, за да получите достъп до кофата за съхранение в облак на Google. Всички файлове, които качваме или създаваме в тази папка, ще бъдат достъпни в облачната кофа, която сме задали преди това в процеса на създаване на клъстер.

Имаме 4 различни налични ядра за нашите преносими компютри. Всички те имат достъп до нашия клъстер Spark. Обичам да използвам преносими компютри „Python 3“, защото има достъп до всички пакети за наука за данни, инсталирани с Anaconda, както и PySpark.

И виола! Вече имате преносим компютър Jupyter, работещ на клъстер Spark! Можем да проверим бележника със следния код, за да се уверим, че всичко е заредено правилно.

!scala -version

import pandas as pd
import numpy as np
from pyspark.sql import SparkSession
spark = SparkSession.builder \
  .appName('Jupyter BigQuery Storage')\
  .config('spark.jars', 'gs://spark-lib/bigquery/spark-bigquery-latest_2.12.jar') \
  .getOrCreate()
table = "bigquery-public-data.wikipedia.pageviews_2020"
df = spark.read \
  .format("bigquery") \
  .option("table", table) \
  .load()
df.printSchema()
df_agg = df \
  .select('wiki', 'views') \
  .where("datehour = '2020-03-03'") \
  .groupBy('wiki') \
  .sum('views')
df_agg.show()

След като приключите с анализа си, не забравяйте да изтриете своя клъстер, за да избегнете допълнителни такси! Изпълнението на клъстера от този урок за 2 часа ще струва около $1 USD. Можете да оцените цената на вашия клъстер, като използвате Google Cloud Pricing Calculator и изберете услугата Dataproc.

Заключителни бележки

С нарастването на големите данни е важно за специалистите по данни да се научат как да използват Jupyter + Spark в облака. По този начин можем да мащабираме нашите изчислителни ресурси хоризонтално, вместо само вертикално. В този урок създадохме клъстер Spark, зареден с Jupyter и Anaconda в Google Cloud Dataproc. Сега нека се заемем с тези големи данни!

Не знаете къде да намерите големи данни, за да практикувате? Вижте предишната ми статия за терабайтите набори от данни, налични в публичните набори от данни на Google: „Повишете нивото си с публичните набори от данни на Google“.