У меня есть простой скрипт Dask-YARN, который выполняет только одну задачу: загрузите файл из HDFS, как показано ниже.Тем не менее, я столкнулся с ошибкой в коде, поэтому я добавил оператор print
в функцию, но я не вижу, чтобы этот оператор выполнялся в рабочих журналах, которые я получаю с помощью yarn logs -applicationId {application_id}
.Я даже попробовал метод Client.get_worker_logs()
, однако он также не отображает stdout
, просто показывает некоторые INFO
о работниках.Как получить рабочие журналы после завершения выполнения кода?
import sys
import numpy as np
import scipy.signal
import json
import dask
from dask.distributed import Client
from dask_yarn import YarnCluster
@dask.delayed
def load(input_file):
print("In call of Load...")
with open(input_file, "r") as fo:
data = json.load(fo)
return data
# Process input args
(_, filename) = sys.argv
dag_1 = {
'load-1': (load, filename)
}
print("Building tasks...")
tasks = dask.get(dag_1, 'load-1')
print("Creating YARN cluster now...")
cluster = YarnCluster()
print("Scaling YARN cluster now...")
cluster.scale(1)
print("Creating Client now...")
client = Client(cluster)
print("Getting logs..1")
print(client.get_worker_logs())
print("Doing Dask computations now...")
dask.compute(tasks)
print("Getting logs..2")
print(client.get_worker_logs())
print("Shutting down cluster now...")
cluster.shutdown()