fix(spark): исправлено подключение ноутбуков к кластеру
- Зачем: модули 2–8 в новом процессе выбирали local[*] вместо Spark-кластера. - Что: master перенесён в общий spark-defaults.conf, smoke требует точный адрес кластера, документация и планы синхронизированы. - Проверка: фактическая инициализация всех восьми ноутбуков, повторный getOrCreate, распределённые вычисления, Iceberg/MinIO write-read-cleanup и docker compose config прошли.
This commit is contained in:
1 parent
a085b2fc55
commit
91a5c85469
13 files changed
+32
-23
No files matched your search
@@ -2,30 +2,30 @@ from __future__ import annotations
|
||||
|
||||
from pyspark.sql import SparkSession
|
||||
|
||||
DEFAULT_MASTER_URL = "spark://spark-master:7077"
|
||||
EXPECTED_MASTER_URL = "spark://spark-master:7077"
|
||||
DEFAULT_APP_NAME = "cluster-smoke"
|
||||
DEFAULT_ROW_COUNT = 1_000_000
|
||||
|
||||
|
||||
def create_spark_session(
|
||||
app_name: str = DEFAULT_APP_NAME,
|
||||
master_url: str = DEFAULT_MASTER_URL,
|
||||
) -> SparkSession:
|
||||
"""Создать SparkSession для проверок окружения в Модуле 1.
|
||||
|
||||
Функция специально остаётся минимальной и опирается на смонтированный
|
||||
в контейнер `spark-defaults.conf` для остальной Spark/Iceberg-конфигурации.
|
||||
в контейнер `spark-defaults.conf` для Spark/Iceberg-конфигурации.
|
||||
"""
|
||||
return SparkSession.builder.appName(app_name).master(master_url).getOrCreate()
|
||||
return SparkSession.builder.appName(app_name).getOrCreate()
|
||||
|
||||
|
||||
def run_cluster_smoke(spark: SparkSession, row_count: int = DEFAULT_ROW_COUNT) -> dict:
|
||||
spark_context = spark.sparkContext
|
||||
master_url = spark_context.master
|
||||
|
||||
if master_url.startswith("local"):
|
||||
if master_url != EXPECTED_MASTER_URL:
|
||||
raise RuntimeError(
|
||||
"Smoke test must run against the Spark cluster, not local mode."
|
||||
"Smoke test must run against "
|
||||
f"{EXPECTED_MASTER_URL}, got {master_url}."
|
||||
)
|
||||
|
||||
# Берём больше партиций, чем даёт defaultParallelism, чтобы задача точно
|
||||
|
||||
Reference in new issue
Block a user