С помощью этого руководства вы научитесь запускать на виртуальной машине Python-скрипт для подключения к инстансу Managed Spark через Spark-connect.
Вы будете использовать следующие сервисы:
Managed Spark — сервис, который позволяет развернуть кластерное вычислительное решение на основе Apache Spark для распределенной обработки данных.
«Виртуальные машины» — сервис, в рамках которого предоставляется виртуальная машина.
Шаги:
Если вы уже зарегистрированы, войдите под своей учетной записью.
Создайте пароль и добавьте его в Secret Manager. Этот секрет станет паролем для доступа к интерфейсу Managed Spark.
Создайте SNAT-шлюз в той же зоне доступности и VPC. Он необходим для обновления пакетов на виртуальной машине.
Создайте кластер Data Platform, в котором будет размещен инстанс Managed Spark. В блоке Сетевые настройки укажите VPC, зону доступности и подсеть, выбранные при создании DNS-сервера.
Создайте инстанс Managed Spark. В блоке Конфигурация укажите зону доступности, в которой создан кластер Data Platform.
После того, как статус инстанса Managed Spark сменится на «Готов», cоздайте Spark Connect.
На этом шаге вы создадите виртуальную машину и установите на нее все необходимое для запуска скрипта.
Создайте виртуальную машину. В блоке Сетевой интерфейс выберите Подсеть. Укажите VPC и подсеть, выбранные при создании инстанса Managed Spark.
Обновите список пакетов:
sudo apt update
Установите Java:
sudo apt install openjdk-11-jre-headless -y
Установите Pip:
sudo apt install python3-pip
Установите пакеты, необходимые для запуска Python-скрипта:
pip3 install pyspark=="3.5.6"pip3 install dotenv=="0.9.9"pip3 install pandas=="2.2.3"pip3 install pyarrow=="21.0.0"pip3 install grpcio=="1.66.2"pip3 install protobuf=="5.28.3"pip3 install grpcio-status=="1.66.2"pip3 install setuptools=="80.9.0"
На этом шаге вы настроите переменные окружения, необходимые для установки соединения со Spark Connect.
Перейдите в сервис Managed Spark и откройте карточку созданного ранее инстанса.
Откройте вкладку Spark Connect.
В блоке Настройки доступа скопируйте внутренний URL подключения.
В серийной консоли виртуальной машины выполните команду:
export SPARK_CONNECT_HOST=<internal-spark-url>
Где <internal-spark-url> — скопированное значение внутреннего URL подключения.
Скачайте на виртуальную машину root-сертификат dp-cert.crt:
curl -s -O https://xbox.cloud.ru/s/wEso6nB7bKYxkkf/download/dp-cert.crt
Выполните команду:
export GRPC_DEFAULT_SSL_ROOTS_FILE_PATH='./dp-cert.crt'
При перезапуске серийной консоли необходимо повторить команды, указанные в п.4 и 6.
На этом шаге вы подготовите и запустите скрипт, выполняющий подключение к инстансу Managed Spark через Spark Connect.
Скопируйте скрипт:
import osfrom pyspark.sql import SparkSessionfrom dotenv import load_dotenvload_dotenv()host = os.environ["SPARK_CONNECT_HOST"]spark_connect_url = f"sc://{host}:443/;use_ssl=true"print("Устанавливается соединение к Spark Connect")spark = SparkSession.builder.remote(spark_connect_url).getOrCreate()print("Соединение установлено")columns = ["id", "name"]data = [(1, "Sarah"),(2, "Maria")]df = spark.createDataFrame(data).toDF(*columns)print("Результат dataframe:")df.show()spark.stop()
В серийной консоли создайте файл connect-from-vm.py:
nano connect-from-vm.py
Вставьте скопированный скрипт и сохраните файл.
Запустите скрипт:
python3 connect-from-vm.py
На этом шаге вы посмотрите логи выполнения скрипта в Spark Connect.
Перейдите в сервис Managed Spark и откройте карточку инстанса, в котором создан Spark Connect.
Откройте вкладку Spark Connect.
В блоке Логирование нажмите Открыть логи.
Вы запустили на виртуальной машине Python-скрипт, который подключился к инстансу Managed Spark через Spark Connect.