Pular para o conteúdo principal

começar a Ray clustering on Databricks

Databricks simplifica o processo de início de um cluster Ray, tratando o clustering e a configuração do Job da mesma forma que faz com qualquer Job Apache Spark. Isso ocorre porque o agrupamento Ray é, na verdade, começado em cima do agrupamento gerenciar Apache Spark.

execução Ray on Databricks

Python
from ray.util.spark import setup_ray_cluster
import ray

# If the cluster has four workers with 8 CPUs each as an example
setup_ray_cluster(num_worker_nodes=4, num_cpus_per_worker=8)

# Pass any custom configuration to ray.init
ray.init(ignore_reinit_error=True)

Essa abordagem funciona em qualquer escala de clustering, de alguns a centenas de nós. O Ray clustering em Databricks também oferece suporte à autoescala.

Depois de criar o clustering do Ray, o senhor pode executar qualquer código de aplicativo Ray em um notebook Databricks.

important

Databricks recomenda a instalação de todas as bibliotecas necessárias para o seu aplicativo com %pip install <your-library-dependency> para garantir que elas estejam disponíveis para o seu clustering Ray e para o aplicativo em questão. A especificação de dependências na chamada da função Ray init instala as dependências em um local inacessível para os nós Apache Spark worker , o que resulta em incompatibilidades de versão e erros de importação.

Por exemplo, o senhor pode executar um aplicativo Ray simples em um notebook Databricks da seguinte forma:

Python
import ray
import random
import time
from fractions import Fraction

ray.init()

@ray.remote
def pi4_sample(sample_count):
"""pi4_sample runs sample_count experiments, and returns the
fraction of time it was inside the circle.
"""
in_count = 0
for i in range(sample_count):
x = random.random()
y = random.random()
if x*x + y*y <= 1:
in_count += 1
return Fraction(in_count, sample_count)

SAMPLE_COUNT = 1000 * 1000
start = time.time()
future = pi4_sample.remote(sample_count=SAMPLE_COUNT)
pi4 = ray.get(future)
end = time.time()
dur = end - start
print(f'Running {SAMPLE_COUNT} tests took {dur} seconds')

pi = pi4 * 4
print(float(pi))

Encerrar um Ray clustering

O Ray clustering é desligado automaticamente nas seguintes circunstâncias:

  • O senhor desvincula o Notebook interativo do clustering Databricks.
  • Seu trabalho no site Databricks foi concluído.
  • Seu clustering Databricks foi reiniciado ou encerrado.
  • Não há atividade para o tempo de parada especificado.

Para encerrar um Ray clustering em execução em Databricks, o senhor pode chamar o ray.utils.spark.shutdown_ray_cluster API.

Python
from ray.utils.spark import shutdown_ray_cluster
import ray

shutdown_ray_cluster()
ray.shutdown()

Próximas etapas