Aracılığıyla paylaş


Azure Databricks'te Ray kümesi başlatma

Azure Databricks, küme ve iş yapılandırmasını apache Spark işlerinde olduğu gibi işleyerek Bir Ray kümesini başlatma işlemini basitleştirir. Bunun nedeni, Ray kümesinin yönetilen Apache Spark kümesinin üzerinde başlatılmasıdır.

Ray'i yerel bir makinede çalıştırma

import ray

ray.init()

Azure Databricks'te Ray çalıştırma

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)

Bu yaklaşım, birkaç düğümden yüzlerce düğüme kadar her küme ölçeğinde çalışır. Azure Databricks'te ray kümeleri de otomatik ölçeklendirmeyi destekler.

Ray kümesini oluşturduktan sonra Azure Databricks not defterinde herhangi bir Ray uygulama kodunu çalıştırabilirsiniz.

Önemli

Databricks, Işın kümeniz ve uygulamanız için uygun şekilde kullanılabilir olduklarından emin olmak için ile uygulamanız %pip install <your-library-dependency> için gerekli kitaplıkların yüklenmesini önerir. Ray init işlev çağrısında bağımlılıkların belirtilmesi, bağımlılıkları Apache Spark çalışan düğümlerine erişilemeyen bir konuma yükler ve bu da sürüm uyumsuzluklarına ve içeri aktarma hatalarına neden olur.

Örneğin, Azure Databricks not defterinde aşağıdaki gibi basit bir Ray uygulaması çalıştırabilirsiniz:

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))

Ray kümesini kapatma

Ray kümeleri aşağıdaki koşullarda otomatik olarak kapatılır:

  • Etkileşimli not defterinizi Azure Databricks kümenizden ayırırsınız.
  • Azure Databricks işiniz tamamlandı.
  • Azure Databricks kümeniz yeniden başlatılır veya sonlandırılır.
  • Belirtilen boşta kalma süresi için etkinlik yok.

Azure Databricks üzerinde çalışan bir Ray kümesini kapatmak için API'yi ray.utils.spark.shutdown_ray_cluster çağırabilirsiniz.

from ray.utils.spark import shutdown_ray_cluster
import ray

shutdown_ray_cluster()
ray.shutdown()

Sonraki adımlar